playwright.config.js
// The lab's own E2E suite (§84): every station, over HTTP/1.1 and HTTP/2.
import { defineConfig, devices } from "@playwright/test";
const HTTP = 18080;
const HTTPS = 18443;
export default defineConfig({
testDir: "tests",
fullyParallel: true,
forbidOnly: !!process.env.CI,
retries: process.env.CI ? 2 : 0,
reporter: process.env.CI ? [["github"], ["html", { open: "never" }]] : [["list"]],
use: { trace: "on-first-retry", ...devices["Desktop Chrome"], viewport: { width: 1360, height: 900 } },
webServer: {
command: "node scripts/cert.mjs && node server.mjs",
url: `http://localhost:${HTTP}/`,
env: { HTTP_PORT: String(HTTP), HTTPS_PORT: String(HTTPS) },
reuseExistingServer: false,
},
projects: [
{ name: "http1", use: { baseURL: `http://localhost:${HTTP}` } },
// Self-signed cert: tell the browser to accept it (tests only!).
{ name: "h2", use: { baseURL: `https://localhost:${HTTPS}`, ignoreHTTPSErrors: true } },
],
});