👷 Gate CI at 100% coverage

test:ci now runs c8 with --all --include "src/**/*.ts" --100, so the
build job fails when any runtime file under src/ is untested. --all is
what makes the gate non-vacuous: without it c8 counts only the files the
suite happened to load, and a new untested module stays invisible.

Add src/index.test.ts to load the public barrel, which was previously
never imported at runtime and so read as 0% under --all. matcher-shared.ts
is types-only (an empty runtime image) and carries a file-level c8 ignore
with the reason.

Why 100% and the rejected alternatives: development/ci.md § Coverage
threshold.
This commit is contained in:
tmu committed 2026-09-23 21:12:24 +00:00
1 parent 76327a8c47
commit 52ce655d8e
9 files changed
+75 -7

No files matched your search

+3
View File
@@ -77,6 +77,9 @@ jobs:
- run: npm ci
- run: npm run build
- run: npm run check
# Fails the build below 100% coverage on `src/` (`c8 --all --100`);
# the same run produces the report published below. See
# development/ci.md § Coverage threshold.
- run: npm run test:ci
# Publish this tag's coverage to the self-hosted pages server,
# served read-only at