Finding
scripts/lib/ contains 18 JavaScript/ESM modules that have no test files.
The top-level scripts/*.js files all have corresponding *.test.js coverage,
but the shared library layer is completely untested:
| File |
Purpose |
scripts/lib/sbom/parser.js |
Parses SBOM JSON for package extraction |
scripts/lib/sbom/api.js |
SBOM API calls |
scripts/lib/sbom/bst.js |
BST-specific SBOM logic |
scripts/lib/sbom/slim.js |
SBOM slimming/filtering |
scripts/lib/sbom/writer.js |
SBOM output writing |
scripts/lib/sbom-versions.js |
Version comparison/extraction |
scripts/lib/markdown-generator.mjs |
Generates markdown reports |
scripts/lib/card-feed-parser.mjs |
Parses card feed data |
scripts/lib/card-template.mjs |
Card template rendering |
scripts/lib/contributor-tracker.mjs |
Tracks contributor activity |
scripts/lib/label-mapping.mjs |
Maps GitHub labels |
scripts/lib/request-queue.js |
Rate-limited request queuing |
scripts/lib/build-metrics.mjs |
Build metrics collection |
scripts/lib/graphql-queries.mjs |
GraphQL query strings |
scripts/lib/github-sponsors.mjs |
GitHub Sponsors data |
scripts/lib/monitored-repos.mjs |
Repo list configuration |
scripts/lib/tap-promotions.mjs |
TAP promotion logic |
scripts/lib/update-artwork-detection.mjs |
Artwork change detection |
The SBOM parser and markdown generator are the highest-impact gaps — they
process production data and bugs in them would silently corrupt generated output.
Recommendation
- Start with
scripts/lib/sbom/parser.js — add
scripts/lib/sbom/parser.test.js with fixture JSON inputs
- Add
scripts/lib/markdown-generator.test.mjs for the report generator
- Extend the CI
pages.yml or add a unit-tests.yml workflow to run
node --test or Jest across scripts/lib/**/*.test.*
Priority
- Impact: medium — SBOM and markdown output errors are silent
- Effort: medium — needs test fixtures for SBOM JSON format
Filed by quality agent (hold-gated mode)
Finding
scripts/lib/contains 18 JavaScript/ESM modules that have no test files.The top-level
scripts/*.jsfiles all have corresponding*.test.jscoverage,but the shared library layer is completely untested:
scripts/lib/sbom/parser.jsscripts/lib/sbom/api.jsscripts/lib/sbom/bst.jsscripts/lib/sbom/slim.jsscripts/lib/sbom/writer.jsscripts/lib/sbom-versions.jsscripts/lib/markdown-generator.mjsscripts/lib/card-feed-parser.mjsscripts/lib/card-template.mjsscripts/lib/contributor-tracker.mjsscripts/lib/label-mapping.mjsscripts/lib/request-queue.jsscripts/lib/build-metrics.mjsscripts/lib/graphql-queries.mjsscripts/lib/github-sponsors.mjsscripts/lib/monitored-repos.mjsscripts/lib/tap-promotions.mjsscripts/lib/update-artwork-detection.mjsThe SBOM parser and markdown generator are the highest-impact gaps — they
process production data and bugs in them would silently corrupt generated output.
Recommendation
scripts/lib/sbom/parser.js— addscripts/lib/sbom/parser.test.jswith fixture JSON inputsscripts/lib/markdown-generator.test.mjsfor the report generatorpages.ymlor add aunit-tests.ymlworkflow to runnode --testor Jest acrossscripts/lib/**/*.test.*Priority
Filed by quality agent (hold-gated mode)