UI E2E Test Implementation Command
User Input
$ARGUMENTS
Extract test number (if specified) and consider any additional context from user input (if not empty).
Overview
- •
Check Prerequisites:
- •Verify
docs/e2e-ui/test-targets.mdexists (English version, for AI) - •If not exists ERROR: "Please run /e2e-ui:research first"
- •Verify
- •
Read Project Configuration:
- •Read
playwright.config.ts(or.js):- •Extract test directory from
testDirortestMatch - •Extract base URL from
webServer.urloruse.baseURL
- •Extract test directory from
- •Read
package.json(in same directory):- •Detect framework from dependencies:
next,react,vue,svelte, etc.
- •Detect framework from dependencies:
- •Fallback: If playwright.config not found, ask user for test directory and base URL
- •Read
- •
Load Test Targets:
- •Read test scenarios from document
- •Extract test number from $ARGUMENTS (if provided)
- •Identify execution order
- •
Execute Tests Sequentially:
- •For each test scenario (in order): a. Manual Testing Phase: Verify behavior with Playwright MCP b. Bug Detection: Check for issues c. Bug Handling: If bug found, create bilingual bug report (ko.md + md) and continue d. Code Writing Phase: Write Playwright test code if passed (skip if bug) e. Progress Reporting: Update summary document
- •
Generate Documentation:
- •Create
docs/e2e-ui/summary-test-N.mdfor each completed test - •Create
docs/e2e-ui/bug-report-test-N.ko.mdandbug-report-test-N.mdfor bugs - •Track overall progress
- •Create
- •
Report Results:
- •List of completed tests
- •List of bugs found (with details)
- •Summary of test code created
- •Guide next steps
Key Rules
🚨 Bug Detection (Important)
Document and continue when these situations occur:
- •
Page Load Failure:
- •Navigation timeout
- •404/500 errors
- •Blank page
- •
Element Not Found:
- •Expected button/input missing
- •Wrong element attributes
- •Wrong page structure
- •
Interaction Failure:
- •Click not working
- •Input text not entering
- •Form submission failure
- •
Console Errors:
- •JavaScript errors
- •Network failures (except expected ones)
- •React errors/warnings
- •
Unexpected Behavior:
- •Wrong navigation
- •Wrong data display
- •Missing UI elements
- •Broken functionality
Bug Report Format (create both ko.md and md versions):
Files to create:
- •
docs/e2e-ui/bug-report-test-N.ko.md(Korean) - •
docs/e2e-ui/bug-report-test-N.md(English)
## 🐛 Bug Found **Test**: [Test N: name] **Priority**: [Critical/High/Medium] **What Was Being Tested**: [description] **Reproduction Steps**: 1. [step 1] 2. [step 2] 3. [bug occurs here] **Expected Behavior**: [what should happen] **Actual Behavior**: [what actually happened] **Evidence**: - Screenshot: [path] - Console Errors: [if any] - Page State: [snapshot info] **Impact**: [impact on users]
After creating bug report, continue to next test instead of stopping.
✅ MUST DO
- •Read
playwright.config.tsandpackage.jsonfirst to get project configuration- •playwright.config.ts: test directory, base URL, test settings
- •package.json: framework detection
- •Run tests one at a time (sequentially)
- •Use Playwright MCP for actual testing before code writing
- •Create bilingual bug reports (ko.md + md) when bugs found
- •Continue testing after documenting bugs
- •Write test code in directory from playwright.config.ts (testDir or testMatch)
- •Write clean and maintainable test code
- •Follow TypeScript and testing coding standards
- •Generate summary for each test
- •Take screenshots for evidence
❌ NEVER DO
- •Skip reading
playwright.config.ts(it's the primary source of truth) - •Run multiple tests in parallel
- •Skip manual verification phase
- •Stop testing after finding bug (should continue)
- •Write test code without verifying behavior
- •Create single-language bug reports (must be bilingual)
- •Write test code outside directory specified in playwright.config
- •Hardcode base URLs or test directories
- •Ignore console errors or warnings
- •Skip edge cases
🎯 Test Implementation Process
For each test:
- •
Manual Verification (using Playwright MCP):
code- Navigate to page - Interact with UI elements - Take snapshots - Verify expected behavior - Check console messages
- •
Bug Check:
- •Did everything work as expected?
- •Any errors or warnings?
- •Is behavior correct?
- •
Decision Point:
- •✅ If Pass: Proceed to write test code
- •🐛 If Bug Found: Create bilingual bug report, continue to next test
- •
Write Test Code (only if passed):
typescript// Create test file in directory from playwright.config.ts (testDir or testMatch) // Follow project test patterns // Include assertions and error handling // Follow naming convention from testMatch pattern (e.g., *.spec.ts, *.e2e.ts)
- •
Documentation:
- •Generate summary document
- •Record what was tested
- •Note observations
Document Template
File to create: docs/e2e-ui/summary-test-N.md
# Test N: [scenario name]
> **Created**: [YYYY-MM-DD HH:mm]
> **Related Plan**: `test-targets.md` > Test N
> **Status**: ✅ Pass / 🐛 Bug Found
---
## 🎯 Test Objective
[what this test verifies]
---
## 🧪 Manual Verification Results
**Test Steps Performed**:
1. [step 1] - ✅ Success
2. [step 2] - ✅ Success
3. [step 3] - ✅ Success
**Screenshots**:
- [screenshot 1]: `path/to/screenshot1.png`
- [screenshot 2]: `path/to/screenshot2.png`
**Console Output**:
- [relevant console messages]
**Observations**:
- [interesting findings]
---
## 📝 Generated Test Code
**File**: `[path/to/test/file.spec.ts]`
**Main Assertions**:
- [assertion 1]
- [assertion 2]
**Code Structure**:
```typescript
// Brief overview of test structure
test("scenario name", async ({ page }) => {
// test steps
});
```
✅ Verification
Test Execution:
- •Manual verification: ✅ Pass
- •Code implementation: ✅ Complete
- •Test successfully run: [✅ / Not yet run]
Edge Cases Tested:
- •
- •
📊 Coverage
What This Test Covers:
- •[feature 1]
- •[user flow 2]
What It Doesn't Cover (future):
- •[out of scope items]
🔑 Technical Notes
- •[technical decisions made]
- •[workarounds if needed]
- •[dependencies or setup required]
--- ## Bug Report Template **Create bilingual bug reports when bug found**: Files to create: - `docs/e2e-ui/bug-report-test-N.ko.md` (Korean version) - `docs/e2e-ui/bug-report-test-N.md` (English version) ### Korean Version Template ```markdown # 🐛 버그 리포트: Test N > **발견일시**: [YYYY-MM-DD HH:mm] > **테스트**: Test N: [시나리오 이름] > **우선순위**: [Critical/High/Medium] --- ## 📋 버그 요약 [버그에 대한 한 문장 설명] --- ## 🔍 상세 내용 **테스트 대상**: [테스트 시나리오 설명] **재현 단계**: 1. [단계 1] 2. [단계 2] 3. [버그 발생 지점] **예상 동작**: [기대했던 동작] **실제 동작**: [실제 발생한 동작] --- ## 📸 증거 **스크린샷**: - [스크린샷 1]: `path/to/screenshot.png` **콘솔 에러**:
[콘솔 에러 메시지 붙여넣기]
**페이지 상태**: ```yaml [페이지 스냅샷 또는 관련 HTML]
💥 영향도
사용자 영향: [최종 사용자에게 미치는 영향]
심각도: [이 우선순위 레벨인 이유]
🔄 다음 단계
- •사용자가 버그 리포트 검토
- •개발자가 버그 수정
- •수정 후
/e2e-ui:execute N으로 이 테스트부터 재개 가능
### English Version Template ```markdown # 🐛 Bug Report: Test N > **Discovered**: [YYYY-MM-DD HH:mm] > **Test**: Test N: [scenario name] > **Priority**: [Critical/High/Medium] --- ## 📋 Bug Summary [one sentence description of bug] --- ## 🔍 Details **What Was Being Tested**: [test scenario description] **Reproduction Steps**: 1. [step 1] 2. [step 2] 3. [bug occurs here] **Expected Behavior**: [what should happen] **Actual Behavior**: [what actually happened] --- ## 📸 Evidence **Screenshots**: - [screenshot 1]: `path/to/screenshot.png` **Console Errors**:
[paste console error messages]
**Page State**: ```yaml [page snapshot or relevant HTML]
💥 Impact
User Impact: [impact on end users]
Severity: [why this priority level]
🔄 Next Steps
- •User reviews this bug report
- •Developer fixes the bug
- •After fix, resume:
/e2e-ui:execute Nto continue from this test
**Important**: After creating bug report, continue to next test instead of stopping. --- ## Execution Flow ### Initialization 1. **Read project configuration files**: - `playwright.config.ts`: Extract test directory, base URL, naming convention from testMatch - `package.json`: Detect framework from dependencies (next, react, vue, etc.) - **Fallback**: If config not found, ask user for test directory and base URL 2. Load test targets document (docs/e2e-ui/test-targets.md - English version, for AI) 3. Determine which tests to run 4. Check existing summaries (resume capability) ### For Each Test 1. **Announce**: "Starting Test N: [name]" 2. **Manual Testing**: - Use Playwright MCP tools - Navigate, interact, verify - Take screenshots - Check console 3. **Evaluate**: - Is behavior correct? - Any errors? 4. **Decide**: - If bug: Generate bilingual bug report (ko.md + md), continue to next - If pass: Continue to code writing 5. **Write Code** (only if passed): - Create test file in directory from playwright.config.ts - Implement test logic - Follow coding standards - Follow naming convention from testMatch pattern 6. **Document**: - Generate summary (if passed) - Generate bug report (if bug found) - Record findings 7. **Progress**: "Test N complete. Moving to Test N+1..." ### Completion - Provide comprehensive summary: - List of tests passed with generated code - List of bugs found with report links - Overall coverage achieved - Recommendations for next steps --- ## Execute Start working according to the guidelines above.