Test coverage ownership

Copy Markdown View Source

GPUI behavior is divided by what each layer can truthfully prove.

BehaviorRenderer-independent ExUnitDeterministic native ExUnitDesktop E2E
Controlled application state and rerendersPrimaryExercises real payload rerendersSmoke only
Switch and radio activationEvent policyPointer, focus, keyboard, disabled/loadingReal window rendering
TabsControlled event handlingStable bounds, focus, keyboard, disabledReal window rendering
AccordionControlled expanded IDs and validationStable bounds, pointer toggles, controlled multiple expansion, disabled-group suppressionReal window rendering
Tree and data table navigationSource/state policyFocus, keyboard, disabled skipping, emitted IDsVirtualized real window and pointer delivery
Uniform and variable collectionsRange/source policySelection, ranges, scrolling, transitionsCompositor range and wheel delivery
Dialog and overlaysControlled open/close policyStable trigger bounds, keyboard open requests, native gpui_component::Root ownership, and Escape closureReal window focus containment, content activation, and restoration
Rich textRuns, ranges, links, controlled eventsShaping and link-navigation Rust unit coverage; stable public target pendingReal shaped rendering
Persistent editable textBuffer, revisions, transactionsControlled input typing, reconciliation, submit events, geometry, and projection mechanics through real InputStateNative IME, content types, OS selection and clipboard
Clipboard and external transferBounded payload and event policyBoundary/routing unit coverageOS clipboard and external transfer facts
Remote displayProtocol, synchronization and reconnect policyNot applicableReal remote-native window smoke
Pixel appearance and contrastNot applicableNot a behavioral assertionSynchronized visual capture

When moving an assertion between layers, preserve the behavior in its owning layer. Do not retain coordinate-heavy desktop assertions for component mechanics already covered deterministically. Conversely, deterministic tests must not claim OS clipboard, IME, compositor, accessibility-adapter, or external-drop behavior.