# Testing

Daily verification is intentionally scoped to the active Word Online parity goal.

- `npm test` runs `npm run test:current`.
- `npm run test:current` freshness-builds the package, runs `node scripts/run-tests.mjs`, and finishes with `npm run test:typecheck` so semantic TypeScript errors cannot be hidden by transpile-only output.
- `npm run test:typecheck` runs the package-wide `tsc --noEmit` contract directly; a full dist rebuild runs the same check before deleting or replacing the current dist.
- `node scripts/run-tests.mjs` reads `tests/current-suite.json`.
- `npm run test:all` or `node scripts/run-tests.mjs --all` runs the active top-level tests plus the explicit release checks wired in the runner.

The current suite keeps unfinished or still-moving coverage in the default path: Word Online alignment checklist gates, document fidelity, async font loading, View gridline/ruler behavior, selection retention, compact context menus, classic blue ribbon layout, responsive ribbon behavior, and the latest architecture cleanup gates.

Historical completed-evidence tests stay out of `tests/current-suite.json` once their slice is represented by the checklist and current source gates. They may remain as release-sweep evidence for `npm run test:all`; daily work only executes the focused current manifest.

Versioned helper scripts may remain for the release sweep, but every helper referenced by `tests/current-suite.json` and its current dependency chain must exist. Unreferenced historical helpers never expand the daily suite.

Generated Word Online comparison reports follow the same separation: current gates consume only their declared evidence, while historical release evidence can remain available without becoming a daily dependency.
