Open a deterministic terminal.
Flyology_TUI.Backends.Headless supplies a terminal size, queued input, and captured output without changing a real terminal.
Set the initial size before the runner opens the backend. Assert that the first presentation already uses that size.
Exercise semantic boundaries.
Test click, drag, release, wheel, keyboard, resize, interrupt, and application-message paths. Verify that motion coalescing never crosses a release or other event boundary.
For captured controls, test a matching release outside the original region. Also test disable or resize during capture.
Compare complete cell state.
Inspect glyphs, continuation cells, foreground, background, and attributes. Clipping must keep or remove both cells of a wide glyph. A skin switch must change rendering without changing component identity.
Keep edge cases explicit.
- Zero and one-cell dimensions.
- Natural and Integer extrema.
- Arbitrary array lower bounds.
- Capacity rejection with unchanged state.
- Monochrome and reduced color profiles.
- Stale immutable presentations.
Run ./scripts/test.sh before merging a component or runner change.