#!/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"