cac7bd5727
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.
20 lines
650 B
TypeScript
20 lines
650 B
TypeScript
import { defineConfig, devices } from '@playwright/test';
|
|
|
|
const BASE_URL = process.env.BASE_URL || 'https://marketing-stage-r4tfklscwq-uc.a.run.app';
|
|
|
|
export default defineConfig({
|
|
testDir: './tests',
|
|
timeout: 30_000,
|
|
retries: process.env.CI ? 2 : 0,
|
|
reporter: [['list'], ['html', { open: 'never' }]],
|
|
use: {
|
|
baseURL: BASE_URL,
|
|
extraHTTPHeaders: {},
|
|
},
|
|
projects: [
|
|
{ name: 'api', testDir: './tests/api', use: { ...devices['Desktop Chrome'] } },
|
|
{ name: 'chromium', testDir: './tests/e2e', use: { ...devices['Desktop Chrome'] } },
|
|
{ name: 'mobile', testDir: './tests/e2e', use: { ...devices['Pixel 7'] } },
|
|
],
|
|
});
|