test: full Playwright + API test suite for stage
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m52s
Dev — Build & local smoke test / build-smoke (pull_request) Successful in 1m52s
159 tests across three Playwright projects (api, chromium, mobile): - tests/api/security.test.ts: security headers, CORS on /api/supabase-config (origin allowlist enforced), auth gate on /api/demo, Stripe webhook signature enforcement, source file leakage, path traversal, input validation (8000-char message cap) - tests/api/endpoints.test.ts: /api/health, /api/founding-count shape invariants, /api/supabase-config JWT shape, sitemap.xml, robots.txt, /llms.txt, /api/soul-health internal gate, 404 for unknown routes - tests/e2e/landing.spec.ts: title, h1 count, meta description, OG tags, canonical (no stage leak), JSON-LD schema, demo widget DOM presence, JS error filtering (known GTM/CSP noise excluded) - tests/e2e/seo.spec.ts: per-page title patterns, noindex on checkout, canonical URLs, sitemap production-URL enforcement - tests/e2e/checkout.spec.ts: all three plan variants, auth section, payment element, canonical - tests/e2e/chat.spec.ts: widget DOM structure, auth gate (send button disabled without session), API-level auth rejection - tests/e2e/navigation.spec.ts: all public routes return 200, 404s for removed/old paths (/terms, /enterprise-terms, /gallery), static files All 159 pass against stage. CI step added to stage.yaml after smoke test.
This commit is contained in:
@@ -381,3 +381,12 @@ jobs:
|
||||
|
||||
echo "Stage smoke test FAILED"
|
||||
exit 1
|
||||
|
||||
- name: Run automated test suite
|
||||
run: |
|
||||
set -euo pipefail
|
||||
cd $GITHUB_WORKSPACE
|
||||
npm ci --prefer-offline 2>/dev/null || npm install
|
||||
npx playwright install chromium --with-deps
|
||||
BASE_URL="${{ steps.deploy-stage.outputs.stage_url }}" \
|
||||
npx playwright test --reporter=list
|
||||
|
||||
Reference in New Issue
Block a user