test(desktop): enumerate failure and edge states for high-traffic surfaces
- Dominant language
- TypeScript
- Stars
- 5.4k
- Forks
- 502
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 716
Description
## Problem
Storybook is where a surface's states become simultaneously visible, and most of ours are not in it: **27** files with stories against **189** product `.tsx`.
Depth is not the problem — 195 story variants across those 27 files, with `settings-pages` at 42, `module-hubs` 29, `app-shell` 24, `session-workbar` 23. The gap is breadth.
Three findings already report the same shape from different angles:
- #3446 F5: "of the 28, **0** render on the reference screen and only 2 render across 7 stories probed … A distribution assertion on one or two reference screens would not catch this and will not defend it afterwards."
- #3893 names 10 surfaces with no a11y audit coverage — chat rendering, tool results, error states, diff viewer, terminal, browser panel, task panel, daily review, agent graph, model picker.
- #3834: a CSS comment cites `e2e/sidebar-geometry.spec.ts` as the guarantee for the sidenav's definite height; that file does not exist.
The states that never appear in normal use are the ones that never get tuned: empty, failed, loading, offline, unauthorised, very long text, very many rows.
## Desired outcome
Not a repo-wide sweep. Take the surfaces #3893 already names and add stories for each one's failure and edge states, so both this gate and the a11y audit have something to run against. One surface per PR.
Open question for the thread: whether "a new surface enumerates its failure states" joins the review baseline, or stays a per-surface judgement. Better decided after the first few land.
*AI use: Claude Code assisted with source and issue investigation; the analysis and conclusions are my own.*
Contributor guide
Assessment
This issue has not been assessed yet.