- 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)
11 lines
339 B
JavaScript
11 lines
339 B
JavaScript
/*
|
|
* 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;
|