HH/playwright.config.ts
ismail 23b6e239b5
All checks were successful
Build and Push Docker Image / build (push) Successful in 2m2s
test: inquiry + observation dept-response workflow E2E
Adds headed Playwright coverage for the simpler dept-response flow
(PX send -> champion responds -> PX accept/reject), 3 flows per module
(happy path, token response, reject loop). 6/6 pass; 50 PASS / 5 WARN / 0 FAIL.

Findings (documented in report):
- token-response form pages (inquiry + observation) render the dashboard
  chrome instead of the response form -> anonymous champions can't submit
  via the emailed link (backend POST still works)
- NameError get_email_header_html in inquiry_transfer_to_department (notif
  email silently fails)
- observation can't jump new->resolved (status machine needs intermediate steps)

Harness:
- seed_e2e_dept_response, get_e2e_dept_response_state CLI helpers
- E2E_MAXIMIZED=1 fullscreen mode in playwright.config.ts
- report: appended "Inquiry & Observation dept-response workflow" section
2026-06-14 16:55:54 +03:00

37 lines
1.2 KiB
TypeScript

import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
testDir: './e2e/tests',
timeout: Number(process.env.E2E_TIMEOUT || 30000),
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
workers: process.env.CI ? 1 : undefined,
reporter: [
['html', { open: 'never', outputFolder: 'e2e/results/html-report' }],
['list'],
],
use: {
baseURL: process.env.E2E_BASE_URL || 'http://localhost:8000',
trace: 'on-first-retry',
screenshot: 'only-on-failure',
video: 'retain-on-failure',
actionTimeout: Number(process.env.E2E_ACTION_TIMEOUT || 0),
navigationTimeout: Number(process.env.E2E_NAV_TIMEOUT || 0),
// E2E_MAXIMIZED=1 launches the browser maximized (viewport=null uses the OS window size)
viewport: process.env.E2E_MAXIMIZED ? null : undefined,
launchOptions: {
slowMo: Number(process.env.E2E_SLOWMO || 0),
args: process.env.E2E_MAXIMIZED ? ['--start-maximized', '--window-size=1920,1080'] : [],
},
},
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
],
outputDir: 'e2e/results/test-results',
snapshotPathTemplate: '{testDir}/__screenshots__/{testFilePath}/{arg}{ext}',
});