mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-15 13:22:19 +01:00
tests/state_roundtrip.rs (15 tests) reads the monitors of the e2e fixtures (Windows kfw-tiled, kfw-stack, kfw-float; KDE kfde-tiled, kfde-stack) into the shared Monitor<P> with a platform shaped like each daemon (Windows: isize id, optional serial number, the name/device_id/workspace_names extra; KDE: u32 id, string serial number, no extra; macOS: window_hiding_position extra), writes them again and compares the parsed JSON: every fixture is written as it was read. Also pins that the corner is the last macOS monitor key and cannot be omitted, that the workspace keys are the same whatever the platform, the exact set of KDE monitor keys, and which keys an old state file may omit (23 optional keys at monitor, workspace and container level, e.g. container locked and workspace layout_options_rules) and which it may not (18 required keys, including layer, work_area_offset_rules and apply_window_based_work_area_offset: a file from before those existed does not load; pinned, not judged). The fixtures are copied into tests/common/fixtures.rs as Rust text because the nix source filters keep .rs files and drop .json; a test compares the copies with e2e/lib/tests/fixtures when the checkout has them. The macOS fixture is NOT real macOS output: it is kfde-tiled reshaped with jq to the macOS window and monitor shape of the state_pin tests (no Mac here), and says so in its comment; replace it with 'komorebic state' from a Mac when one is at hand. Verified: cargo test -p komorebi-core (27 unit + 179 integration passed, 1 ignored) with and without --features schemars; cargo clippy -p komorebi-core --all-targets has no warning in the crate. Windows clippy and macOS check not run: the tests are portable crate tests and no platform source changed.