From 678bc77a2319836a35b1626a7c33c25b55357b79 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Thu, 5 Dec 2024 11:45:46 -0700 Subject: [PATCH] fix(ui): Fix the System Details Tasks popup to be navigable in both Sonarr and Radarr --- .../system/system_details_handler.rs | 1 + .../system/system_details_handler_tests.rs | 22 +++++++++++++++++- .../system/system_details_handler.rs | 1 + .../system/system_details_handler_tests.rs | 23 ++++++++++++++++++- 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/handlers/radarr_handlers/system/system_details_handler.rs b/src/handlers/radarr_handlers/system/system_details_handler.rs index 38707fb..d6f19dd 100644 --- a/src/handlers/radarr_handlers/system/system_details_handler.rs +++ b/src/handlers/radarr_handlers/system/system_details_handler.rs @@ -44,6 +44,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for SystemDetailsHandler fn is_ready(&self) -> bool { !self.app.is_loading && (!self.app.data.radarr_data.log_details.is_empty() + || !self.app.data.radarr_data.tasks.is_empty() || !self.app.data.radarr_data.updates.is_empty()) } diff --git a/src/handlers/radarr_handlers/system/system_details_handler_tests.rs b/src/handlers/radarr_handlers/system/system_details_handler_tests.rs index 89d1f80..34c97da 100644 --- a/src/handlers/radarr_handlers/system/system_details_handler_tests.rs +++ b/src/handlers/radarr_handlers/system/system_details_handler_tests.rs @@ -944,7 +944,7 @@ mod tests { } #[test] - fn test_system_details_handler_not_ready_when_both_log_details_and_updates_are_empty() { + fn test_system_details_handler_not_ready_when_log_details_and_updates_and_tasks_are_empty() { let mut app = App::default(); app.is_loading = false; @@ -978,6 +978,26 @@ mod tests { assert!(handler.is_ready()); } + #[test] + fn test_system_details_handler_ready_when_not_loading_and_tasks_is_not_empty() { + let mut app = App::default(); + app.is_loading = false; + app + .data + .radarr_data + .tasks + .set_items(vec![RadarrTask::default()]); + + let handler = SystemDetailsHandler::with( + DEFAULT_KEYBINDINGS.esc.key, + &mut app, + ActiveRadarrBlock::SystemTasks, + None, + ); + + assert!(handler.is_ready()); + } + #[test] fn test_system_details_handler_ready_when_not_loading_and_updates_is_not_empty() { let mut app = App::default(); diff --git a/src/handlers/sonarr_handlers/system/system_details_handler.rs b/src/handlers/sonarr_handlers/system/system_details_handler.rs index 2cb2441..9df82b6 100644 --- a/src/handlers/sonarr_handlers/system/system_details_handler.rs +++ b/src/handlers/sonarr_handlers/system/system_details_handler.rs @@ -44,6 +44,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveSonarrBlock> for SystemDetailsHandler fn is_ready(&self) -> bool { !self.app.is_loading && (!self.app.data.sonarr_data.log_details.is_empty() + || !self.app.data.sonarr_data.tasks.is_empty() || !self.app.data.sonarr_data.updates.is_empty()) } diff --git a/src/handlers/sonarr_handlers/system/system_details_handler_tests.rs b/src/handlers/sonarr_handlers/system/system_details_handler_tests.rs index a8a908a..94ad27f 100644 --- a/src/handlers/sonarr_handlers/system/system_details_handler_tests.rs +++ b/src/handlers/sonarr_handlers/system/system_details_handler_tests.rs @@ -965,7 +965,7 @@ mod tests { } #[test] - fn test_system_details_handler_not_ready_when_both_log_details_and_updates_are_empty() { + fn test_system_details_handler_not_ready_when_log_details_and_updates_and_tasks_are_empty() { let mut app = App::default(); app.push_navigation_stack(ActiveSonarrBlock::System.into()); app.is_loading = false; @@ -1001,6 +1001,27 @@ mod tests { assert!(handler.is_ready()); } + #[test] + fn test_system_details_handler_ready_when_not_loading_and_tasks_is_not_empty() { + let mut app = App::default(); + app.push_navigation_stack(ActiveSonarrBlock::System.into()); + app.is_loading = false; + app + .data + .sonarr_data + .tasks + .set_items(vec![SonarrTask::default()]); + + let handler = SystemDetailsHandler::with( + DEFAULT_KEYBINDINGS.esc.key, + &mut app, + ActiveSonarrBlock::SystemTasks, + None, + ); + + assert!(handler.is_ready()); + } + #[test] fn test_system_details_handler_ready_when_not_loading_and_updates_is_not_empty() { let mut app = App::default();