diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-20 00:34:04 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-20 00:34:04 +0300 |
| commit | ff8e5a14abe445a61dc200fd30a70870c75d183c (patch) | |
| tree | 53934152b2b7993a67c4c05ce54a58548310a7d5 /src/app/input | |
| parent | fb93e3747544afc3288d7b5e831d5ca3dd5c3768 (diff) | |
fix: stop auto-opening release notes on startup
Diffstat (limited to 'src/app/input')
| -rw-r--r-- | src/app/input/mod.rs | 1 | ||||
| -rw-r--r-- | src/app/input/modal.rs | 45 | ||||
| -rw-r--r-- | src/app/input/navigate.rs | 3 | ||||
| -rw-r--r-- | src/app/input/terminal.rs | 1 |
4 files changed, 45 insertions, 5 deletions
diff --git a/src/app/input/mod.rs b/src/app/input/mod.rs index ae8fb12b..ad68f9da 100644 --- a/src/app/input/mod.rs +++ b/src/app/input/mod.rs @@ -295,7 +295,6 @@ fn app_for_mouse_test() -> App { &crate::config::Config::default(), true, None, - None, api_rx, crate::api::EventHub::default(), ); diff --git a/src/app/input/modal.rs b/src/app/input/modal.rs index 954f97de..ff5e8582 100644 --- a/src/app/input/modal.rs +++ b/src/app/input/modal.rs @@ -627,6 +627,23 @@ mod tests { use super::super::{capture_snapshot, state_with_workspaces}; use super::*; + fn config_env_lock() -> &'static std::sync::Mutex<()> { + static LOCK: std::sync::OnceLock<std::sync::Mutex<()>> = std::sync::OnceLock::new(); + LOCK.get_or_init(|| std::sync::Mutex::new(())) + } + + fn temp_config_path(name: &str) -> std::path::PathBuf { + let unique = format!( + "herdr-modal-{name}-{}-{}", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + ); + std::env::temp_dir().join(unique).join("config.toml") + } + #[test] fn custom_resize_key_exits_resize_mode() { let mut state = state_with_workspaces(&["test"]); @@ -643,6 +660,34 @@ mod tests { } #[test] + fn global_menu_whats_new_opens_saved_release_notes() { + let _guard = config_env_lock().lock().unwrap(); + let path = temp_config_path("whats-new-saved-release-notes"); + std::env::set_var(crate::config::CONFIG_PATH_ENV_VAR, &path); + crate::release_notes::save_pending(env!("CARGO_PKG_VERSION"), "### Changed\n- Menu") + .unwrap(); + + let mut state = state_with_workspaces(&["test"]); + state.latest_release_notes_available = true; + + assert!(global_menu_actions(&state).contains(&GlobalMenuAction::WhatsNew)); + + apply_global_menu_action(&mut state, GlobalMenuAction::WhatsNew); + + assert_eq!(state.mode, Mode::ReleaseNotes); + assert_eq!( + state + .release_notes + .as_ref() + .map(|notes| notes.body.as_str()), + Some("### Changed\n- Menu") + ); + + std::env::remove_var(crate::config::CONFIG_PATH_ENV_VAR); + let _ = std::fs::remove_dir_all(path.parent().unwrap()); + } + + #[test] fn rename_modal_keyboard_and_mouse_share_actions() { let mut state = state_with_workspaces(&["test"]); state.mode = Mode::RenameWorkspace; diff --git a/src/app/input/navigate.rs b/src/app/input/navigate.rs index e2e0993e..34d0a342 100644 --- a/src/app/input/navigate.rs +++ b/src/app/input/navigate.rs @@ -1035,7 +1035,6 @@ mod tests { &Config::default(), true, None, - None, api_rx, crate::api::EventHub::default(), ); @@ -1084,7 +1083,6 @@ mod tests { &Config::default(), true, None, - None, api_rx, crate::api::EventHub::default(), ); @@ -1153,7 +1151,6 @@ mod tests { &Config::default(), true, None, - None, api_rx, crate::api::EventHub::default(), ); diff --git a/src/app/input/terminal.rs b/src/app/input/terminal.rs index b5ceda12..12fb67b2 100644 --- a/src/app/input/terminal.rs +++ b/src/app/input/terminal.rs @@ -461,7 +461,6 @@ mod tests { &Config::default(), true, None, - None, api_rx, crate::api::EventHub::default(), ); |
