| name | running-e2e-tests |
| description | Execute end-to-end tests covering full user workflows across frontend and backend.
Use when performing specialized testing.
Trigger with phrases like "run end-to-end tests", "test user flows", or "execute E2E suite".
|
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash(test:e2e-*) |
| version | 1.21.0 |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| license | MIT |
| tags | ["testing","workflow","e2e-tests"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
E2E Test Framework
Current State
!cat package.json 2>/dev/null | grep -oE 'playwright|cypress|selenium' || echo 'No E2E framework detected'
Overview
Execute end-to-end tests that simulate real user workflows across the full application stack -- browser interactions, API calls, database operations, and third-party integrations. Supports Playwright (recommended), Cypress, Selenium, and Puppeteer.
Prerequisites
- E2E testing framework installed (Playwright, Cypress, or Selenium WebDriver)
- Application running in a test environment with seeded test data
- Browser binaries installed (
npx playwright install or Cypress binary)
- Test user accounts created with known credentials
- Environment variables configured for base URL, API keys, and test credentials
Instructions
- Identify critical user journeys to cover:
- User registration and login flow.
- Primary feature workflow (e.g., create item, edit, delete).
- Search and filtering functionality.
- Checkout or payment flow (if applicable).
- Error handling (404 pages, form validation, session expiry).
- Create page object models (POM) for reusable page interactions:
- One class per page or major component.
- Encapsulate locators, actions (click, fill, select), and assertions.
- Use
data-testid attributes as primary selectors for stability.
- Write E2E test files organized by user journey:
- Each test file covers one complete workflow.
- Use
beforeEach to navigate to the starting page and reset state.
- Use
afterEach to capture screenshots on failure.
- Keep tests independent -- no test should depend on another test's output.
- Handle authentication efficiently:
- Store authenticated session state to a file (
storageState in Playwright).
- Reuse session across tests that require login.
- Create a separate auth setup fixture that runs once per worker.
- Configure multi-browser and responsive testing:
- Run tests on Chromium, Firefox, and WebKit.
- Test at mobile (375px), tablet (768px), and desktop (1280px) viewports.
- Use Playwright projects to define browser/viewport combinations.
- Add retry and stability mechanisms:
- Use
expect with auto-waiting locators (Playwright) instead of explicit waits.