@athenaflow/plugin-e2e-test-builder 2.0.9 → 2.0.10

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 (167) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/dist/{2.0.8 → 2.0.10}/.agents/plugins/marketplace.json +1 -1
  4. package/dist/{2.0.9 → 2.0.10}/claude/plugin/.claude-plugin/plugin.json +1 -1
  5. package/dist/{2.0.9 → 2.0.10}/claude/plugin/package.json +8 -2
  6. package/dist/{2.0.9 → 2.0.10}/claude/plugin/skills/add-e2e-tests/SKILL.md +18 -65
  7. package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/add-e2e-tests/agents/openai.yaml +1 -1
  8. package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/add-e2e-tests/references/error-recovery.md +3 -3
  9. package/dist/{2.0.8/codex → 2.0.10/claude}/plugin/skills/add-e2e-tests/references/scaffolding.md +1 -1
  10. package/dist/{2.0.9 → 2.0.10}/claude/plugin/skills/fix-flaky-tests/SKILL.md +1 -1
  11. package/dist/{2.0.8/codex → 2.0.10/claude}/plugin/skills/fix-flaky-tests/references/fix-patterns.md +3 -2
  12. package/dist/{2.0.9 → 2.0.10}/claude/plugin/skills/generate-test-cases/SKILL.md +8 -2
  13. package/dist/{2.0.9 → 2.0.10}/claude/plugin/skills/plan-test-coverage/SKILL.md +7 -6
  14. package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/review-test-cases/SKILL.md +3 -4
  15. package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/write-test-code/SKILL.md +4 -3
  16. package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/write-test-code/references/api-setup-teardown.md +1 -1
  17. package/dist/{2.0.9 → 2.0.10}/codex/plugin/.codex-plugin/plugin.json +1 -1
  18. package/dist/{2.0.9 → 2.0.10}/codex/plugin/package.json +8 -2
  19. package/dist/{2.0.9 → 2.0.10}/codex/plugin/skills/add-e2e-tests/SKILL.md +18 -65
  20. package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/add-e2e-tests/agents/openai.yaml +1 -1
  21. package/dist/{2.0.9/claude → 2.0.10/codex}/plugin/skills/add-e2e-tests/references/error-recovery.md +3 -3
  22. package/dist/{2.0.9/claude → 2.0.10/codex}/plugin/skills/add-e2e-tests/references/scaffolding.md +1 -1
  23. package/dist/{2.0.8/claude → 2.0.10/codex}/plugin/skills/fix-flaky-tests/SKILL.md +1 -1
  24. package/dist/{2.0.9/claude → 2.0.10/codex}/plugin/skills/fix-flaky-tests/references/fix-patterns.md +3 -2
  25. package/dist/{2.0.9 → 2.0.10}/codex/plugin/skills/generate-test-cases/SKILL.md +8 -2
  26. package/dist/{2.0.9 → 2.0.10}/codex/plugin/skills/plan-test-coverage/SKILL.md +7 -6
  27. package/dist/{2.0.9/claude → 2.0.10/codex}/plugin/skills/review-test-cases/SKILL.md +3 -4
  28. package/dist/{2.0.9/claude → 2.0.10/codex}/plugin/skills/write-test-code/SKILL.md +4 -3
  29. package/dist/{2.0.9/claude → 2.0.10/codex}/plugin/skills/write-test-code/references/api-setup-teardown.md +1 -1
  30. package/dist/{2.0.9 → 2.0.10}/release.json +1 -1
  31. package/package.json +7 -1
  32. package/skills/add-e2e-tests/SKILL.md +18 -65
  33. package/skills/add-e2e-tests/agents/openai.yaml +1 -1
  34. package/skills/add-e2e-tests/references/error-recovery.md +3 -3
  35. package/skills/add-e2e-tests/references/scaffolding.md +1 -1
  36. package/skills/fix-flaky-tests/SKILL.md +1 -1
  37. package/skills/fix-flaky-tests/references/fix-patterns.md +3 -2
  38. package/skills/generate-test-cases/SKILL.md +8 -2
  39. package/skills/plan-test-coverage/SKILL.md +7 -6
  40. package/skills/review-test-cases/SKILL.md +3 -4
  41. package/skills/write-test-code/SKILL.md +4 -3
  42. package/skills/write-test-code/references/api-setup-teardown.md +1 -1
  43. package/dist/2.0.8/claude/plugin/.claude-plugin/plugin.json +0 -20
  44. package/dist/2.0.8/claude/plugin/package.json +0 -9
  45. package/dist/2.0.8/claude/plugin/skills/add-e2e-tests/SKILL.md +0 -217
  46. package/dist/2.0.8/claude/plugin/skills/add-e2e-tests/agents/claude.yaml +0 -1
  47. package/dist/2.0.8/claude/plugin/skills/add-e2e-tests/references/scaffolding.md +0 -12
  48. package/dist/2.0.8/claude/plugin/skills/add-e2e-tests/references/tracker-template.md +0 -53
  49. package/dist/2.0.8/claude/plugin/skills/fix-flaky-tests/references/fix-patterns.md +0 -91
  50. package/dist/2.0.8/claude/plugin/skills/generate-test-cases/SKILL.md +0 -184
  51. package/dist/2.0.8/claude/plugin/skills/plan-test-coverage/SKILL.md +0 -116
  52. package/dist/2.0.8/codex/plugin/.codex-plugin/plugin.json +0 -15
  53. package/dist/2.0.8/codex/plugin/package.json +0 -9
  54. package/dist/2.0.8/codex/plugin/skills/add-e2e-tests/SKILL.md +0 -217
  55. package/dist/2.0.8/codex/plugin/skills/add-e2e-tests/agents/claude.yaml +0 -1
  56. package/dist/2.0.8/codex/plugin/skills/add-e2e-tests/references/error-recovery.md +0 -43
  57. package/dist/2.0.8/codex/plugin/skills/add-e2e-tests/references/tracker-template.md +0 -53
  58. package/dist/2.0.8/codex/plugin/skills/fix-flaky-tests/SKILL.md +0 -160
  59. package/dist/2.0.8/codex/plugin/skills/generate-test-cases/SKILL.md +0 -184
  60. package/dist/2.0.8/codex/plugin/skills/plan-test-coverage/SKILL.md +0 -116
  61. package/dist/2.0.8/codex/plugin/skills/review-test-cases/SKILL.md +0 -147
  62. package/dist/2.0.8/codex/plugin/skills/write-test-code/SKILL.md +0 -227
  63. package/dist/2.0.8/codex/plugin/skills/write-test-code/references/api-setup-teardown.md +0 -83
  64. package/dist/2.0.8/release.json +0 -18
  65. package/dist/2.0.9/.agents/plugins/marketplace.json +0 -14
  66. package/dist/2.0.9/claude/plugin/skills/add-e2e-tests/agents/openai.yaml +0 -10
  67. package/dist/2.0.9/claude/plugin/skills/add-e2e-tests/references/authentication.md +0 -8
  68. package/dist/2.0.9/claude/plugin/skills/add-e2e-tests/references/tracker-template.md +0 -53
  69. package/dist/2.0.9/claude/plugin/skills/analyze-test-codebase/SKILL.md +0 -142
  70. package/dist/2.0.9/claude/plugin/skills/analyze-test-codebase/agents/claude.yaml +0 -3
  71. package/dist/2.0.9/claude/plugin/skills/analyze-test-codebase/agents/openai.yaml +0 -4
  72. package/dist/2.0.9/claude/plugin/skills/fix-flaky-tests/agents/claude.yaml +0 -3
  73. package/dist/2.0.9/claude/plugin/skills/fix-flaky-tests/agents/openai.yaml +0 -10
  74. package/dist/2.0.9/claude/plugin/skills/generate-test-cases/agents/claude.yaml +0 -3
  75. package/dist/2.0.9/claude/plugin/skills/generate-test-cases/agents/openai.yaml +0 -10
  76. package/dist/2.0.9/claude/plugin/skills/generate-test-cases/references/scenario-categories.md +0 -36
  77. package/dist/2.0.9/claude/plugin/skills/plan-test-coverage/agents/claude.yaml +0 -3
  78. package/dist/2.0.9/claude/plugin/skills/plan-test-coverage/agents/openai.yaml +0 -10
  79. package/dist/2.0.9/claude/plugin/skills/review-test-cases/agents/claude.yaml +0 -3
  80. package/dist/2.0.9/claude/plugin/skills/review-test-cases/agents/openai.yaml +0 -10
  81. package/dist/2.0.9/claude/plugin/skills/review-test-code/SKILL.md +0 -189
  82. package/dist/2.0.9/claude/plugin/skills/review-test-code/agents/claude.yaml +0 -3
  83. package/dist/2.0.9/claude/plugin/skills/review-test-code/agents/openai.yaml +0 -10
  84. package/dist/2.0.9/claude/plugin/skills/write-test-code/agents/claude.yaml +0 -3
  85. package/dist/2.0.9/claude/plugin/skills/write-test-code/agents/openai.yaml +0 -10
  86. package/dist/2.0.9/claude/plugin/skills/write-test-code/references/anti-patterns.md +0 -88
  87. package/dist/2.0.9/claude/plugin/skills/write-test-code/references/auth-patterns.md +0 -63
  88. package/dist/2.0.9/claude/plugin/skills/write-test-code/references/mapping-tables.md +0 -56
  89. package/dist/2.0.9/claude/plugin/skills/write-test-code/references/network-interception.md +0 -56
  90. package/dist/2.0.9/codex/plugin/skills/add-e2e-tests/agents/openai.yaml +0 -10
  91. package/dist/2.0.9/codex/plugin/skills/add-e2e-tests/references/authentication.md +0 -8
  92. package/dist/2.0.9/codex/plugin/skills/add-e2e-tests/references/error-recovery.md +0 -43
  93. package/dist/2.0.9/codex/plugin/skills/add-e2e-tests/references/scaffolding.md +0 -12
  94. package/dist/2.0.9/codex/plugin/skills/add-e2e-tests/references/tracker-template.md +0 -53
  95. package/dist/2.0.9/codex/plugin/skills/analyze-test-codebase/SKILL.md +0 -142
  96. package/dist/2.0.9/codex/plugin/skills/analyze-test-codebase/agents/claude.yaml +0 -3
  97. package/dist/2.0.9/codex/plugin/skills/analyze-test-codebase/agents/openai.yaml +0 -4
  98. package/dist/2.0.9/codex/plugin/skills/fix-flaky-tests/SKILL.md +0 -160
  99. package/dist/2.0.9/codex/plugin/skills/fix-flaky-tests/agents/claude.yaml +0 -3
  100. package/dist/2.0.9/codex/plugin/skills/fix-flaky-tests/agents/openai.yaml +0 -10
  101. package/dist/2.0.9/codex/plugin/skills/fix-flaky-tests/references/fix-patterns.md +0 -91
  102. package/dist/2.0.9/codex/plugin/skills/generate-test-cases/agents/claude.yaml +0 -3
  103. package/dist/2.0.9/codex/plugin/skills/generate-test-cases/agents/openai.yaml +0 -10
  104. package/dist/2.0.9/codex/plugin/skills/generate-test-cases/references/scenario-categories.md +0 -36
  105. package/dist/2.0.9/codex/plugin/skills/plan-test-coverage/agents/claude.yaml +0 -3
  106. package/dist/2.0.9/codex/plugin/skills/plan-test-coverage/agents/openai.yaml +0 -10
  107. package/dist/2.0.9/codex/plugin/skills/review-test-cases/SKILL.md +0 -147
  108. package/dist/2.0.9/codex/plugin/skills/review-test-cases/agents/claude.yaml +0 -3
  109. package/dist/2.0.9/codex/plugin/skills/review-test-cases/agents/openai.yaml +0 -10
  110. package/dist/2.0.9/codex/plugin/skills/review-test-code/SKILL.md +0 -189
  111. package/dist/2.0.9/codex/plugin/skills/review-test-code/agents/claude.yaml +0 -3
  112. package/dist/2.0.9/codex/plugin/skills/review-test-code/agents/openai.yaml +0 -10
  113. package/dist/2.0.9/codex/plugin/skills/write-test-code/SKILL.md +0 -227
  114. package/dist/2.0.9/codex/plugin/skills/write-test-code/agents/claude.yaml +0 -3
  115. package/dist/2.0.9/codex/plugin/skills/write-test-code/agents/openai.yaml +0 -10
  116. package/dist/2.0.9/codex/plugin/skills/write-test-code/references/anti-patterns.md +0 -88
  117. package/dist/2.0.9/codex/plugin/skills/write-test-code/references/api-setup-teardown.md +0 -83
  118. package/dist/2.0.9/codex/plugin/skills/write-test-code/references/auth-patterns.md +0 -63
  119. package/dist/2.0.9/codex/plugin/skills/write-test-code/references/mapping-tables.md +0 -56
  120. package/dist/2.0.9/codex/plugin/skills/write-test-code/references/network-interception.md +0 -56
  121. package/skills/add-e2e-tests/references/tracker-template.md +0 -53
  122. /package/dist/{2.0.9 → 2.0.10}/claude/plugin/skills/add-e2e-tests/agents/claude.yaml +0 -0
  123. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/add-e2e-tests/references/authentication.md +0 -0
  124. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/analyze-test-codebase/SKILL.md +0 -0
  125. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/analyze-test-codebase/agents/claude.yaml +0 -0
  126. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/analyze-test-codebase/agents/openai.yaml +0 -0
  127. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/fix-flaky-tests/agents/claude.yaml +0 -0
  128. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/fix-flaky-tests/agents/openai.yaml +0 -0
  129. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/generate-test-cases/agents/claude.yaml +0 -0
  130. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/generate-test-cases/agents/openai.yaml +0 -0
  131. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/generate-test-cases/references/scenario-categories.md +0 -0
  132. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/plan-test-coverage/agents/claude.yaml +0 -0
  133. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/plan-test-coverage/agents/openai.yaml +0 -0
  134. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/review-test-cases/agents/claude.yaml +0 -0
  135. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/review-test-cases/agents/openai.yaml +0 -0
  136. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/review-test-code/SKILL.md +0 -0
  137. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/review-test-code/agents/claude.yaml +0 -0
  138. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/review-test-code/agents/openai.yaml +0 -0
  139. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/write-test-code/agents/claude.yaml +0 -0
  140. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/write-test-code/agents/openai.yaml +0 -0
  141. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/write-test-code/references/anti-patterns.md +0 -0
  142. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/write-test-code/references/auth-patterns.md +0 -0
  143. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/write-test-code/references/mapping-tables.md +0 -0
  144. /package/dist/{2.0.8 → 2.0.10}/claude/plugin/skills/write-test-code/references/network-interception.md +0 -0
  145. /package/dist/{2.0.9 → 2.0.10}/codex/plugin/skills/add-e2e-tests/agents/claude.yaml +0 -0
  146. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/add-e2e-tests/references/authentication.md +0 -0
  147. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/analyze-test-codebase/SKILL.md +0 -0
  148. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/analyze-test-codebase/agents/claude.yaml +0 -0
  149. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/analyze-test-codebase/agents/openai.yaml +0 -0
  150. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/fix-flaky-tests/agents/claude.yaml +0 -0
  151. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/fix-flaky-tests/agents/openai.yaml +0 -0
  152. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/generate-test-cases/agents/claude.yaml +0 -0
  153. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/generate-test-cases/agents/openai.yaml +0 -0
  154. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/generate-test-cases/references/scenario-categories.md +0 -0
  155. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/plan-test-coverage/agents/claude.yaml +0 -0
  156. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/plan-test-coverage/agents/openai.yaml +0 -0
  157. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/review-test-cases/agents/claude.yaml +0 -0
  158. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/review-test-cases/agents/openai.yaml +0 -0
  159. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/review-test-code/SKILL.md +0 -0
  160. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/review-test-code/agents/claude.yaml +0 -0
  161. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/review-test-code/agents/openai.yaml +0 -0
  162. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/write-test-code/agents/claude.yaml +0 -0
  163. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/write-test-code/agents/openai.yaml +0 -0
  164. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/write-test-code/references/anti-patterns.md +0 -0
  165. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/write-test-code/references/auth-patterns.md +0 -0
  166. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/write-test-code/references/mapping-tables.md +0 -0
  167. /package/dist/{2.0.8 → 2.0.10}/codex/plugin/skills/write-test-code/references/network-interception.md +0 -0
@@ -1,63 +0,0 @@
1
- # Authentication Setup Patterns
2
-
3
- Choose the right auth strategy based on the project's needs.
4
-
5
- ## Strategy 1: storageState (Recommended for most projects)
6
-
7
- Log in once in global setup, save cookies/localStorage to a JSON file, and reuse across all tests:
8
-
9
- ```typescript
10
- // global-setup.ts
11
- import { chromium, FullConfig } from '@playwright/test';
12
-
13
- async function globalSetup(config: FullConfig) {
14
- const browser = await chromium.launch();
15
- const page = await browser.newPage();
16
- await page.goto('/login');
17
- await page.getByLabel(/email/i).fill(process.env.TEST_USER_EMAIL!);
18
- await page.getByLabel(/password/i).fill(process.env.TEST_USER_PASSWORD!);
19
- await page.getByRole('button', { name: /sign in/i }).click();
20
- await page.waitForURL('/dashboard');
21
- await page.context().storageState({ path: 'tests/.auth/user.json' });
22
- await browser.close();
23
- }
24
- export default globalSetup;
25
- ```
26
-
27
- Reference in config: `use: { storageState: 'tests/.auth/user.json' }`
28
-
29
- ## Strategy 2: Worker-scoped fixture (for parallel workers needing separate accounts)
30
-
31
- ```typescript
32
- export const test = base.extend<{}, { workerStorageState: string }>({
33
- storageState: ({ workerStorageState }, use) => use(workerStorageState),
34
- workerStorageState: [async ({ browser }, use, testInfo) => {
35
- const page = await browser.newPage({ storageState: undefined });
36
- // Login with worker-specific account...
37
- const path = `tests/.auth/worker-${testInfo.parallelIndex}.json`;
38
- await page.context().storageState({ path });
39
- await use(path);
40
- await page.close();
41
- }, { scope: 'worker' }],
42
- });
43
- ```
44
-
45
- ## Strategy 3: Multi-role testing (admin + user in same test)
46
-
47
- ```typescript
48
- test('TC-ADMIN-001: Admin sees user profile', async ({ browser }) => {
49
- const adminContext = await browser.newContext({ storageState: 'tests/.auth/admin.json' });
50
- const userContext = await browser.newContext({ storageState: 'tests/.auth/user.json' });
51
- const adminPage = await adminContext.newPage();
52
- const userPage = await userContext.newPage();
53
- // Interact with both pages...
54
- await adminContext.close();
55
- await userContext.close();
56
- });
57
- ```
58
-
59
- ## Strategy 4: Per-test login
60
-
61
- Only when testing login itself or permission-specific scenarios.
62
-
63
- Never hardcode tokens. Use environment variables or `.env.test`.
@@ -1,56 +0,0 @@
1
- # Mapping Tables
2
-
3
- Standard translations for converting journey specs and exploration results to Playwright API calls.
4
-
5
- ## Scope-to-Locator
6
-
7
- | Journey Scope | Playwright Scoping |
8
- |---------------|-------------------|
9
- | `page` | No scoping needed |
10
- | `header` | `page.locator('header')` |
11
- | `main` | `page.locator('main')` |
12
- | `nav` | `page.locator('nav')` |
13
- | `dialog` | `page.locator('[role="dialog"]')` |
14
-
15
- ## Action-to-Playwright
16
-
17
- | Journey Action | Playwright Code |
18
- |----------------|-----------------|
19
- | `goto` | `await page.goto(url)` |
20
- | `click` | `await locator.click()` |
21
- | `fill` | `await locator.fill(value)` |
22
- | `select` | `await locator.selectOption(value)` |
23
- | `assert` | `await expect(locator).toBeVisible()` |
24
-
25
- ## Assertion Mapping
26
-
27
- | Observed Effect | Playwright Assertion |
28
- |----------------|---------------------|
29
- | `url changed to /cart` | `await expect(page).toHaveURL(/cart/)` |
30
- | `text 'Added' visible` | `await expect(page.getByText(/added/i)).toBeVisible()` |
31
- | `radio 256GB checked` | `await expect(locator).toBeChecked()` |
32
- | `button now enabled` | `await expect(locator).toBeEnabled()` |
33
-
34
- ## Target Kind to Locator
35
-
36
- | Target Kind | Value Pattern | Playwright Locator |
37
- |-------------|--------------|-------------------|
38
- | `role` | `button name~Add to Bag` | `getByRole('button', { name: /add to bag/i })` |
39
- | `role` | `radio name~256GB` | `getByRole('radio', { name: /256gb/i })` |
40
- | `label` | `Email address` | `getByLabel(/email address/i)` |
41
- | `testid` | `checkout-button` | `getByTestId('checkout-button')` |
42
-
43
- ## Low Confidence Handling (<0.7)
44
-
45
- When journey step confidence is low:
46
- 1. Add extra assertions to verify state
47
- 2. Include fallback locators as comments
48
- 3. Consider retry logic for flaky interactions
49
-
50
- ```typescript
51
- // Primary locator
52
- const storageRadio = page.getByRole('radio', { name: /256gb/i });
53
- // Fallback: page.getByLabel(/256gb/i)
54
- await storageRadio.click();
55
- await expect(storageRadio).toBeChecked({ timeout: 5000 });
56
- ```
@@ -1,56 +0,0 @@
1
- # Network Interception and Error Path Testing
2
-
3
- ## Network Interception
4
-
5
- Use `page.route()` to intercept and mock network requests for deterministic error testing.
6
-
7
- **Mock server errors:**
8
- ```typescript
9
- await page.route('**/api/checkout', route =>
10
- route.fulfill({ status: 500, body: JSON.stringify({ error: 'Payment declined' }) })
11
- );
12
- ```
13
-
14
- **Patch real responses (modify, don't replace):**
15
- ```typescript
16
- await page.route('**/api/products', async route => {
17
- const response = await route.fetch();
18
- const json = await response.json();
19
- json.results = json.results.slice(0, 1); // reduce to 1 item
20
- await route.fulfill({ response, json });
21
- });
22
- ```
23
-
24
- **Assert backend was called:**
25
- ```typescript
26
- const [response] = await Promise.all([
27
- page.waitForResponse(resp =>
28
- resp.url().includes('/api/order') && resp.status() === 201
29
- ),
30
- page.getByRole('button', { name: /place order/i }).click(),
31
- ]);
32
- expect(response.status()).toBe(201);
33
- ```
34
-
35
- **Block heavy resources to speed up tests:**
36
- ```typescript
37
- await page.route('**/*.{png,jpg,jpeg,gif,svg}', route => route.abort());
38
- ```
39
-
40
- ## Error Path Testing
41
-
42
- Every feature needs error path tests. Use network interception (see above) to simulate failures. At minimum, every feature test suite should cover:
43
-
44
- - **Server error** — `route.fulfill({ status: 500, ... })` — verify error UI appears
45
- - **Network timeout** — `route.abort('timedout')` — verify retry option or error message
46
- - **Empty state** — `route.fulfill({ status: 200, json: { items: [] } })` — verify empty state UI
47
-
48
- ```typescript
49
- test('TC-DASHBOARD-005: Shows empty state when no data', async ({ page }) => {
50
- await page.route('**/api/items', route =>
51
- route.fulfill({ status: 200, json: { items: [] } })
52
- );
53
- await page.goto('/dashboard');
54
- await expect(page.getByText(/no items/i)).toBeVisible();
55
- });
56
- ```
@@ -1,53 +0,0 @@
1
- # Tracker Template: e2e-tracker.md
2
-
3
- Use this as a starting template when creating the tracker file. Adapt sections as needed.
4
-
5
- ---
6
-
7
- ```markdown
8
- # E2E Test Tracker
9
-
10
- ## Goal
11
-
12
- - **URL:** https://myapp.com/checkout
13
- - **Feature:** Checkout flow with cart, shipping, and payment
14
- - **Slug:** checkout
15
-
16
- ## Progress
17
-
18
- ### Session 1 — 2026-04-01
19
-
20
- - Analyzed codebase: Playwright 1.42, TypeScript, existing auth fixture in `tests/fixtures/auth.ts`
21
- - Browsed checkout flow: 4-step wizard (cart review, shipping, payment, confirmation)
22
- - Discovered 3 form validation states per step
23
- - Generated test spec: `test-cases/checkout.md` with TC-CHECKOUT-001 through TC-CHECKOUT-012
24
- - Review gate passed with warnings (TC-CHECKOUT-008 needs clarification on coupon edge case)
25
-
26
- ### Session 2 — 2026-04-02
27
-
28
- - Wrote `tests/checkout.spec.ts` covering TC-CHECKOUT-001 through TC-CHECKOUT-012
29
- - Code review gate passed
30
- - Ran tests: 10/12 passing, 2 failing (TC-CHECKOUT-006: selector stale, TC-CHECKOUT-011: timeout)
31
- - Fixed TC-CHECKOUT-006: updated selector from `.price` to `[data-testid="cart-total"]`
32
- - Fixed TC-CHECKOUT-011: added `waitForResponse` before assertion
33
-
34
- ## Remaining
35
-
36
- - Re-run full suite to confirm fixes
37
- - Verify TC-ID coverage: all 12 specs should map to test code
38
-
39
- ## Next Steps
40
-
41
- - Run `npx playwright test tests/checkout.spec.ts --reporter=list` and record output
42
- - If all green, mark complete
43
- - If failures remain, diagnose with `fix-flaky-tests` skill
44
-
45
- <!-- E2E_COMPLETE -->
46
- ```
47
-
48
- ---
49
-
50
- **Terminal markers** (write as the last line of the tracker when appropriate):
51
-
52
- - `<!-- E2E_COMPLETE -->` — all tests pass, all TC-IDs covered, work is done
53
- - `<!-- E2E_BLOCKED: reason -->` — unrecoverable blocker prevents further progress (e.g., `<!-- E2E_BLOCKED: login requires 2FA token we cannot automate -->`)