import { test as base } from 'playwright-bdd'; import { waitForAppReady, seedItems, seedAndNavigate } from './seed'; import { assertMinTouchTarget, assertGapBetween, assertWithinViewport } from './layout'; import type { Item } from '../../src/lib/types'; export const test = base.extend<{ appReady: void; seedData: (items: Item[], path?: string) => Promise; layout: { assertMinTouchTarget: typeof assertMinTouchTarget; assertGapBetween: typeof assertGapBetween; assertWithinViewport: typeof assertWithinViewport; }; }>({ appReady: [async ({ page }, use) => { await page.goto('/'); await waitForAppReady(page); await use(); }, { auto: false }], seedData: async ({ page }, use) => { const seed = async (items: Item[], path = '/') => { await seedAndNavigate(page, items, path); }; await use(seed); }, layout: async ({}, use) => { await use({ assertMinTouchTarget, assertGapBetween, assertWithinViewport }); }, });