Skip to main content

tsh-e2e-testing

E2E testing patterns, verification procedures, and CI readiness checklists using Playwright. Use for writing, debugging, or reviewing end-to-end tests, fixing flaky tests, creating Page Objects, mocking external APIs.

Quellinformationen

Repository
TheSoftwareHouse/copilot-collections
Letzte Quellaktivität
5. Mai 2026 um 11:32
Erkannte Sprache von SKILL.md
Englisch
Sterne
284
Forks
19

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
tsh-e2e-testing
description
E2E testing patterns, verification procedures, and CI readiness checklists using Playwright. Use for writing, debugging, or reviewing end-to-end tests, fixing flaky tests, creating Page Objects, mocking external APIs.
user-invocable
false
# E2E Testing Patterns & Practices ## Page Object Pattern ```typescript export class FeaturePage { constructor(readonly page: Page) {} get submitBtn() { return this.page.getByRole('button', { name: 'Submit' }); } async navigate() { await this.page.goto('/feature'); } } ``` ## Test Structure ```typescript test('should [behavior] when [condition]', async ({ page }) => { const id = `test-${Date.now()}-${test.info().parallelIndex}`; // Arrange → Act → Assert }); ``` ## Mocking (external APIs only) ```typescript await page.route('**/api/external/**', route => route.fulfill({ status: 200, body: '{}' })); ``` ## Verification Loop ``` RUN → FAIL? → DEBUG (browser_snapshot) → FIX → REPEAT ``` | Rule | Limit | |------|-------| | Max per test | 5 iterations → `test.fixme()` | | Max per suite | 15 iterations → stop | | Flaky detection | 3 pass/fail mix → investigate | | Stability | 3+ consecutive passes required | | App bug | Mark `test.fixme('BUG: desc')` | ### Error Recovery | Error | Action | |-------|--------| | Timeout | Increase once → check selector → check if element renders | | Element not found | Alternative locator → check DOM → verify page loaded | | Network | Retry → consider mock → verify backend | | Flaky | Explicit waits → check race conditions → run 5x | | App bug | Mark `test.fixme('BUG: desc')` - test is skipped; CI usually still passes unless skipped tests fail the build | ## CI Readiness Checklist - [ ] Passes headless: `npx playwright test --headed=false` - [ ] Uses `process.env.BASE_URL` - [ ] No hardcoded credentials - [ ] Explicit viewport ## Quick Reference **Always**: accessible locators, unique test data, 3+ passes, mock external APIs **Never**: `waitForTimeout()`, CSS selectors, test interdependencies, hardcoded creds
Auf GitHub ansehen