1
0
forked from baron/baron-sso
Files
baron-sso/test/code_check_playwright_cache_policy_test.sh

36 lines
1.4 KiB
Bash

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