diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-16 01:09:25 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-04-16 01:09:25 +0300 |
| commit | ef1c6b1497fd0ad26e9d32f301ffb801cb96aa40 (patch) | |
| tree | f80cbb5fc67eb2796c932a9fdd5315ce3d21d18e /src/app/mod.rs | |
| parent | d76a5b8cec72b420b340a13ea186ea169b39b69e (diff) | |
fix: switch updates to manual preview flow
Diffstat (limited to 'src/app/mod.rs')
| -rw-r--r-- | src/app/mod.rs | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/app/mod.rs b/src/app/mod.rs index 165a6ff3..36b00033 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -205,7 +205,12 @@ impl App { "using pane scrollback configuration" ); - let latest_release_notes_available = crate::release_notes::load_latest().is_some(); + let latest_release_notes = crate::release_notes::load_latest(); + let update_available = latest_release_notes + .as_ref() + .filter(|notes| notes.preview) + .map(|notes| notes.version.clone()); + let latest_release_notes_available = latest_release_notes.is_some(); let mode = if config.should_show_onboarding() { state::Mode::Onboarding @@ -261,7 +266,7 @@ impl App { tab_press: None, selection: None, context_menu: None, - update_available: None, + update_available, latest_release_notes_available, update_dismissed: false, config_diagnostic, @@ -1362,6 +1367,23 @@ mod tests { } #[test] + fn startup_restores_preview_update_available_from_saved_notes() { + let _guard = config_env_lock().lock().unwrap(); + let path = temp_config_path("startup-preview-update-available"); + std::env::set_var(crate::config::CONFIG_PATH_ENV_VAR, &path); + + crate::release_notes::save_pending("0.5.0", "### Changed\n- One").unwrap(); + + let app = test_app(); + + assert_eq!(app.state.update_available.as_deref(), Some("0.5.0")); + assert!(app.state.latest_release_notes_available); + + std::env::remove_var(crate::config::CONFIG_PATH_ENV_VAR); + let _ = std::fs::remove_dir_all(path.parent().unwrap()); + } + + #[test] fn reload_keybinds_updates_live_state() { let _guard = config_env_lock().lock().unwrap(); let path = temp_config_path("reload-keybinds-success"); |
