CI / check (push) Successful in 32s
CI / tests-imaging-browsers (push) Successful in 1m33s
CI / tests-integration (push) Successful in 2m5s
CI / tests-unit (push) Successful in 2m7s
CI / tests-ui (push) Successful in 2m47s
CI / preflight (push) Skipped
CI / deploy (push) Successful in 3m44s
Environment-independent contract tests (cache headers + source, CORS, OPTIONS preflight, negative figure/badge tables, concurrency burst) run in both the deploy gate and the cross-browser job. CMS-only /imaging assertions (webp/avif transcode, animated-APNG passthrough, s-maxage edge caching) live in cms-imaging.spec.ts and are skipped behind the edge proxy; the public topology has its own public-routing.spec.ts smoke that fails if the edge ever stops fronting the imager or starts shadowing the CMS endpoints. A committed per-engine visual baseline pins the static render. The cross-browser imaging job is now blocking (IMAGING_EDGE=1), so avatar imaging on chromium/firefox/webkit is a required signal.
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { defineConfig, devices } from "@playwright/test";
|
|
|
|
// Cross-browser imaging checks. Unlike the main e2e config (chromium only,
|
|
// used as the deploy gate), this runs the same specs across every bundled
|
|
// engine so an avatar format that only one browser can decode is caught.
|
|
//
|
|
// Point it at a running CMS with PLAYWRIGHT_BASE_URL (defaults to the local
|
|
// host port). Requires all three engines: `pnpm exec playwright install
|
|
// chromium firefox webkit`.
|
|
const baseURL = process.env.PLAYWRIGHT_BASE_URL || "http://127.0.0.1:3002";
|
|
|
|
export default defineConfig({
|
|
testDir: "./e2e/imaging",
|
|
fullyParallel: false,
|
|
workers: 1,
|
|
retries: 1,
|
|
timeout: 60000,
|
|
expect: {
|
|
timeout: 15000,
|
|
toHaveScreenshot: {
|
|
animations: "disabled",
|
|
caret: "hide",
|
|
maxDiffPixelRatio: 0.02,
|
|
},
|
|
},
|
|
reporter: [
|
|
["list"],
|
|
["html", { outputFolder: "playwright-report/imaging", open: "never" }],
|
|
],
|
|
outputDir: "test-results/imaging",
|
|
use: {
|
|
baseURL,
|
|
trace: "retain-on-failure",
|
|
screenshot: "only-on-failure",
|
|
},
|
|
projects: [
|
|
{ name: "chromium", use: { ...devices["Desktop Chrome"] } },
|
|
{ name: "firefox", use: { ...devices["Desktop Firefox"] } },
|
|
{ name: "webkit", use: { ...devices["Desktop Safari"] } },
|
|
],
|
|
});
|