mirror of
https://github.com/herdrdev/herdr.git
synced 2026-09-22 08:01:06 +00:00
fix: only preview newer saved release notes
This commit is contained in:
@@ -1383,6 +1383,23 @@ mod tests {
|
||||
let _ = std::fs::remove_dir_all(path.parent().unwrap());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn startup_does_not_restore_update_available_from_older_saved_notes() {
|
||||
let _guard = config_env_lock().lock().unwrap();
|
||||
let path = temp_config_path("startup-stale-update-notes");
|
||||
std::env::set_var(crate::config::CONFIG_PATH_ENV_VAR, &path);
|
||||
|
||||
crate::release_notes::save_pending("0.4.9", "### Changed\n- One").unwrap();
|
||||
|
||||
let app = test_app();
|
||||
|
||||
assert_eq!(app.state.update_available, None);
|
||||
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();
|
||||
|
||||
+27
-1
@@ -100,8 +100,16 @@ fn release_notes_from_stored(
|
||||
return None;
|
||||
}
|
||||
|
||||
let preview = match (
|
||||
crate::update::Version::parse(&stored.version),
|
||||
crate::update::Version::parse(current_version),
|
||||
) {
|
||||
(Some(stored_version), Some(current_version)) => stored_version > current_version,
|
||||
_ => false,
|
||||
};
|
||||
|
||||
Some(ReleaseNotes {
|
||||
preview: stored.version != current_version,
|
||||
preview,
|
||||
version: stored.version,
|
||||
body,
|
||||
})
|
||||
@@ -213,6 +221,24 @@ mod tests {
|
||||
clear_pending_at(&path).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn load_latest_does_not_mark_older_saved_version_as_preview() {
|
||||
let path = std::env::temp_dir().join(format!(
|
||||
"herdr-release-notes-{}-{}.json",
|
||||
std::process::id(),
|
||||
"stale"
|
||||
));
|
||||
let _ = clear_pending_at(&path);
|
||||
save_pending_to_path(&path, "0.3.0", "### Changed\n- One").unwrap();
|
||||
|
||||
let notes = load_latest_from_path(&path, "0.3.1").expect("latest notes");
|
||||
assert_eq!(notes.version, "0.3.0");
|
||||
assert_eq!(notes.body, "### Changed\n- One");
|
||||
assert!(!notes.preview);
|
||||
|
||||
clear_pending_at(&path).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn marking_current_version_seen_preserves_latest_notes_without_startup_modal() {
|
||||
let path = std::env::temp_dir().join(format!(
|
||||
|
||||
Reference in New Issue
Block a user