import { createMemoryRouter, RouterProvider } from "react-router"; import { describe, expect, it } from "vitest"; import { page } from "vitest/browser"; import { render } from "vitest-browser-react"; import { SECTIONS } from "./routes/components"; const longViewport: (typeof SECTIONS)[number]["id"][] = [ "buttons", "miscellaneous", ]; function renderComponentsShowcase(component: React.ReactNode) { const router = createMemoryRouter( [ { path: "/", element: component, }, ], { initialEntries: ["/"] }, ); return render(); } describe("Components Showcase visual regression", async () => { for (const { title, id, component: Component } of SECTIONS) { it(`${title} section`, async () => { await page.viewport(1000, longViewport.includes(id) ? 2500 : 800); const screen = await renderComponentsShowcase(); await expect.element(screen.baseElement).toMatchScreenshot(title); }); } });