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

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
WORKFLOW_FILE="$ROOT_DIR/.gitea/workflows/code_check.yml"

fail() {
  echo "ERROR: $*" >&2
  exit 1
}

grep -Fq -- "scripts/playwrightPackageVersion.cjs" "$WORKFLOW_FILE" || \
  fail "Code Check workflow must compute Playwright cache versions through the shared package.json reader"

if grep -Fq -- "npm list @playwright/test" "$WORKFLOW_FILE"; then
  fail "Code Check workflow must not call npm list before npm ci"
fi

if grep -Fq -- "pnpm list -C ../common @playwright/test" "$WORKFLOW_FILE"; then
  fail "Code Check workflow must not call pnpm list before pnpm install"
fi

grep -Fq -- "run_userfront_e2e_full:" "$WORKFLOW_FILE" || \
  fail "Code Check workflow must expose a manual full userfront-e2e switch"

grep -Fq -- "USERFRONT_E2E_FULL:" "$WORKFLOW_FILE" || \
  fail "Code Check workflow must map the full userfront-e2e input into the job environment"

grep -Fq -- "npx playwright install --with-deps chromium" "$WORKFLOW_FILE" || \
  fail "Userfront E2E fast lane must provision Chromium only"

grep -Fq -- "npm test -- --project=chromium-desktop --project=chromium-mobile-webapp" "$WORKFLOW_FILE" || \
  fail "Userfront E2E fast lane must run only Chromium desktop and mobile projects"

echo "OK: Code Check Playwright cache keys do not depend on preinstalled node_modules"
