← ClaudeAtlas

e2e-qalisted

End-to-end testing with Playwright and Cypress plus real CLI and HTTP journeys: test architecture, locator discipline, network interception, flake elimination, CI parallelization. Use when writing, fixing, or debugging E2E, browser, or user-journey tests. Unit and integration testing belongs to qa-automation.
alex-macra/ai-skills-assembly · ★ 0 · Testing & QA · score 78
Install: claude install-skill alex-macra/ai-skills-assembly
# End-to-end QA E2E tests exercise the real, running application through its public interface. They are expensive (slow, flaky, hard to debug). Use them deliberately - for the few critical flows that *must* work - and aggressively for everything else. ## What belongs in E2E - The login → core action → logout golden path. - Payment / checkout / signup - anything that loses revenue or trust when broken. - A handful of cross-page flows that span auth + data + UI state. What does **not** belong in E2E: - Form validation (unit-test the validator). - Pure rendering (component test). - Backend logic (integration test against the real API). - Anything you can cover faster at a lower level. If you find yourself writing the 30th E2E test for the same page, the pyramid is upside-down. Push them down to component or integration. ## Locator discipline - **Prefer accessible queries.** `page.getByRole('button', { name: 'Save' })`, `page.getByLabel('Email')`, `page.getByText(...)`. They double as accessibility checks. - **Fall back to test-ids only when role/label is ambiguous.** Test-ids are coupling between test and DOM - keep them rare. - **Never select by CSS class.** Classes change with refactors; tests should not. - **One assertion-style locator per test.** Don't `await page.locator('div').nth(3)` - name the thing. ## Waiting and synchronization - **Wait for state, not for time.** `await expect(locator).toBeVisible()` retries automatically. `await page.waitForTimeout(500)` is