From a5c8a2cd3770d1f2ec2def7272415647741c3d7e Mon Sep 17 00:00:00 2001 From: overtrue Date: Sun, 27 Sep 2026 05:13:00 +0800 Subject: [PATCH] test(heal): cover unknown status mapping --- crates/s3/src/admin.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/crates/s3/src/admin.rs b/crates/s3/src/admin.rs index 245c7c8..2aa8c97 100644 --- a/crates/s3/src/admin.rs +++ b/crates/s3/src/admin.rs @@ -7973,6 +7973,29 @@ mod tests { assert!(active.healing); } + #[test] + fn test_unknown_background_heal_states_ignore_stale_legacy_activity() { + for state in [HealRuntimeState::Degraded, HealRuntimeState::Unknown] { + let status = HealStatus::from(BackgroundHealStatusResponse { + state: Some(state), + cluster_status_complete: None, + coverage: None, + bitrot_start_time: Some("2026-04-19T10:00:00Z".to_string()), + bitrot_start_cycle: 42, + current_scan_mode: Some(2), + heal_queue_length: 0, + heal_active_tasks: 0, + heal_operations: None, + progress: None, + }); + + assert!(!status.healing, "{state:?} must not trust stale scan data"); + assert_eq!(status.state, Some(state)); + assert_eq!(status.started.as_deref(), Some("2026-04-19T10:00:00Z")); + assert_eq!(status.scan_mode, Some(HealScanMode::Deep)); + } + } + #[test] fn test_background_heal_status_response_maps_nested_heal_operations() { let response: BackgroundHealStatusResponse = serde_json::from_str(