From 96b4453e956c915a6959161f3654ab8c86477ab7 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Sat, 28 Mar 2026 00:56:17 -0700 Subject: [PATCH] test(visual): add Playwright visual regression screenshot tests --- web/e2e/visual-regression.spec.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 web/e2e/visual-regression.spec.ts diff --git a/web/e2e/visual-regression.spec.ts b/web/e2e/visual-regression.spec.ts new file mode 100644 index 0000000..1b0ab39 --- /dev/null +++ b/web/e2e/visual-regression.spec.ts @@ -0,0 +1,25 @@ +import { test, expect } from "@playwright/test"; + +/** + * Visual regression tests — capture screenshots of key pages. + * Run with: npx playwright test visual-regression --update-snapshots (to create baselines) + * Subsequent runs compare against baselines and fail on pixel diff. + */ + +const ROUTES: { path: string; name: string }[] = [{path:"/dashboard",name:"dashboard"},{path:"/workspaces",name:"workspaces"},{path:"/search",name:"search"}]; + +test.describe("Visual Regression", () => { + for (const route of ROUTES) { + test(\`\${route.name} matches snapshot\`, async ({ page }) => { + await page.goto(route.path); + await page.waitForLoadState("networkidle"); + // Allow animations to settle + await page.waitForTimeout(500); + await expect(page).toHaveScreenshot(\`\${route.name}.png\`, { + fullPage: true, + maxDiffPixelRatio: 0.01, + }); + }); + } +}); +