import { defineConfig, devices } from '@playwright/test' import 'dotenv/config' const PORT = Number(process.env.E2E_PORT ?? 3100) const BASIS = `http://127.0.0.1:${PORT}` /** * E2E-Tests gegen eine echte, gebaute Anwendung. * * Der Testserver läuft auf einem eigenen Port, damit er einer laufenden * Entwicklungsinstanz nicht in die Quere kommt. Die Datenbank ist dieselbe wie * im Entwicklungsbetrieb – die Tests legen nur Daten mit eigenem Präfix an und * räumen hinter sich auf. */ export default defineConfig({ testDir: './e2e', fullyParallel: false, forbidOnly: Boolean(process.env.CI), retries: process.env.CI ? 1 : 0, workers: 1, reporter: process.env.CI ? 'github' : 'list', timeout: 30_000, use: { baseURL: BASIS, locale: 'de-DE', timezoneId: 'Europe/Berlin', trace: 'retain-on-failure', screenshot: 'only-on-failure', }, projects: [{ name: 'chromium', use: { ...devices['Desktop Chrome'] } }], webServer: { command: 'npm run start', url: `${BASIS}/api/health`, reuseExistingServer: !process.env.CI, timeout: 120_000, env: { PORT: String(PORT), APP_URL: BASIS, WEBAUTHN_ORIGIN: BASIS, WEBAUTHN_RP_ID: '127.0.0.1', }, }, })