Context
Stryker mutation testing is configured and currently passes the break threshold, but src/lib/github.ts has important surviving mutants:
github.ts mutation score: 61.89%
github.ts covered mutation score: 72.05%
Survivors include pagination boundaries, response validation, job filtering, runner group matching, GHCR tag parsing, and URL/header construction.
Scope
- Review surviving and no-coverage mutants for
src/lib/github.ts.
- Add tests for GitHub API pagination edge cases, malformed payload handling, non-ok responses, label fallback behavior, runner-group filtering, and GHCR image/tag parsing.
- Keep tests fully mocked at the fetch/API boundary.
- Avoid requiring real GitHub credentials.
Acceptance Criteria
pnpm test -- test/github.test.ts passes.
pnpm mutation-test shows a materially improved github.ts score.
- Pagination and malformed-response behavior have explicit assertions.
- Remaining survivors are documented as low-value formatting/string mutants or intentionally deferred.
Context
Stryker mutation testing is configured and currently passes the break threshold, but
src/lib/github.tshas important surviving mutants:Survivors include pagination boundaries, response validation, job filtering, runner group matching, GHCR tag parsing, and URL/header construction.
Scope
src/lib/github.ts.Acceptance Criteria
pnpm test -- test/github.test.tspasses.pnpm mutation-testshows a materially improvedgithub.tsscore.