[AZ-456] Test infrastructure: Vitest + MSW + Playwright + scripts

Scaffolds the Blackbox test project per AZ-456 / environment.md across
the three profiles:

- fast  : Vitest 3.x + jsdom + MSW 2.x + RTL/jest-dom; tests/setup.ts
          boots the MSW Node server with onUnhandledRequest:'error',
          afterEach resets handlers, clears bearer + navigate-to-login
          spy. Default handlers ship for every suite service plus OWM
          and tile stand-ins. Fixtures mirror seed_* in test-data.md.
- e2e   : Playwright ^1.49 with chromium + firefox projects against the
          suite docker-compose stack; owm-stub + tile-stub Bun servers,
          playwright-runner image, seeds.sql for the test-db.
- static: scripts/run-tests.sh extended — tsc --noEmit (test config),
          vite build, ripgrep checks (with grep -r fallback), CSV
          report at test-output/static-report.csv per AC-7 columns.

Smoke tests cover AC-3, AC-4 (fast, 5 tests, PASS) and AC-1, AC-2,
AC-5, AC-8 (e2e, gated by Risk 4 docker availability). Static profile
(13 checks) PASS — STC-SEC1 (no literal OWM key) lifted from
QUARANTINE per AZ-447 with a narrowed pattern.

Files:
  +24 tests/**, +10 e2e/**, +vitest.config.ts, +tsconfig.test.json
  ~package.json (test scripts + devDeps for vitest, @testing-library/*,
   msw, @playwright/test, jsdom, @types/node, @vitest/coverage-v8)
  ~scripts/run-tests.sh, scripts/run-performance-tests.sh — switched
   RESULTS_DIR to test-output/, compose path to project-local
  ~.gitignore — added /test-output/

Verification:
  bun run test:fast        → 11 / 11 PASS
  ./scripts/run-tests.sh   → static 13/13 + fast 11/11 PASS, exit 0

Tracker: AZ-456 → In Testing.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Oleksandr Bezdieniezhnykh
2026-05-11 02:57:04 +03:00
parent e5d9276b19
commit 38eb87fb08
45 changed files with 2377 additions and 157 deletions
+8 -3
View File
@@ -6,9 +6,9 @@ step: 6
name: Implement Tests
status: in_progress
sub_step:
phase: 6
name: implement-tasks-sequentially
detail: "batch 1 = AZ-456 (5 pts); tracker In Progress; ~30 files to write"
phase: 14
name: batch-loop
detail: "batch 1 complete (AZ-456); 26 test tasks remain (AZ-457..AZ-482)"
retry_count: 0
cycle: 1
tracker: jira
@@ -30,3 +30,8 @@ step_3_ac_gap_handling: rollback-to-6c (option A)
component to `_docs/02_document/module-layout.md` so the implement
skill's Step 4 (file ownership) can resolve test-task ownership
for AZ-456..AZ-482 (epic AZ-455).
- 2026-05-11 batch 1 (AZ-456) shipped: vitest+MSW (fast) + Playwright
e2e harness + stubs + scripts. 11 fast tests pass; 13 static checks
pass. AZ-456 → In Testing; report at
`_docs/03_implementation/batch_01_report.md`. Next batch picks up
AZ-457..AZ-482 (26 tasks remaining).