Files
ThothII/scripts/test-verify-workspace-install-docs.sh
Codex 043ffdfad6
Publish documentation / publish (push) Successful in 27s
docs: separate public manual from internal project documentation
2026-09-15 10:26:35 +02:00

56 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
# Regression tests for the current public install/workspace documentation verifier.
set -euo pipefail
root="$(cd "$(dirname "$0")/.." && pwd -P)"
fixture="$(mktemp -d "${TMPDIR:-/tmp}/thoth-install-docs-test.XXXXXX")"
trap 'rm -rf "$fixture"' EXIT HUP INT TERM
expect_success() {
local marker="$1"
shift
local output
output="$($@)"
grep -Fqx -- "$marker" <<<"$output" || {
echo "missing verification marker: $marker" >&2
printf '%s\n' "$output" >&2
exit 1
}
}
expect_success 'Installation examples contract passed' \
env -u TMPDIR -u THT_AUTH_CONFIG_ROOT "$root/scripts/verify-workspace-install-docs.sh" --fixtures-only
expect_success 'local installation documentation verification passed' \
"$root/scripts/verify-workspace-install-docs.sh" --profile local
expect_success 'server installation documentation verification passed' \
"$root/scripts/verify-workspace-install-docs.sh" --profile server
if "$root/scripts/verify-workspace-install-docs.sh" --profile invalid >/dev/null 2>&1; then
echo 'invalid verification profile was accepted' >&2
exit 1
fi
mkdir -p "$fixture/docs" "$fixture/scripts"
cp -R "$root/docs/install" "$fixture/docs/install"
cp -R "$root/docs/operations" "$fixture/docs/operations"
cp "$root/docs/guida-utente.md" "$fixture/docs/guida-utente.md"
cp "$root/docs/product-overview.md" "$fixture/docs/product-overview.md"
cp "$root/mkdocs.yml" "$fixture/mkdocs.yml"
cp "$root/compose.yaml" "$fixture/compose.yaml"
cp "$root/scripts/run-stack.sh" "$fixture/scripts/run-stack.sh"
# The fixture keeps the production navigation shape but lacks its canonical first-start page.
rm "$fixture/docs/install/first-start.md"
if THT_DOCS_VERIFY_ROOT="$fixture" "$root/scripts/verify-workspace-install-docs.sh" --fixtures-only \
>"$fixture/missing-page.out" 2>&1; then
echo 'verifier accepted a missing first-start page' >&2
exit 1
fi
grep -Fq 'missing required file: docs/install/first-start.md' "$fixture/missing-page.out" || {
echo 'missing first-start fixture failed for the wrong reason' >&2
cat "$fixture/missing-page.out" >&2
exit 1
}
echo 'workspace installation documentation regression suite passed'