Test Coverage + XSS Sanitization (WI-4)
Context
Comprehensive test coverage for the v2 fact engine pipeline plus XSS sanitization for JSONB fact values rendered in the UI.
Challenges
Challenge 3.1: Worker Handler Tests
Requirement: All 6 worker handlers have test coverage. Acceptance Criteria:
-
apps/worker-ingest/src/handlers/__tests__/ingest-news.test.ts -
apps/worker-ingest/src/handlers/__tests__/cluster-stories.test.ts -
apps/worker-ingest/src/handlers/__tests__/resolve-image.test.ts -
apps/worker-facts/src/handlers/__tests__/extract-facts.test.ts -
apps/worker-facts/src/handlers/__tests__/generate-evergreen.test.ts -
apps/worker-validate/src/handlers/__tests__/validate-fact.test.tsEvaluation: PASS
Challenge 3.2: AI Function Tests
Requirement: AI extraction/validation/scoring functions tested. Acceptance Criteria:
-
packages/ai/src/__tests__/fact-engine.test.tsexists - Tests cover extraction, validation, scoring, evergreen generation Evaluation: PASS
Challenge 3.3: DB Query Tests
Requirement: Fact engine query functions tested. Acceptance Criteria:
-
packages/db/src/drizzle/__tests__/fact-engine-queries.test.tsexists Evaluation: PASS
Challenge 3.4: Sanitization Utility
Requirement: XSS sanitization for fact JSONB values. Acceptance Criteria:
-
packages/shared/src/sanitize.tsexists withsanitizeFactValue() - Strips HTML tags, event handlers, dangerous URI schemes
- Recursive deep-sanitize for nested objects/arrays
-
packages/shared/src/__tests__/sanitize.test.tswith XSS vector tests Evaluation: PASS
Challenge 3.5: Spaced Repetition Module Tests
Requirement: SM-2 variant algorithm tested. Acceptance Criteria:
-
packages/shared/src/__tests__/spaced-repetition.test.tsexists Evaluation: PASS
Evaluation Summary
| Challenge | Result |
|---|---|
| 3.1 Worker Handler Tests | PASS |
| 3.2 AI Function Tests | PASS |
| 3.3 DB Query Tests | PASS |
| 3.4 Sanitization Utility | PASS |
| 3.5 Spaced Rep Tests | PASS |
Score: 5/5 PASS