#!/usr/bin/env bash
set -euo pipefail

ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/../../../.." && pwd)
SCRIPT="$ROOT/modules/workstation/claude/bin/ca.sh"
work=$(mktemp -d)
trap 'rm -rf "$work"' EXIT

pass=0
fail=0
ok() { printf 'PASS %s\n' "$1"; pass=$((pass + 1)); }
bad() { printf 'FAIL %s\n' "$1" >&2; fail=$((fail + 1)); }

run_case() {
  local name="$1" expected="$2"
  shift 2
  set +e
  "$@" >"$work/out" 2>"$work/err"
  local rc=$?
  set -e
  [[ "$rc" -eq "$expected" ]] && ok "$name" || bad "$name rc=$rc expected=$expected"
}

run_case missing-current 3 env HOME="$work/missing" HARNESS_HOME="$work/missing/.harness" bash "$SCRIPT" --help

e="$work/engine"
mkdir -p "$e/engine/versions/test/wrappers"
printf '../escape\n' >"$e/engine/CURRENT"
run_case invalid-current 3 env HOME="$work" HARNESS_HOME="$e" bash "$SCRIPT" --help

printf 'test\n' >"$e/engine/CURRENT"
cat >"$e/engine/versions/test/wrappers/ca.sh" <<'EOF'
#!/usr/bin/env bash
printf '%s\n' "$*"
exit 17
EOF
chmod +x "$e/engine/versions/test/wrappers/ca.sh"
run_case forwards-argv-and-status 17 env HOME="$work" HARNESS_HOME="$e" bash "$SCRIPT" --workspace '/tmp/a b' --trust 'hello world'
grep -qx -- '--workspace /tmp/a b --trust hello world' "$work/out" && ok forwards-exact-argv || bad forwards-exact-argv

printf '\nPASS=%d FAIL=%d\n' "$pass" "$fail"
[[ "$fail" -eq 0 ]]
