How CapacityLens is tested
See what the automated checks cover before you rely on CapacityLens. It is alpha software with a single maintainer, so those checks carry most of the safety net. The development guide has the commands, coverage floors and CI jobs.
Sizes were counted once on 2026-10-01 and are not enforced, so they will drift.
| Suite | Tool | Covers | Size (approximate) |
|---|---|---|---|
| App and shared unit tests | Vitest, Testing Library | The shared scheduling rules, the client store, and React components | About 310 test files |
| Server tests | Vitest | The API, authorisation, the SQLite database, migrations from released database fixtures, backups and sign-in | About 180 test files |
| End-to-end tests | Playwright | The demo, database-backed and password sign-in flows in a real browser | About 70 spec files |
| Accessibility checks | axe, inside the end-to-end tests | Automated accessibility rules on key screens | 7 spec files |
| Mutation testing | Stryker | Whether the unit tests fail when the scheduling logic is changed | Run on demand, not on every change |
Limits of each suite
- Each released database fixture was generated by that release's build; the server tests migrate a copy to the current schema. The oldest is from 0.20.0-alpha.1.
- End-to-end tests run Chromium by default. WebKit and Firefox runs are opt-in.
- Axe finds common problems such as missing names and low contrast. It does not replace testing with assistive technology.
- Mutation testing covers only the pure scheduling and helper code, not the server or React screens.
The repository README shows CI status, code coverage, CodeQL, OpenSSF Scorecard and OpenSSF Baseline badges. The OpenSSF Baseline assessment has the evidence behind the Baseline badge.