@sk8metal/michi-cli 0.10.1 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +77 -847
  2. package/dist/scripts/phase-runner.js +1 -1
  3. package/dist/scripts/phase-runner.js.map +1 -1
  4. package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
  5. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  6. package/dist/scripts/utils/multi-repo-validator.js +42 -0
  7. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  8. package/dist/scripts/utils/tasks-format-validator.js +3 -3
  9. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  10. package/docs/README.md +20 -83
  11. package/docs/getting-started/configuration.md +379 -0
  12. package/docs/getting-started/installation.md +59 -0
  13. package/docs/getting-started/quick-start.md +76 -0
  14. package/docs/guides/ai-tools.md +311 -0
  15. package/docs/guides/atlassian-integration.md +116 -0
  16. package/docs/guides/claude-code.md +155 -0
  17. package/docs/guides/multi-repo.md +117 -0
  18. package/docs/guides/workflow.md +382 -0
  19. package/docs/reference/ai-commands.md +92 -0
  20. package/docs/reference/cli.md +756 -0
  21. package/docs/reference/environment-variables.md +192 -0
  22. package/docs/troubleshooting.md +543 -0
  23. package/package.json +1 -1
  24. package/scripts/phase-runner.ts +1 -1
  25. package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
  26. package/scripts/utils/multi-repo-validator.ts +50 -0
  27. package/scripts/utils/tasks-format-validator.ts +3 -3
  28. package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
  29. package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
  30. package/templates/claude/commands/michi/e2e-plan.md +1 -1
  31. package/templates/claude/commands/michi/spec-design.md +2 -2
  32. package/templates/claude/commands/michi/spec-tasks.md +156 -0
  33. package/templates/claude/commands/michi/test-planning.md +1 -1
  34. package/templates/claude/commands/michi/validate-design.md +3 -3
  35. package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
  36. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
  37. package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
  38. package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
  39. package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
  40. package/templates/claude-agent/rules/code-size-monitor.md +26 -0
  41. package/templates/claude-agent/rules/code-size-rules.md +32 -0
  42. package/templates/codex/AGENTS.override.md +1 -1
  43. package/templates/codex/rules/README.md +2 -2
  44. package/templates/cursor/commands/michi/spec-tasks.md +117 -0
  45. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
  46. package/docs/context.md +0 -59
  47. package/docs/michi-development/contributing/development.md +0 -341
  48. package/docs/michi-development/contributing/release.md +0 -365
  49. package/docs/michi-development/design/config-unification.md +0 -733
  50. package/docs/michi-development/design/design-config-current-state.md +0 -330
  51. package/docs/michi-development/design/design-config-implementation.md +0 -628
  52. package/docs/michi-development/design/design-config-migration.md +0 -952
  53. package/docs/michi-development/design/design-config-security.md +0 -771
  54. package/docs/michi-development/design/design-config-solution.md +0 -583
  55. package/docs/michi-development/design/design-config-testing.md +0 -892
  56. package/docs/michi-development/testing/manual-verification-flow.md +0 -871
  57. package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
  58. package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
  59. package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
  60. package/docs/michi-development/testing-strategy.md +0 -87
  61. package/docs/plan.md +0 -275
  62. package/docs/user-guide/getting-started/github-token-setup.md +0 -510
  63. package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
  64. package/docs/user-guide/getting-started/quick-start.md +0 -212
  65. package/docs/user-guide/getting-started/setup.md +0 -819
  66. package/docs/user-guide/guides/agent-skills-integration.md +0 -222
  67. package/docs/user-guide/guides/customization.md +0 -537
  68. package/docs/user-guide/guides/internationalization.md +0 -540
  69. package/docs/user-guide/guides/migration-guide.md +0 -138
  70. package/docs/user-guide/guides/multi-project.md +0 -368
  71. package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
  72. package/docs/user-guide/guides/phase-automation.md +0 -419
  73. package/docs/user-guide/guides/workflow.md +0 -574
  74. package/docs/user-guide/hands-on/README.md +0 -142
  75. package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
  76. package/docs/user-guide/hands-on/claude-setup.md +0 -452
  77. package/docs/user-guide/hands-on/cursor-setup.md +0 -353
  78. package/docs/user-guide/hands-on/troubleshooting.md +0 -964
  79. package/docs/user-guide/hands-on/verification-checklist.md +0 -439
  80. package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
  81. package/docs/user-guide/reference/config.md +0 -589
  82. package/docs/user-guide/reference/multi-repo-api.md +0 -771
  83. package/docs/user-guide/reference/quick-reference.md +0 -297
  84. package/docs/user-guide/reference/security-test-payloads.md +0 -50
  85. package/docs/user-guide/reference/tasks-template.md +0 -550
  86. package/docs/user-guide/release/ci-setup-java.md +0 -114
  87. package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
  88. package/docs/user-guide/release/ci-setup-php.md +0 -102
  89. package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
  90. package/docs/user-guide/release/ci-setup.md +0 -188
  91. package/docs/user-guide/release/release-flow.md +0 -476
  92. package/docs/user-guide/templates/test-specs/README.md +0 -173
  93. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
  94. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
  95. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
  96. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
  97. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
  98. package/docs/user-guide/testing/integration-tests.md +0 -312
  99. package/docs/user-guide/testing/tdd-cycle.md +0 -349
  100. package/docs/user-guide/testing/test-execution-flow.md +0 -396
  101. package/docs/user-guide/testing/test-failure-handling.md +0 -521
  102. package/docs/user-guide/testing/test-planning-flow.md +0 -185
  103. package/docs/user-guide/testing-strategy.md +0 -185
  104. package/docs/verification-guide.md +0 -518
@@ -1,553 +0,0 @@
1
- # E2E Test Specification: {{TEST_NAME}}
2
-
3
- **Author**: {{AUTHOR}}
4
- **Date**: {{DATE}}
5
- **Version**: 1.0
6
-
7
- ## 1. Overview
8
-
9
- ### 1.1 Purpose
10
- {{PURPOSE}}
11
-
12
- Example: To verify that end users can successfully complete critical user journeys in the {{APPLICATION_NAME}} from start to finish in a real browser environment.
13
-
14
- ### 1.2 Scope
15
- {{SCOPE}}
16
-
17
- Example: This test specification covers the complete user registration and login flow, including UI interactions, form validations, and successful authentication.
18
-
19
- ### 1.3 Testing Tool
20
- - **Tool**: {{TOOL_NAME}}
21
- - **Version**: {{VERSION}}
22
-
23
- Example:
24
- - **Tool**: Playwright / Selenium WebDriver / Cypress
25
- - **Version**: 1.40.0 / 4.15.0 / 13.6.0
26
-
27
- ## 2. Test Environment
28
-
29
- ### 2.1 Software Requirements
30
- - Browser Automation Tool: {{AUTOMATION_TOOL}} {{VERSION}}
31
- - Browsers: {{BROWSER_LIST}}
32
- - Application Environment: {{ENV_URL}}
33
- - Backend API: {{API_URL}}
34
- - Test Data Management: {{DATA_MANAGEMENT}}
35
-
36
- Example:
37
- - Browser Automation Tool: Playwright 1.40.0
38
- - Browsers: Chrome 120, Firefox 121, Safari 17
39
- - Application Environment: [https://staging.example.com](https://staging.example.com)
40
- - Backend API: [https://api-staging.example.com](https://api-staging.example.com)
41
- - Test Data Management: Test database with seeded data
42
-
43
- ### 2.2 Hardware Requirements
44
- - Test Machine: {{MACHINE_SPEC}}
45
- - Display Resolution: {{RESOLUTION_LIST}}
46
- - Network: {{NETWORK_REQUIREMENTS}}
47
-
48
- Example:
49
- - Test Machine: macOS/Windows/Linux with 8GB RAM
50
- - Display Resolution: 1920x1080 (Desktop), 768x1024 (Tablet), 375x667 (Mobile)
51
- - Network: Stable internet connection (minimum 10 Mbps)
52
-
53
- ### 2.3 Test Data
54
- - Test user accounts: `{{TEST_ACCOUNTS_FILE}}`
55
- - Test data setup script: `{{SETUP_SCRIPT}}`
56
- - Data cleanup script: `{{CLEANUP_SCRIPT}}`
57
- - Environment variables: `{{ENV_FILE}}`
58
-
59
- ## 3. User Flows
60
-
61
- ### 3.1 User Journey Map
62
-
63
- ```text
64
- {{STEP_1}} → {{STEP_2}} → {{STEP_3}} → {{STEP_4}} → {{STEP_5}}
65
- ```
66
-
67
- Example:
68
-
69
- ```text
70
- Landing Page → Sign Up Form → Email Verification → Profile Setup → Dashboard
71
- ```
72
-
73
- ### 3.2 User Flow Details
74
-
75
- | Flow ID | Flow Name | Description | Priority | Steps |
76
- |---------|-----------|-------------|----------|-------|
77
- | {{FLOW_1}} | {{NAME}} | {{DESC}} | High/Medium/Low | {{COUNT}} |
78
- | {{FLOW_2}} | {{NAME}} | {{DESC}} | High/Medium/Low | {{COUNT}} |
79
-
80
- Example:
81
-
82
- | Flow ID | Flow Name | Description | Priority | Steps |
83
- |---------|-----------|-------------|----------|-------|
84
- | UF-001 | User Registration | New user signs up and verifies email | High | 5 |
85
- | UF-002 | Product Purchase | User browses, adds to cart, and completes checkout | High | 8 |
86
- | UF-003 | Password Reset | User resets forgotten password | Medium | 4 |
87
-
88
- ### 3.3 Browser/Device Matrix (Optional)
89
-
90
- **Note**: This matrix is optional. Include it if you need to test across multiple browsers and devices.
91
-
92
- Test each user flow on the following combinations:
93
-
94
- | Browser | Version | Desktop | Tablet | Mobile | Priority |
95
- |---------|---------|---------|--------|--------|----------|
96
- | Chrome | {{VER}} | ✓ | ✓ | ✓ | High |
97
- | Firefox | {{VER}} | ✓ | - | - | Medium |
98
- | Safari | {{VER}} | ✓ | ✓ | ✓ | High |
99
- | Edge | {{VER}} | ✓ | - | - | Low |
100
-
101
- Example:
102
-
103
- | Browser | Version | Desktop | Tablet | Mobile | Priority |
104
- |---------|---------|---------|--------|--------|----------|
105
- | Chrome | 120+ | ✓ | ✓ | ✓ | High |
106
- | Firefox | 121+ | ✓ | - | - | Medium |
107
- | Safari | 17+ | ✓ | ✓ | ✓ | High |
108
- | Edge | 120+ | ✓ | - | - | Low |
109
-
110
- **Priority Guide**:
111
- - High: Must test on all marked platforms
112
- - Medium: Test on desktop only
113
- - Low: Test if time permits
114
-
115
- ## 4. Test Cases
116
-
117
- ### Test Case E2E-001: {{TEST_CASE_NAME}}
118
-
119
- **Description**: {{TEST_CASE_DESCRIPTION}}
120
-
121
- Example: Verify that a new user can complete the entire registration process from landing page to successful login.
122
-
123
- **User Flow**: {{FLOW_ID}}
124
- **Browser/Device**: {{BROWSER}} / {{DEVICE}}
125
-
126
- Example:
127
- **User Flow**: UF-001 (User Registration)
128
- **Browser/Device**: Chrome / Desktop
129
-
130
- **Preconditions**:
131
- - {{PRECONDITION_1}}
132
- - {{PRECONDITION_2}}
133
-
134
- Example:
135
- - Application is deployed to staging environment
136
- - Test email account is accessible
137
- - No existing user with test email address
138
-
139
- **Test Steps**:
140
- 1. {{STEP_1}}
141
- 2. {{STEP_2}}
142
- 3. {{STEP_3}}
143
- 4. {{STEP_4}}
144
- 5. {{STEP_5}}
145
-
146
- Example:
147
- 1. Navigate to `https://staging.example.com`
148
- 2. Click "Sign Up" button
149
- 3. Fill in registration form (name: "Test User", email: "test@example.com", password: "Test1234!")
150
- 4. Click "Create Account" button
151
- 5. Verify confirmation message appears
152
- 6. Check email inbox for verification link
153
- 7. Click verification link in email
154
- 8. Verify redirect to profile setup page
155
- 9. Complete profile setup
156
- 10. Verify redirect to dashboard with welcome message
157
-
158
- **Expected Results**:
159
- {{EXPECTED_RESULTS}}
160
-
161
- Example:
162
- - User is successfully registered
163
- - Verification email is received within 1 minute
164
- - Profile setup page loads correctly
165
- - Dashboard displays user name and welcome message
166
- - User can logout and login again with credentials
167
-
168
- **Actual Results**:
169
- [To be filled during test execution]
170
-
171
- **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
172
-
173
- **Screenshots/Videos**:
174
- - [ ] Screenshot of each major step
175
- - [ ] Video recording of entire flow
176
-
177
- **Notes**:
178
- {{NOTES}}
179
-
180
- ---
181
-
182
- ### Test Case E2E-002: {{TEST_CASE_NAME}}
183
-
184
- **Description**: {{TEST_CASE_DESCRIPTION}}
185
-
186
- Example: Verify that a user can complete a product purchase from search to payment confirmation.
187
-
188
- **User Flow**: {{FLOW_ID}}
189
- **Browser/Device**: {{BROWSER}} / {{DEVICE}}
190
-
191
- **Preconditions**:
192
- - {{PRECONDITION_1}}
193
- - {{PRECONDITION_2}}
194
-
195
- **Test Steps**:
196
- 1. {{STEP_1}}
197
- 2. {{STEP_2}}
198
- 3. {{STEP_3}}
199
-
200
- **Expected Results**:
201
- {{EXPECTED_RESULTS}}
202
-
203
- **Actual Results**:
204
- [To be filled during test execution]
205
-
206
- **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
207
-
208
- **Screenshots/Videos**:
209
- - [ ] Screenshot of each major step
210
- - [ ] Video recording of entire flow
211
-
212
- **Notes**:
213
- {{NOTES}}
214
-
215
- ---
216
-
217
- ### Test Case E2E-003: Error Handling - {{SCENARIO_NAME}}
218
-
219
- **Description**: {{TEST_CASE_DESCRIPTION}}
220
-
221
- Example: Verify that user receives appropriate error messages when submitting invalid registration data.
222
-
223
- **User Flow**: {{FLOW_ID}}
224
- **Browser/Device**: {{BROWSER}} / {{DEVICE}}
225
-
226
- **Preconditions**:
227
- - {{PRECONDITION}}
228
-
229
- **Test Steps**:
230
- 1. {{STEP_1}}
231
- 2. {{STEP_2}}
232
- 3. {{STEP_3}}
233
-
234
- Example:
235
- 1. Navigate to registration page
236
- 2. Enter invalid email format: "notanemail"
237
- 3. Enter password less than minimum length: "123"
238
- 4. Click "Create Account"
239
- 5. Verify inline error messages appear for each field
240
- 6. Verify error messages are user-friendly and actionable
241
-
242
- **Expected Results**:
243
- {{EXPECTED_RESULTS}}
244
-
245
- Example:
246
- - Email field shows error: "Please enter a valid email address"
247
- - Password field shows error: "Password must be at least 8 characters"
248
- - Submit button remains disabled or form doesn't submit
249
- - No server error occurs
250
-
251
- **Actual Results**:
252
- [To be filled during test execution]
253
-
254
- **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
255
-
256
- **Screenshots/Videos**:
257
- - [ ] Screenshot of error messages
258
-
259
- **Notes**:
260
- {{NOTES}}
261
-
262
- ---
263
-
264
- ### Test Case E2E-004: Responsive Design - {{DEVICE_TYPE}}
265
-
266
- **Description**: {{TEST_CASE_DESCRIPTION}}
267
-
268
- Example: Verify that the registration flow works correctly on mobile devices with proper responsive design.
269
-
270
- **User Flow**: {{FLOW_ID}}
271
- **Browser/Device**: {{BROWSER}} / {{DEVICE}}
272
-
273
- Example:
274
- **Browser/Device**: Chrome / Mobile (375x667)
275
-
276
- **Preconditions**:
277
- - {{PRECONDITION}}
278
-
279
- **Test Steps**:
280
- 1. {{STEP_1}}
281
- 2. {{STEP_2}}
282
- 3. {{STEP_3}}
283
-
284
- Example:
285
- 1. Open browser with mobile viewport (375x667)
286
- 2. Navigate to registration page
287
- 3. Verify all form fields are visible and accessible
288
- 4. Verify buttons are appropriately sized for touch
289
- 5. Complete registration flow
290
- 6. Verify no horizontal scrolling required
291
- 7. Verify all interactive elements are easily tappable
292
-
293
- **Expected Results**:
294
- {{EXPECTED_RESULTS}}
295
-
296
- Example:
297
- - Layout adapts properly to mobile viewport
298
- - All text is readable without zooming
299
- - Form fields are properly sized
300
- - Navigation is accessible via hamburger menu
301
- - No UI elements are cut off or overlapping
302
-
303
- **Actual Results**:
304
- [To be filled during test execution]
305
-
306
- **Status**: [ ] Pass / [ ] Fail / [ ] Blocked
307
-
308
- **Screenshots/Videos**:
309
- - [ ] Screenshots at different viewport sizes
310
- - [ ] Video of mobile interaction
311
-
312
- **Notes**:
313
- {{NOTES}}
314
-
315
- ---
316
-
317
- ## 5. Test Execution Summary
318
-
319
- | ID | Test Name | Flow | Browser | Device | Status | Date | Notes |
320
- |----|-----------|------|---------|--------|--------|------|-------|
321
- | E2E-001 | {{NAME}} | {{FLOW}} | Chrome | Desktop | | | |
322
- | E2E-002 | {{NAME}} | {{FLOW}} | Chrome | Desktop | | | |
323
- | E2E-003 | {{NAME}} | {{FLOW}} | Firefox | Desktop | | | |
324
- | E2E-004 | {{NAME}} | {{FLOW}} | Chrome | Mobile | | | |
325
-
326
- ## 6. Defects Found
327
-
328
- | Defect ID | Severity | Description | Browser/Device | Screenshot/Video | Status |
329
- |-----------|----------|-------------|----------------|------------------|--------|
330
- | | High/Medium/Low | | | | Open/In Progress/Fixed/Closed |
331
-
332
- ## 7. Sign-off
333
-
334
- **Tested By**: _______________
335
- **Date**: _______________
336
- **Approved By**: _______________
337
- **Date**: _______________
338
-
339
- ---
340
-
341
- ## Appendix A: Test Environment Setup
342
-
343
- ### Playwright Setup
344
-
345
- ```bash
346
- # Install Playwright
347
- npm install -D @playwright/test
348
-
349
- # Install browsers
350
- npx playwright install
351
-
352
- # Run tests
353
- npx playwright test
354
-
355
- # Run tests in UI mode
356
- npx playwright test --ui
357
-
358
- # Generate HTML report
359
- npx playwright show-report
360
- ```
361
-
362
- ### Selenium WebDriver Setup
363
-
364
- ```bash
365
- # Install Selenium (Node.js)
366
- npm install selenium-webdriver
367
-
368
- # Download browser drivers
369
- # ChromeDriver, GeckoDriver, etc.
370
-
371
- # Run tests
372
- node e2e-tests/registration.test.js
373
- ```
374
-
375
- ### Cypress Setup
376
-
377
- ```bash
378
- # Install Cypress
379
- npm install -D cypress
380
-
381
- # Open Cypress
382
- npx cypress open
383
-
384
- # Run tests headless
385
- npx cypress run
386
-
387
- # Run specific test
388
- npx cypress run --spec "cypress/e2e/registration.cy.js"
389
- ```
390
-
391
- ## Appendix B: Code Examples
392
-
393
- ### Example E2E Test Code (Playwright)
394
-
395
- ```typescript
396
- import { test, expect } from '@playwright/test';
397
-
398
- test('User registration flow', async ({ page }) => {
399
- // Navigate to landing page
400
- await page.goto('https://staging.example.com');
401
-
402
- // Click sign up button
403
- await page.click('text=Sign Up');
404
-
405
- // Fill registration form
406
- await page.fill('input[name="name"]', 'Test User');
407
- await page.fill('input[name="email"]', 'test@example.com');
408
- await page.fill('input[name="password"]', 'Test1234!');
409
-
410
- // Submit form
411
- await page.click('button[type="submit"]');
412
-
413
- // Verify confirmation message
414
- await expect(page.locator('text=Account created successfully')).toBeVisible();
415
-
416
- // Verify redirect to dashboard
417
- await expect(page).toHaveURL(/.*dashboard/);
418
- await expect(page.locator('text=Welcome, Test User')).toBeVisible();
419
- });
420
-
421
- test('Registration with invalid email', async ({ page }) => {
422
- await page.goto('https://staging.example.com/signup');
423
-
424
- await page.fill('input[name="email"]', 'notanemail');
425
- await page.fill('input[name="password"]', 'Test1234!');
426
- await page.click('button[type="submit"]');
427
-
428
- // Verify error message
429
- await expect(page.locator('text=Please enter a valid email')).toBeVisible();
430
- });
431
- ```
432
-
433
- ### Example E2E Test Code (Selenium WebDriver)
434
-
435
- ```javascript
436
- const { Builder, By, until } = require('selenium-webdriver');
437
-
438
- async function testUserRegistration() {
439
- let driver = await new Builder().forBrowser('chrome').build();
440
-
441
- try {
442
- // Navigate to landing page
443
- await driver.get('https://staging.example.com');
444
-
445
- // Click sign up button
446
- await driver.findElement(By.linkText('Sign Up')).click();
447
-
448
- // Fill registration form
449
- await driver.findElement(By.name('name')).sendKeys('Test User');
450
- await driver.findElement(By.name('email')).sendKeys('test@example.com');
451
- await driver.findElement(By.name('password')).sendKeys('Test1234!');
452
-
453
- // Submit form
454
- await driver.findElement(By.css('button[type="submit"]')).click();
455
-
456
- // Wait for confirmation
457
- await driver.wait(until.elementLocated(By.xpath('//*[contains(text(), "Account created")]')), 5000);
458
-
459
- // Verify redirect
460
- let currentUrl = await driver.getCurrentUrl();
461
- assert(currentUrl.includes('dashboard'));
462
-
463
- } finally {
464
- await driver.quit();
465
- }
466
- }
467
-
468
- testUserRegistration();
469
- ```
470
-
471
- ### Example E2E Test Code (Cypress)
472
-
473
- ```javascript
474
- describe('User Registration Flow', () => {
475
- it('should complete registration successfully', () => {
476
- // Navigate to landing page
477
- cy.visit('https://staging.example.com');
478
-
479
- // Click sign up button
480
- cy.contains('Sign Up').click();
481
-
482
- // Fill registration form
483
- cy.get('input[name="name"]').type('Test User');
484
- cy.get('input[name="email"]').type('test@example.com');
485
- cy.get('input[name="password"]').type('Test1234!');
486
-
487
- // Submit form
488
- cy.get('button[type="submit"]').click();
489
-
490
- // Verify confirmation
491
- cy.contains('Account created successfully').should('be.visible');
492
-
493
- // Verify redirect to dashboard
494
- cy.url().should('include', '/dashboard');
495
- cy.contains('Welcome, Test User').should('be.visible');
496
- });
497
-
498
- it('should show error for invalid email', () => {
499
- cy.visit('https://staging.example.com/signup');
500
-
501
- cy.get('input[name="email"]').type('notanemail');
502
- cy.get('input[name="password"]').type('Test1234!');
503
- cy.get('button[type="submit"]').click();
504
-
505
- // Verify error message
506
- cy.contains('Please enter a valid email').should('be.visible');
507
- });
508
- });
509
- ```
510
-
511
- ## Appendix C: Screenshot and Video Configuration (Optional)
512
-
513
- **Note**: This section is optional. Include it if you need to configure screenshot and video capture for your E2E tests.
514
-
515
- ### Playwright Configuration
516
-
517
- ```typescript
518
- // playwright.config.ts
519
- export default {
520
- use: {
521
- screenshot: 'only-on-failure',
522
- video: 'retain-on-failure',
523
- trace: 'retain-on-failure',
524
- },
525
- };
526
- ```
527
-
528
- ### Cypress Configuration
529
-
530
- ```javascript
531
- // cypress.config.js
532
- module.exports = {
533
- video: true,
534
- screenshotOnRunFailure: true,
535
- videosFolder: 'cypress/videos',
536
- screenshotsFolder: 'cypress/screenshots',
537
- };
538
- ```
539
-
540
- ## Appendix D: Execution Timing (Optional)
541
-
542
- **Note**: This section is optional. Include it if you need to specify when E2E tests should be executed.
543
-
544
- ## Phase B (Before Release) - Manual Execution
545
-
546
- E2E tests are executed manually before creating a release tag:
547
-
548
- 1. After PR is merged to main branch
549
- 2. Before creating a release tag
550
- 3. Run all E2E tests in Phase B
551
- 4. Verify all critical user flows pass before proceeding to release
552
-
553
- E2E tests are **NOT** executed automatically in CI/CD during PR phase (only unit tests run automatically).