Create Product Agent Playwright Tests
Use this skill to add or modify Playwright tests under frontend/product-agent/tests and to run the E2E suite safely.
Quick start
- •Prefer the existing test patterns in
frontend/product-agent/tests/*.spec.ts. - •Use stable selectors from
references/ui-selectors.md. - •Use scenario briefs from
references/test-scenarios.mdto translate prompts into assertions.
Workflow
- •
Decide test type
- •Use smoke tests for non-live UI checks (landing page, settings persistence).
- •Use live E2E tests when the scenario depends on the backend or streaming (research plan approval, artifact rendering).
- •
Pick a base pattern
- •For live tests, mirror
frontend/product-agent/tests/run-progress.e2e.spec.ts. - •For smoke tests, mirror
frontend/product-agent/tests/app-smoke.spec.tsorfrontend/product-agent/tests/conversations.spec.ts.
- •For live tests, mirror
- •
Implement assertions
- •Use role- or label-based selectors first.
- •Keep assertions UI-facing (visible text, status badges, buttons).
- •For approval flows, assert both the pending state and the response after clicking Approve/Reject.
- •
Guard live tests
- •Gate live tests behind
E2E_LIVE=1and skip if base URL is unreachable. - •If prompt input is missing, skip with a clear reason (see live test patterns).
- •Gate live tests behind
- •
Run tests
- •Smoke tests:
npm run test -w frontend/product-agent. - •Live tests:
E2E_LIVE=1 npm run test -w frontend/product-agent. - •Targeted live file:
E2E_LIVE=1 npx playwright test tests/run-progress.e2e.spec.ts(run insidefrontend/product-agent).
- •Smoke tests:
References
- •UI selectors:
references/ui-selectors.md - •Scenario briefs:
references/test-scenarios.md
Notes
- •Live tests require a running backend with streaming enabled and valid API keys; follow the skip patterns used in
run-progress.e2e.spec.ts. - •When validating settings persistence, confirm the Settings panel reflects saved values after reopening.
- •For clarifying-question flows, accept either explicit question text or the "Needs Clarification" status badge.