From e13d1ece58f51970d4496bae7ec77d303274a2f2 Mon Sep 17 00:00:00 2001 From: Dark-Alex-17 Date: Thu, 17 Aug 2023 16:48:37 -0600 Subject: [PATCH] Fixed a bug with cancelling tokens when processing prompt networking events --- src/app/radarr/mod.rs | 2 +- src/app/radarr/radarr_tests.rs | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/app/radarr/mod.rs b/src/app/radarr/mod.rs index 84d6233..112e2b4 100644 --- a/src/app/radarr/mod.rs +++ b/src/app/radarr/mod.rs @@ -148,7 +148,7 @@ impl<'a> App<'a> { } if self.is_routing { - if self.is_loading { + if self.is_loading && !self.should_refresh { self.cancellation_token.cancel(); } diff --git a/src/app/radarr/radarr_tests.rs b/src/app/radarr/radarr_tests.rs index b67f7df..3059203 100644 --- a/src/app/radarr/radarr_tests.rs +++ b/src/app/radarr/radarr_tests.rs @@ -535,6 +535,7 @@ mod tests { let (mut app, mut sync_network_rx) = construct_app_unit(); app.is_routing = true; app.is_loading = true; + app.should_refresh = false; app .radarr_on_tick(ActiveRadarrBlock::Downloads, false) @@ -583,6 +584,27 @@ mod tests { assert!(!app.data.radarr_data.prompt_confirm); } + #[tokio::test] + async fn test_radarr_on_tick_should_refresh_does_not_cancel_prompt_requests() { + let (mut app, mut sync_network_rx) = construct_app_unit(); + app.is_loading = true; + app.is_routing = true; + app.should_refresh = true; + + app + .radarr_on_tick(ActiveRadarrBlock::Downloads, false) + .await; + + assert_eq!( + sync_network_rx.recv().await.unwrap(), + RadarrEvent::GetDownloads.into() + ); + assert!(app.is_loading); + assert!(app.should_refresh); + assert!(!app.data.radarr_data.prompt_confirm); + assert!(!app.cancellation_token.is_cancelled()); + } + #[tokio::test] async fn test_radarr_on_tick_network_tick_frequency() { let (mut app, mut sync_network_rx) = construct_app_unit();