56 lines
2.1 KiB
Bash
Executable File
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'
|