Why
HonkHonk currently relies on manual “launch the app and click” checks for important Iced interactions. That leaves deterministic update/view regressions uncovered in ordinary cargo test, including the sort flow from #211 and staged settings search from #213.
Scope
Add a compositor-free Layer A GUI interaction harness using the official MIT-licensed iced_test 0.14 crate as a dev dependency, matched to Iced 0.14.
- Construct real
HonkHonk state and exercise the real view() and update() through iced_test::Simulator.
- Provide focused helpers for selector-based
click, tap_key, typewrite, and find operations.
- Cover the sort chip flow: open options, select Name, dismiss, and verify the per-view persisted config preference.
- Cover staged settings search: filter categories, select a result, verify matching-row highlight behavior, clear the query, and verify the public restore behavior.
- Keep the tests compositor-free and runnable through ordinary
cargo test.
- Do not add pixel snapshots unless a demonstrably stable layout requires one.
- Keep
cargo fmt --check, cargo clippy -- -D warnings, cargo test, and cargo deny check green.
Limits
This layer validates Iced update/view logic and widget-tree behavior only. It does not exercise winit, wgpu, the Wayland compositor, ksni tray integration, desktop portals, or PipeWire audio.
New dependency justification
iced_test is the official test crate shipped alongside Iced and supplies Simulator/widget selectors that would be costly and brittle to recreate. Version 0.14.0 matches the application’s Iced 0.14 line. License: MIT. cargo deny check must remain green.
Why
HonkHonk currently relies on manual “launch the app and click” checks for important Iced interactions. That leaves deterministic update/view regressions uncovered in ordinary
cargo test, including the sort flow from #211 and staged settings search from #213.Scope
Add a compositor-free Layer A GUI interaction harness using the official MIT-licensed
iced_test0.14 crate as a dev dependency, matched to Iced 0.14.HonkHonkstate and exercise the realview()andupdate()throughiced_test::Simulator.click,tap_key,typewrite, andfindoperations.cargo test.cargo fmt --check,cargo clippy -- -D warnings,cargo test, andcargo deny checkgreen.Limits
This layer validates Iced update/view logic and widget-tree behavior only. It does not exercise winit, wgpu, the Wayland compositor, ksni tray integration, desktop portals, or PipeWire audio.
New dependency justification
iced_testis the official test crate shipped alongside Iced and supplies Simulator/widget selectors that would be costly and brittle to recreate. Version 0.14.0 matches the application’s Iced 0.14 line. License: MIT.cargo deny checkmust remain green.