feat(03-01): stand up web/ npm workspace with Wave-0 hand-rolled test runner (D-01, D-02, D-11, D-14)

- web/ workspace: TS + Vite shell (maplibre-gl 6.15.0, vite 8.3.5, TS 5.9.3; no UI framework, no Telegram SDK script tag)
- tsconfig mirrors bot/ strictness byte-for-byte except the three authorized keys (DOM lib, vite/client types, resolveJsonModule)
- test/runner.mjs + harness.mjs copied verbatim from bot/test/ (body-identical past header)
- root package.json: web workspace + web:* delegate scripts
- web/src/main.ts entry module created (tsc include:['src'] needs ≥1 input; 03-02/03-03 mount here)
This commit is contained in:
araharah-executor
2026-10-22 23:24:41 +08:00
parent af691ae40e
commit 9376cabca2
8 changed files with 140 additions and 2 deletions
+10
View File
@@ -0,0 +1,10 @@
/*
* harness.mjs — zero-dependency test registry (D-12).
* Suites import { test } and register async cases; runner.mjs drains the registry.
* Same hand-rolled shape as theme/scripts/audit.test.mjs (Phase 1 precedent).
*/
const tests = [];
export function test(name, fn) {
tests.push({ name, fn });
}
export const registry = tests;