Files
community-rule/playwright.config.ts
T
adilallo 1bb4627ab2
CI Pipeline / test (18) (pull_request) Failing after 3m29s
CI Pipeline / test (20) (pull_request) Failing after 4m23s
CI Pipeline / e2e (chromium) (pull_request) Successful in 3m0s
CI Pipeline / e2e (firefox) (pull_request) Successful in 5m45s
CI Pipeline / e2e (webkit) (pull_request) Successful in 4m22s
CI Pipeline / performance (pull_request) Successful in 4m0s
CI Pipeline / storybook (pull_request) Successful in 1m20s
CI Pipeline / visual-regression (pull_request) Successful in 6m7s
CI Pipeline / build (pull_request) Successful in 1m33s
Fix failing performance and unit tests
2026-01-26 14:07:08 -07:00

90 lines
2.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { defineConfig, devices } from "@playwright/test";
export default defineConfig({
testDir: "tests",
testMatch: [
"tests/e2e/**/*.spec.{js,ts}",
"tests/e2e/**/*.test.{js,ts}",
"tests/accessibility/**/*.spec.{js,ts}",
],
timeout: 60_000,
expect: {
timeout: 10_000,
toHaveScreenshot: {
animations: "disabled",
maxDiffPixelRatio: 0.03, // Increased to 3% to handle WebKit height differences
maxDiffPixels: 50000, // Increased to handle WebKit height variations (1-2px height diff × width)
},
},
fullyParallel: !process.env.CI, // Disable parallel execution in CI to reduce server load
retries: process.env.CI ? 2 : 0,
reporter: [["list"], ["html", { open: "never" }]],
workers: process.env.CI ? 2 : undefined, // Reduce workers in CI to prevent server overload
use: {
baseURL: process.env.BASE_URL || "http://localhost:3010",
trace: "on-first-retry",
screenshot: "only-on-failure",
video: "retain-on-failure",
// Deterministic rendering defaults to eliminate environment drift
colorScheme: "light",
viewport: { width: 1280, height: 800 },
timezoneId: "UTC", // Freeze timezone
locale: "en-US", // Freeze locale
headless: true,
},
// Only start webServer in non-CI environments (CI starts its own server)
...(process.env.CI
? {}
: {
webServer: {
command: "npm run dev -- --port 3010",
url: "http://localhost:3010",
reuseExistingServer: true,
timeout: 120_000,
},
}),
// Browser-specific snapshot path template (includes projectName for cross-browser support)
snapshotPathTemplate:
"tests/e2e/{testFileName}-snapshots/{arg}-{projectName}.png",
projects: [
{
name: "chromium",
use: {
...devices["Desktop Chrome"],
// Let device preset own the DPR for stable anti-aliasing
launchOptions: {
args: [
"--force-color-profile=srgb",
"--disable-skia-runtime-opts",
"--font-render-hinting=none",
"--disable-lcd-text",
"--disable-blink-features=AutomationControlled",
"--disable-infobars",
],
},
},
},
{
name: "firefox",
use: {
...devices["Desktop Firefox"],
// Let device preset own the DPR for stable anti-aliasing
},
},
{
name: "webkit",
use: {
...devices["Desktop Safari"],
// Let device preset own the DPR for stable anti-aliasing
},
},
{
name: "mobile",
use: {
...devices["iPhone 13"],
// Let device preset own the DPR for stable anti-aliasing
},
},
],
});