b37c0222a6
- "scripts/s06-acceptance-data.sh" - "scripts/s06-acceptance-data.test.sh" - "README.md" - ".gsd/KNOWLEDGE.md" - ".gsd/DECISIONS.md" - ".gsd/milestones/M001/slices/S06/tasks/T02-SUMMARY.md" GSD-Task: S06/T02
58 lines
1.4 KiB
Bash
Executable File
58 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
TARGET_SCRIPT="$SCRIPT_DIR/s06-acceptance-data.sh"
|
|
TMP_DIR="$(mktemp -d)"
|
|
trap 'rm -rf "$TMP_DIR"' EXIT
|
|
|
|
pass() {
|
|
printf 'PASS: %s\n' "$1"
|
|
}
|
|
|
|
fail() {
|
|
printf 'FAIL: %s\n' "$1" >&2
|
|
exit 1
|
|
}
|
|
|
|
run_expect_fail() {
|
|
local name="$1"
|
|
local expected="$2"
|
|
shift 2
|
|
local out="$TMP_DIR/${name}.log"
|
|
set +e
|
|
"$@" >"$out" 2>&1
|
|
local exit_code=$?
|
|
set -e
|
|
if [[ $exit_code -eq 0 ]]; then
|
|
cat "$out" >&2
|
|
fail "$name unexpectedly passed"
|
|
fi
|
|
if ! grep -Fq "$expected" "$out"; then
|
|
cat "$out" >&2
|
|
fail "$name did not mention expected text: $expected"
|
|
fi
|
|
pass "$name"
|
|
}
|
|
|
|
run_expect_pass() {
|
|
local name="$1"
|
|
shift
|
|
local out="$TMP_DIR/${name}.log"
|
|
"$@" >"$out" 2>&1 || {
|
|
cat "$out" >&2
|
|
fail "$name failed"
|
|
}
|
|
pass "$name"
|
|
}
|
|
|
|
run_expect_fail "missing-auth-token" "AUTH_TOKEN is required" env -u AUTH_TOKEN bash "$TARGET_SCRIPT"
|
|
run_expect_fail "bad-auth-token" "AUTH_TOKEN appears invalid or lacks access" env AUTH_TOKEN="not-a-real-token" bash "$TARGET_SCRIPT"
|
|
|
|
if [[ -n "${TEST_AUTH_TOKEN:-}" ]]; then
|
|
run_expect_pass "happy-path-first-run" env AUTH_TOKEN="$TEST_AUTH_TOKEN" bash "$TARGET_SCRIPT"
|
|
run_expect_pass "happy-path-second-run" env AUTH_TOKEN="$TEST_AUTH_TOKEN" bash "$TARGET_SCRIPT"
|
|
else
|
|
printf 'SKIP: happy-path rerun requires TEST_AUTH_TOKEN.\n'
|
|
fi
|