@@ -43,28 +43,89 @@ This PRD defines the executable plan for Task Master to orchestrate the testing
4343
4444## Phases
4545
46- ### Phase 1: Foundation Setup
46+ ### Phase 1: Infrastructure
4747status: done
48+ priority: P0
49+ est_hours: 8.5
4850owner: "Testing/Platform Team"
4951deliverables:
5052 - "vitest.config.ts"
5153 - "test/setup.ts"
5254 - "test/utils/"
55+ - "simple-git-hooks + lint-staged configured"
56+ - "Maven config for Java submodules"
5357success_criteria:
5458 - "Test runner configured with v8 coverage provider"
5559 - "Global setup file executes without errors"
60+ - "Pre-commit hooks run ESLint and related tests"
5661tasks:
57- - id: TFN -001
62+ - id: INF -001
5863 title: "Verify Vitest configuration and coverage thresholds"
5964 status: done
6065 type: verify
66+ estimate_h: 1.0
67+ dependencies: [ ]
6168 paths:
6269 - "vitest.config.ts"
6370 acceptance_criteria:
6471 - "Coverage thresholds present and >= 100 for statements/branches/functions/lines"
72+ - id: INF-002
73+ title: "Confirm lint-staged and simple-git-hooks pre-commit"
74+ status: done
75+ type: verify
76+ estimate_h: 0.5
77+ dependencies: [ ]
78+ paths:
79+ - "package.json"
80+ acceptance_criteria:
81+ - "pre-commit runs eslint --fix and vitest related --run"
82+ - id: INF-003
83+ title: "Validate backend/e2e/front configs exist"
84+ status: done
85+ type: verify
86+ estimate_h: 0.5
87+ dependencies: [ ]
88+ paths:
89+ - "vitest.backend.config.ts"
90+ - "vitest.frontend.config.ts"
91+ - "vitest.e2e.config.ts"
92+ acceptance_criteria:
93+ - "All configs present and parseable"
94+ - id: INF-004
95+ title: "Maven configuration sanity check"
96+ status: done
97+ type: verify
98+ estimate_h: 1.0
99+ dependencies: [ ]
100+ paths:
101+ - "pom.xml"
102+ acceptance_criteria:
103+ - "Surefire/Failsafe/Jacoco plugins configured"
104+ - id: INF-005
105+ title: "Create test-reports and coverage placeholders"
106+ status: done
107+ type: command
108+ estimate_h: 0.5
109+ dependencies: [ ]
110+ commands:
111+ - "mkdir -p test-reports coverage"
112+ acceptance_criteria:
113+ - "Directories exist with correct permissions"
114+ - id: INF-006
115+ title: "Document infra in README_TESTING"
116+ status: done
117+ type: verify
118+ estimate_h: 5.0
119+ dependencies: [ ]
120+ paths:
121+ - "README_TESTING.md"
122+ acceptance_criteria:
123+ - "README_TESTING.md has infra instructions"
65124
66- ### Phase 2: Unit Tests Completion
125+ ### Phase 2: Unit Tests
67126status: in_progress
127+ priority: P0
128+ est_hours: 14
68129owner: "Testing/Platform Team"
69130deliverables:
70131 - "coverage/"
@@ -77,21 +138,21 @@ tasks:
77138 title: "Run backend unit tests with coverage"
78139 status: todo
79140 type: command
141+ estimate_h: 3.5
80142 assignee: "CI"
81143 commands:
82- - "pnpm test: backend -- --coverage --reporter=junit --reporter=verbose "
144+ - "pnpm test: backend -- --coverage"
83145 artifacts:
84146 - "coverage/"
85147 - "test-reports/"
86148 acceptance_criteria:
87149 - "Command exits 0"
88- - "Coverage JSON file exists at coverage/coverage-final.json"
89- - "JUnit file exists at test-reports/test_report.xml"
90-
150+ - "coverage/coverage-final.json exists"
91151 - id: UTS-002
92152 title: "Ensure 100% coverage across backend services/controllers"
93153 status: todo
94154 type: verify
155+ estimate_h: 3.5
95156 dependencies:
96157 - UTS-001
97158 verifier:
@@ -104,9 +165,33 @@ tasks:
104165 lines: 100
105166 acceptance_criteria:
106167 - "All thresholds >= 100"
168+ - id: UTS-003
169+ title: "Run frontend unit tests"
170+ status: todo
171+ type: command
172+ estimate_h: 3.0
173+ dependencies:
174+ - UTS-001
175+ commands:
176+ - "pnpm test: frontend "
177+ acceptance_criteria:
178+ - "Command exits 0"
179+ - id: UTS-004
180+ title: "Run e2e unit tests subset"
181+ status: todo
182+ type: command
183+ estimate_h: 4.0
184+ dependencies:
185+ - UTS-003
186+ commands:
187+ - "pnpm test: e2e "
188+ acceptance_criteria:
189+ - "Command exits 0"
107190
108191### Phase 3: Integration Tests
109192status: todo
193+ priority: P0
194+ est_hours: 6
110195owner: "Testing/Platform Team"
111196deliverables:
112197 - "test/integration/ results"
@@ -118,15 +203,21 @@ tasks:
118203 title: "Run integration tests"
119204 status: todo
120205 type: command
206+ estimate_h: 6.0
207+ dependencies:
208+ - UTS-004
121209 commands:
122- - "pnpm test: integration -- --reporter=junit"
210+ - "pnpm test:e2e: coverage && pnpm test:e2e: ui || true"
211+ - "pnpm test: e2e "
123212 artifacts:
124213 - "test-reports/"
125214 acceptance_criteria:
126215 - "Command exits 0"
127216
128- ### Phase 4: Performance Benchmarks
217+ ### Phase 4: Performance/Edge
129218status: todo
219+ priority: P0
220+ est_hours: 8
130221owner: "Testing/Platform Team"
131222deliverables:
132223 - "test/performance/benchmarks results"
@@ -137,13 +228,73 @@ tasks:
137228 title: "Execute performance benchmarks"
138229 status: todo
139230 type: command
231+ estimate_h: 4.0
232+ dependencies:
233+ - INT-001
140234 commands:
141235 - "pnpm test: performance "
142236 acceptance_criteria:
143237 - "Command exits 0"
238+ - id: PERF-002
239+ title: "Profile memory and hot paths"
240+ status: todo
241+ type: command
242+ estimate_h: 4.0
243+ dependencies:
244+ - PERF-001
245+ commands:
246+ - "node --inspect-brk -e 'console.log(\" profile\" )' || true"
247+ acceptance_criteria:
248+ - "Profile artifacts captured"
249+
250+ ### Phase 5: Automation
251+ status: todo
252+ priority: P0
253+ est_hours: 8
254+ owner: "Testing/Platform Team"
255+ deliverables:
256+ - "scripts/* automation helpers"
257+ success_criteria:
258+ - "One-command orchestration for local runs"
259+ tasks:
260+ - id: AUT-001
261+ title: "Run test orchestrator"
262+ status: todo
263+ type: command
264+ estimate_h: 4.0
265+ dependencies:
266+ - PERF-002
267+ commands:
268+ - "pnpm test: orchestrate "
269+ acceptance_criteria:
270+ - "Command exits 0"
271+ - id: AUT-002
272+ title: "Generate/update tests from templates"
273+ status: todo
274+ type: command
275+ estimate_h: 2.0
276+ dependencies:
277+ - AUT-001
278+ commands:
279+ - "pnpm test: generate "
280+ acceptance_criteria:
281+ - "New or updated tests generated"
282+ - id: AUT-003
283+ title: "Produce consolidated local test summary"
284+ status: todo
285+ type: command
286+ estimate_h: 2.0
287+ dependencies:
288+ - AUT-002
289+ commands:
290+ - "node -e \" console.log('summary')\" > test-reports/test_summary.txt"
291+ acceptance_criteria:
292+ - "test-reports/test_summary.txt exists"
144293
145- ### Phase 5 : CI/CD Pipeline
294+ ### Phase 6 : CI/CD
146295status: todo
296+ priority: P0
297+ est_hours: 6
147298owner: "DevOps Team"
148299deliverables:
149300 - ".github/workflows/ci.yml"
@@ -155,6 +306,9 @@ tasks:
155306 title: "Add GitHub Actions workflow for tests and coverage upload"
156307 status: todo
157308 type: file_create
309+ estimate_h: 4.0
310+ dependencies:
311+ - AUT-003
158312 path: ".github/workflows/ci.yml"
159313 template: |
160314 name: CI
@@ -192,17 +346,66 @@ tasks:
192346 title: "Add coverage and test badges to README"
193347 status: todo
194348 type: file_update
349+ estimate_h: 2.0
350+ dependencies:
351+ - CI-001
195352 paths:
196353 - "README.md"
197354 acceptance_criteria:
198355 - "Badges rendered at top of README"
199356
357+ ### Phase 7: Documentation
358+ status: todo
359+ priority: P1
360+ est_hours: 9
361+ owner: "Testing/Platform Team"
362+ deliverables:
363+ - "docs/TASK_MASTER_PRD.md"
364+ - "docs/TESTING_PRD.md"
365+ - "README_TESTING.md updates"
366+ success_criteria:
367+ - "Docs reflect current automation and CI"
368+ tasks:
369+ - id: DOC-001
370+ title: "Finalize Task Master PRD"
371+ status: todo
372+ type: verify
373+ estimate_h: 3.0
374+ dependencies:
375+ - CI-002
376+ paths:
377+ - "docs/TASK_MASTER_PRD.md"
378+ acceptance_criteria:
379+ - "PRD contains 7 phases and 21 tasks"
380+ - id: DOC-002
381+ title: "Update Testing PRD cross-references"
382+ status: todo
383+ type: verify
384+ estimate_h: 3.0
385+ dependencies:
386+ - DOC-001
387+ paths:
388+ - "docs/TESTING_PRD.md"
389+ acceptance_criteria:
390+ - "Links and references updated"
391+ - id: DOC-003
392+ title: "Polish README_TESTING with runbooks"
393+ status: todo
394+ type: verify
395+ estimate_h: 3.0
396+ dependencies:
397+ - DOC-002
398+ paths:
399+ - "README_TESTING.md"
400+ acceptance_criteria:
401+ - "Runbooks and troubleshooting included"
402+
200403## Risks and Blockers
201404- Typeahead system: case sensitivity and debouncing issues
202405- Web crawler system: content extraction and filtering problems
203406
204407## Start Here (for Task Master)
205- 1 . Queue tasks in this order respecting dependencies: UTS-001 → UTS-002 → INT-001 → PERF-001 → CI-001 → CI-002.
408+ 1 . Queue tasks in this order respecting dependencies: INF-001..INF-006 → UTS-001 → UTS-002 → UTS-003 → UTS-004 → INT-001 → PERF-001 → PERF-002 → AUT-001 → AUT-002 → AUT-003 → CI-001 → CI-002 → DOC-001 → DOC-002 → DOC-003 .
2064092 . Execute command-type tasks in a non-interactive shell from the repo root.
2074103 . Persist artifacts to paths listed in each task.
2084114 . Mark tasks as done when acceptance criteria are satisfied.
0 commit comments