Files
whynot-design/tests/visual/ui-kit.spec.mjs
tegwick 9419f166ce
Some checks failed
ci / check (push) Has been cancelled
ci / release (push) Has been cancelled
Seeded claude design
2026-05-23 16:34:14 +02:00

49 lines
1.9 KiB
JavaScript

import { test, expect } from "@playwright/test";
// Visual-regression baseline for the whynot-control UI kit.
// Snapshots live next to this file under __screenshots__/.
//
// To update intentionally: pnpm test:visual:update
test.describe("whynot-control UI kit", () => {
test("prototypes index", async ({ page }) => {
await page.goto("/index.html");
// Wait for Babel + Lucide to hydrate
await page.waitForFunction(() => !!document.querySelector("aside"));
await page.waitForTimeout(500);
await expect(page).toHaveScreenshot("01-prototypes.png", { fullPage: true });
});
test("inbox", async ({ page }) => {
await page.goto("/index.html");
await page.waitForFunction(() => !!document.querySelector("aside a"));
await page.click("aside a:has-text('Inbox')");
await page.waitForTimeout(400);
await expect(page).toHaveScreenshot("02-inbox.png", { fullPage: true });
});
test("signals", async ({ page }) => {
await page.goto("/index.html");
await page.waitForFunction(() => !!document.querySelector("aside a"));
await page.click("aside a:has-text('Signals')");
await page.waitForTimeout(400);
await expect(page).toHaveScreenshot("03-signals.png", { fullPage: true });
});
test("prototype detail", async ({ page }) => {
await page.goto("/index.html");
await page.waitForFunction(() => !!document.querySelector("article"));
await page.click("article:nth-of-type(1)");
await page.waitForTimeout(400);
await expect(page).toHaveScreenshot("04-prototype-detail.png", { fullPage: true });
});
test("control doc — INTENT.md", async ({ page }) => {
await page.goto("/index.html");
await page.waitForFunction(() => !!document.querySelector("aside a"));
await page.click("aside a:has-text('INTENT.md')");
await page.waitForTimeout(400);
await expect(page).toHaveScreenshot("05-doc-intent.png", { fullPage: true });
});
});