diff --git a/local/recipes/tui/tlc/source/src/filemanager/mod.rs b/local/recipes/tui/tlc/source/src/filemanager/mod.rs index 4df4341eee..7388049fa4 100644 --- a/local/recipes/tui/tlc/source/src/filemanager/mod.rs +++ b/local/recipes/tui/tlc/source/src/filemanager/mod.rs @@ -1536,6 +1536,27 @@ mod tests { let _ = fs::remove_dir_all(&dir); } + #[test] + fn switch_focus_resets_panel_switch_animation() { + let dir = std::env::temp_dir().join("tlc-fm-switch-focus"); + let _ = fs::remove_dir_all(&dir); + fs::create_dir_all(&dir).unwrap(); + let mut fm = FileManager::new(&dir, &empty_cfg()).unwrap(); + // Settled at 100. + assert_eq!(fm.panel_switch_anim, 100); + // switch_focus resets to 0 so the border flashes info→accent. + fm.switch_focus(); + assert_eq!(fm.panel_switch_anim, 0); + // Ticks advance toward 100. + fm.sync_animations(); + assert!(fm.panel_switch_anim > 0); + fm.sync_animations(); + fm.sync_animations(); + fm.sync_animations(); + assert_eq!(fm.panel_switch_anim, 100); + let _ = fs::remove_dir_all(&dir); + } + #[test] fn equal_split_resets_ratio() { let dir = std::env::temp_dir().join("tlc-fm-split-equal");