50 Playwright E2E tests across 13 spec files covering all routes and user flows (items CRUD, check-out/in, locations, labels, scanning, search/filter). Uses vitest as runner with playwright-core for browser automation (bun-compatible alternative to @playwright/test). Includes Gherkin .feature files as living documentation, test support infrastructure (IDB seeding, item factories, assertion helpers, layout measurement), and HANDOFF.md covering project state, deployment, and open design decisions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
21 lines
817 B
TypeScript
21 lines
817 B
TypeScript
import { expect } from '@playwright/test';
|
|
import { createBdd } from 'playwright-bdd';
|
|
|
|
const { Given: given, When: when, Then: then } = createBdd();
|
|
|
|
then('I should see {int} item cards', async ({ page }, count: number) => {
|
|
const cards = page.locator('button.bg-slate-800');
|
|
await expect(cards).toHaveCount(count);
|
|
});
|
|
|
|
when('I select category {string}', async ({ page }, category: string) => {
|
|
await page.locator('select').filter({ hasText: 'All Categories' }).selectOption(category);
|
|
});
|
|
|
|
when('I select type {string}', async ({ page }, type: string) => {
|
|
await page.locator('select').filter({ hasText: 'All Types' }).selectOption(type);
|
|
});
|
|
|
|
when('I select status {string}', async ({ page }, status: string) => {
|
|
await page.locator('select').filter({ hasText: 'All Status' }).selectOption(status);
|
|
});
|