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

REPO_ROOT="$(git rev-parse --show-toplevel)"
TEMP_BASE="${TMPDIR:-${XDG_CACHE_HOME:-$HOME/.cache}/zync-tests}"
mkdir -p "$TEMP_BASE"
TEST_ROOT="$(mktemp -d "$TEMP_BASE/zc-deploy-test.XXXXXX")"
trap 'rm -rf "$TEST_ROOT"' EXIT
mkdir -p "$TEST_ROOT/bin"

cat >"$TEST_ROOT/bin/pnpm" <<'EOF'
#!/usr/bin/env bash
printf '%s\n' "$*" >>"$DEPLOY_CALL_LOG"
if [[ "$*" == "exec wrangler whoami" ]]; then
  exit 0
fi
if [[ "$*" == *"wrangler deploy"* ]]; then
  printf 'Total Upload: 1 KiB\n'
  exit 0
fi
exit 1
EOF

cat >"$TEST_ROOT/bin/curl" <<'EOF'
#!/usr/bin/env bash
printf '<!doctype html>\n200'
EOF

chmod +x "$TEST_ROOT/bin/pnpm" "$TEST_ROOT/bin/curl"
export DEPLOY_CALL_LOG="$TEST_ROOT/deploy-calls.log"
OUTPUT_FILE="$TEST_ROOT/deploy-output.log"
PATH="$TEST_ROOT/bin:$PATH" "$REPO_ROOT/.claude/skills/zc-deploy/scripts/deploy.sh" app --skip-build | tee "$OUTPUT_FILE"
plain_output="$(sed -E $'s/\x1b\\[[0-9;]*m//g' "$OUTPUT_FILE")"

grep -Fxq '[WARN] Skipping build (--skip-build)' <<<"$plain_output"
grep -Fxq '[zc-deploy] Running wrangler deploy --dry-run...' <<<"$plain_output"

grep -Fxq 'exec wrangler deploy --env= --dry-run' "$DEPLOY_CALL_LOG"
grep -Fxq 'exec wrangler deploy --env=' "$DEPLOY_CALL_LOG"
