1// The e2e harness: the real application, in a real browser, over a registry2// packed minutes ago from the committed corpus.3//4// `make test-e2e` is the way in: it builds the seam, runs tests/e2e/prep to5// pack dist/e2e/bundles, and then hands over to Playwright, which starts6// `atlas serve` itself and waits for it to answer. Every prerequisite is7// built by the run — there is nothing optional, nothing machine-local, and8// therefore no "not judged" outcome. A missing seam or an empty registry is9// a red run.10//11// The corpus bundles carry payloads and no rasters (no tiles are committed),12// so the map's imagery answers 404 and the specs assert arrangement — pages,13// island, controls — rather than pixels. The renderer is built to survive14// missing tiles; that resilience has its own unit suite in render/test.15import { defineConfig } from "@playwright/test";1617export default defineConfig({18 testDir: ".",19 timeout: 30_000,20 // One worker: every spec walks the same host, and the host owns per-volume21 // session records that concurrent walks would fight over.22 workers: 1,23 reporter: [["list"]],24 use: {25 baseURL: "http://127.0.0.1:43117",26 trace: "retain-on-failure",27 },28 webServer: {29 command:30 "go run ./cmd/atlas serve -addr 127.0.0.1:43117 -bundles dist/e2e/bundles -static dist/static",31 cwd: "../..",32 url: "http://127.0.0.1:43117/",33 reuseExistingServer: false,34 timeout: 120_000,35 },36});