Background
#1245 landed Vitest unit-test infrastructure with the following per-file gate in `clients/web/vite.config.ts`:
```
lines: 90
statements: 85
functions: 80
branches: 50
```
The branch threshold is intentionally relaxed because Mantine portal and `useMediaQuery` branches are not exercisable under happy-dom. In practice the global branch coverage is already ~95%, so 50% per file gives a lot of headroom — substantive business-logic branches could go untested without CI noticing.
Surfaced in the @claude review on PR #1269: #1269 (comment) (item #6).
Scope
Acceptance criteria
Out of scope
Related
Background
#1245 landed Vitest unit-test infrastructure with the following per-file gate in `clients/web/vite.config.ts`:
```
lines: 90
statements: 85
functions: 80
branches: 50
```
The branch threshold is intentionally relaxed because Mantine portal and `useMediaQuery` branches are not exercisable under happy-dom. In practice the global branch coverage is already ~95%, so 50% per file gives a lot of headroom — substantive business-logic branches could go untested without CI noticing.
Surfaced in the @claude review on PR #1269: #1269 (comment) (item #6).
Scope
Acceptance criteria
Out of scope
Related