From 0a4c4b5941fe982ccb3d3175e26d9d83f0025ffd Mon Sep 17 00:00:00 2001 From: srdusr <99972264+srdusr@users.noreply.github.com> Date: Sat, 15 Feb 2025 14:56:00 +0200 Subject: Checkpoint: preserve all uncommitted rust-rewrite worktree work Safety commit before reconciling this worktree with main, which has diverged with its own separate fixes today. Nothing here is reviewed or curated yet - this exists purely so none of this work can be lost to a git operation, disk issue, or worktree cleanup while that reconciliation happens. --- crates/config/src/engine/tests.rs | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'crates/config/src/engine/tests.rs') diff --git a/crates/config/src/engine/tests.rs b/crates/config/src/engine/tests.rs index 521dc5a..f170320 100644 --- a/crates/config/src/engine/tests.rs +++ b/crates/config/src/engine/tests.rs @@ -196,6 +196,58 @@ assert!(wm.borrow().is_floating(id)); } + #[test] + fn srd_monitor_split_stores_a_split_request_by_connector_name() { + let dir = tempfile::tempdir().unwrap(); + let wm = Rc::new(RefCell::new(WindowManager::new())); + let engine = Engine::new(wm.clone(), dir.path()).unwrap(); + engine.lua.load(r#"srd.monitor.split("eDP-1", 2, "rows")"#).exec().unwrap(); + let split = wm.borrow().monitor_split("eDP-1").unwrap(); + assert_eq!(split.parts, 2); + assert!(split.rows); + } + + #[test] + fn srd_monitor_split_direction_defaults_to_columns() { + let dir = tempfile::tempdir().unwrap(); + let wm = Rc::new(RefCell::new(WindowManager::new())); + let engine = Engine::new(wm.clone(), dir.path()).unwrap(); + engine.lua.load(r#"srd.monitor.split("HDMI-A-1", 3)"#).exec().unwrap(); + let split = wm.borrow().monitor_split("HDMI-A-1").unwrap(); + assert_eq!(split.parts, 3); + assert!(!split.rows); + } + + #[test] + fn srd_monitor_scale_stores_a_factor_by_connector_name() { + let dir = tempfile::tempdir().unwrap(); + let wm = Rc::new(RefCell::new(WindowManager::new())); + let engine = Engine::new(wm.clone(), dir.path()).unwrap(); + engine.lua.load(r#"srd.monitor.scale("HDMI-A-1", 0.75)"#).exec().unwrap(); + assert_eq!(wm.borrow().monitor_scale("HDMI-A-1"), Some(0.75)); + } + + #[test] + fn srd_monitor_scale_with_a_non_positive_factor_clears_it() { + let dir = tempfile::tempdir().unwrap(); + let wm = Rc::new(RefCell::new(WindowManager::new())); + let engine = Engine::new(wm.clone(), dir.path()).unwrap(); + engine.lua.load(r#"srd.monitor.scale("HDMI-A-1", 0.75)"#).exec().unwrap(); + engine.lua.load(r#"srd.monitor.scale("HDMI-A-1", 0)"#).exec().unwrap(); + assert_eq!(wm.borrow().monitor_scale("HDMI-A-1"), None); + } + + #[test] + fn srd_monitor_split_with_one_part_clears_an_existing_split() { + let dir = tempfile::tempdir().unwrap(); + let wm = Rc::new(RefCell::new(WindowManager::new())); + let engine = Engine::new(wm.clone(), dir.path()).unwrap(); + engine.lua.load(r#"srd.monitor.split("eDP-1", 2)"#).exec().unwrap(); + assert!(wm.borrow().monitor_split("eDP-1").is_some()); + engine.lua.load(r#"srd.monitor.split("eDP-1", 1)"#).exec().unwrap(); + assert!(wm.borrow().monitor_split("eDP-1").is_none()); + } + #[test] fn srd_window_scratchpad_hides_the_focused_window_and_show_brings_it_back() { let dir = tempfile::tempdir().unwrap(); -- cgit v1.2.3