Stats
Actions
Tags
Scaffold E2E test files from user requirements
How this command is triggered — by the user, by Claude, or both
Slash command
/frontend-orchestration:build-pipeline-e2eFiles this command reads when invoked
The summary Claude sees in its command listing — used to decide when to auto-load this command
# /build-pipeline:e2e Write Playwright E2E tests for all user flows before building any components. ## Inputs - `/docs/UI_REQUIREMENTS.md` — user stories and user flows ## Behavior 1. Read UI_REQUIREMENTS.md 2. For each major user flow in the requirements: - Create one Playwright test file: `/client/e2e/[flow-name].spec.ts` - Name the test after the flow (e.g., "user logs in", "creates a post") 3. For each test file: - Write test(s) that follow the exact user flow narrative - Assert on visible UI elements (roles, text, element queries) - Never assert on implementation de...
Write Playwright E2E tests for all user flows before building any components.
/docs/UI_REQUIREMENTS.md — user stories and user flows/client/e2e/[flow-name].spec.ts/client/e2e/[flow-name].spec.ts — one test file per major flow
expect() assertionExample structure:
import { test, expect } from '@playwright/test';
test.describe('User Login Flow', () => {
test('user logs in with valid credentials', async ({ page }) => {
await page.goto('/login');
await page.getByLabel('Email').fill('[email protected]');
await page.getByLabel('Password').fill('password123');
await page.getByRole('button', { name: /sign in/i }).click();
await expect(page.getByText('Welcome, User')).toBeVisible();
});
test('shows error on invalid credentials', async ({ page }) => {
await page.goto('/login');
await page.getByLabel('Email').fill('[email protected]');
await page.getByLabel('Password').fill('wrong');
await page.getByRole('button', { name: /sign in/i }).click();
await expect(page.getByText(/invalid credentials/i)).toBeVisible();
});
});
expect() assertionnpx claudepluginhub jakemocode/frontend-orchestrator --plugin frontend-orchestration