원클릭으로
e2e-testing
Use when writing end-to-end tests, designing E2E test strategy, or debugging flaky E2E tests
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when writing end-to-end tests, designing E2E test strategy, or debugging flaky E2E tests
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Execute safe Git workflows — branching, committing, resolving conflicts, and managing PRs
Use when controlling AI spend, token budgets, model routing, or workflow efficiency before scaling usage
Use when handling incidents, outages, severe regressions, or operational emergencies before attempting broad fixes
Use when investigating latency, throughput, resource saturation, or performance regressions before changing implementation details
Use when reviewing code, preparing a PR for review, or processing review feedback
Use when diagnosing bugs, test failures, or unexpected behavior before attempting any fix
| name | e2e-testing |
| description | Use when writing end-to-end tests, designing E2E test strategy, or debugging flaky E2E tests |
Announce at start: "Following the e2e-testing skill for end-to-end test design."
Test critical user journeys, not every interaction. E2E tests are expensive — be selective.
| Write E2E | Don't Write E2E |
|---|---|
| Critical user flows (login, checkout, signup) | Individual component behavior (use unit tests) |
| Multi-step workflows spanning pages | Simple CRUD operations |
| Cross-browser/device verification | Internal API validation (use integration tests) |
| Regression for UI bugs that unit tests can't catch | Styling or layout checks |
| Priority | Selector | Why |
|---|---|---|
| Best | getByTestId('submit-btn') | Stable, explicit, refactor-proof |
| Good | getByRole('button', { name: 'Submit' }) | Semantic, accessible |
| Avoid | .btn-primary, div > span:nth-child(2) | Brittle, breaks on styling changes |
waitForSelector, waitForResponse)sleep() or setTimeout() for timing| Symptom | Likely Cause | Fix |
|---|---|---|
| Passes locally, fails in CI | Timing / resource differences | Add explicit waits |
| Fails intermittently | Race condition | Use waitFor patterns |
| Fails after unrelated change | Fragile selector | Switch to getByTestId |
| Slow (> 30s per test) | Too many page navigations | Reuse auth state |
| Signal | Action |
|---|---|
| Writing E2E for logic that unit tests cover | Delete and write a unit test instead |
Using sleep() anywhere | Replace with explicit waits |
| Test depends on test execution order | Isolate the test |
| E2E suite takes > 10 minutes | Prune — you have too many |
| When | Invoke |
|---|---|
| Need unit/integration tests instead | testing |
| E2E test reveals a bug | debugging |
| Ready to submit changes | pr-writing |
For principles, rationale, anti-patterns, and examples:
guides/e2e-testing/e2e-testing.md