Context
Stryker mutation testing is configured and currently passes the permissive break threshold, but src/lib/doctor.ts is the weakest configured target:
doctor.ts mutation score: 54.09%
doctor.ts covered mutation score: 59.12%
That leaves too many operator-facing health-check branches alive after mutation.
Scope
- Review surviving and no-coverage mutants for
src/lib/doctor.ts.
- Add focused tests for missing environment, missing host fields, GitHub verification failure surfaces, Lume status artifact handling, and user-facing report details where mutants survived.
- Prefer behavioral assertions over broad snapshots.
- Keep tests local and fully mocked; do not require live Synology or GitHub credentials.
Acceptance Criteria
pnpm test -- test/doctor.test.ts passes.
pnpm mutation-test shows a materially improved doctor.ts score.
- Surviving mutants that remain are documented as low-value formatting/string mutants or intentionally deferred.
- No live external services are required by the new tests.
Context
Stryker mutation testing is configured and currently passes the permissive break threshold, but
src/lib/doctor.tsis the weakest configured target:That leaves too many operator-facing health-check branches alive after mutation.
Scope
src/lib/doctor.ts.Acceptance Criteria
pnpm test -- test/doctor.test.tspasses.pnpm mutation-testshows a materially improveddoctor.tsscore.