diff --git a/src/app/radarr/mod.rs b/src/app/radarr/mod.rs index 1ee0263..dbcef58 100644 --- a/src/app/radarr/mod.rs +++ b/src/app/radarr/mod.rs @@ -103,17 +103,23 @@ impl<'a> App<'a> { } ActiveRadarrBlock::AddMovieSearchResults => { self - .dispatch_network_event(RadarrEvent::SearchNewMovie(self.extract_movie_search_query().await).into()) + .dispatch_network_event( + RadarrEvent::SearchNewMovie(self.extract_movie_search_query().await).into(), + ) .await; } ActiveRadarrBlock::MovieDetails | ActiveRadarrBlock::FileInfo => { self - .dispatch_network_event(RadarrEvent::GetMovieDetails(self.extract_movie_id().await).into()) + .dispatch_network_event( + RadarrEvent::GetMovieDetails(self.extract_movie_id().await).into(), + ) .await; } ActiveRadarrBlock::MovieHistory => { self - .dispatch_network_event(RadarrEvent::GetMovieHistory(self.extract_movie_id().await).into()) + .dispatch_network_event( + RadarrEvent::GetMovieHistory(self.extract_movie_id().await).into(), + ) .await; } ActiveRadarrBlock::Cast | ActiveRadarrBlock::Crew => { @@ -123,7 +129,9 @@ impl<'a> App<'a> { || movie_details_modal.movie_crew.items.is_empty() => { self - .dispatch_network_event(RadarrEvent::GetMovieCredits(self.extract_movie_id().await).into()) + .dispatch_network_event( + RadarrEvent::GetMovieCredits(self.extract_movie_id().await).into(), + ) .await; } _ => (), @@ -221,19 +229,20 @@ impl<'a> App<'a> { } async fn extract_movie_id(&self) -> i64 { - self - .data - .radarr_data - .movies - .current_selection() - .clone() - .id + self.data.radarr_data.movies.current_selection().clone().id } async fn extract_movie_search_query(&self) -> String { - self.data.radarr_data.add_movie_search.as_ref().expect("Add movie search is empty").text.clone() + self + .data + .radarr_data + .add_movie_search + .as_ref() + .expect("Add movie search is empty") + .text + .clone() } - + async fn extract_indexer_id(&self) -> i64 { self .data diff --git a/src/app/radarr/radarr_tests.rs b/src/app/radarr/radarr_tests.rs index da31240..36b6a7e 100644 --- a/src/app/radarr/radarr_tests.rs +++ b/src/app/radarr/radarr_tests.rs @@ -775,7 +775,7 @@ mod tests { id: 1, ..Indexer::default() }]); - + assert_eq!(app.extract_indexer_id().await, 1); } diff --git a/src/cli/radarr/add_command_handler.rs b/src/cli/radarr/add_command_handler.rs index e96cceb..73cd851 100644 --- a/src/cli/radarr/add_command_handler.rs +++ b/src/cli/radarr/add_command_handler.rs @@ -138,7 +138,9 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, RadarrAddCommand> for RadarrAddCommandHan serde_json::to_string_pretty(&resp)? } RadarrAddCommand::RootFolder { root_folder_path } => { - let add_root_folder_body = AddRootFolderBody { path: root_folder_path }; + let add_root_folder_body = AddRootFolderBody { + path: root_folder_path, + }; let resp = self .network .handle_network_event(RadarrEvent::AddRootFolder(add_root_folder_body).into()) diff --git a/src/cli/radarr/add_command_handler_tests.rs b/src/cli/radarr/add_command_handler_tests.rs index ac5af65..edec9b6 100644 --- a/src/cli/radarr/add_command_handler_tests.rs +++ b/src/cli/radarr/add_command_handler_tests.rs @@ -422,7 +422,9 @@ mod tests { #[tokio::test] async fn test_handle_add_root_folder_command() { let expected_root_folder_path = "/nfs/test".to_owned(); - let expected_add_root_folder_body = AddRootFolderBody { path: expected_root_folder_path.clone() }; + let expected_add_root_folder_body = AddRootFolderBody { + path: expected_root_folder_path.clone(), + }; let mut mock_network = MockNetworkTrait::new(); mock_network .expect_handle_network_event() diff --git a/src/cli/radarr/mod.rs b/src/cli/radarr/mod.rs index 54db679..2641691 100644 --- a/src/cli/radarr/mod.rs +++ b/src/cli/radarr/mod.rs @@ -253,7 +253,7 @@ impl<'a, 'b> CliCommandHandler<'a, 'b, RadarrCommand> for RadarrCliHandler<'a, ' RadarrCommand::TriggerAutomaticSearch { movie_id } => { let resp = self .network - .handle_network_event(RadarrEvent::TriggerAutomaticSearch(Some(movie_id)).into()) + .handle_network_event(RadarrEvent::TriggerAutomaticSearch(movie_id).into()) .await?; serde_json::to_string_pretty(&resp)? } diff --git a/src/cli/radarr/radarr_command_tests.rs b/src/cli/radarr/radarr_command_tests.rs index 4cd27a7..e49a52a 100644 --- a/src/cli/radarr/radarr_command_tests.rs +++ b/src/cli/radarr/radarr_command_tests.rs @@ -468,7 +468,7 @@ mod tests { mock_network .expect_handle_network_event() .with(eq::( - RadarrEvent::TriggerAutomaticSearch(Some(expected_movie_id)).into(), + RadarrEvent::TriggerAutomaticSearch(expected_movie_id).into(), )) .times(1) .returning(|_| { diff --git a/src/handlers/radarr_handlers/blocklist/blocklist_handler_tests.rs b/src/handlers/radarr_handlers/blocklist/blocklist_handler_tests.rs index d6f717b..17d6388 100644 --- a/src/handlers/radarr_handlers/blocklist/blocklist_handler_tests.rs +++ b/src/handlers/radarr_handlers/blocklist/blocklist_handler_tests.rs @@ -540,19 +540,20 @@ mod tests { } }) } - + #[test] fn test_extract_blocklist_item_id() { let mut app = App::default(); app.data.radarr_data.blocklist.set_items(blocklist_vec()); - + let blocklist_item_id = BlocklistHandler::with( DEFAULT_KEYBINDINGS.esc.key, &mut app, ActiveRadarrBlock::Blocklist, None, - ).extract_blocklist_item_id(); - + ) + .extract_blocklist_item_id(); + assert_eq!(blocklist_item_id, 3); } diff --git a/src/handlers/radarr_handlers/blocklist/mod.rs b/src/handlers/radarr_handlers/blocklist/mod.rs index 7c7fd6f..f1fc57a 100644 --- a/src/handlers/radarr_handlers/blocklist/mod.rs +++ b/src/handlers/radarr_handlers/blocklist/mod.rs @@ -28,15 +28,9 @@ impl<'a, 'b> BlocklistHandler<'a, 'b> { self.app.data.radarr_data.blocklist, BlocklistItem ); - + fn extract_blocklist_item_id(&self) -> i64 { - self - .app - .data - .radarr_data - .blocklist - .current_selection() - .id + self.app.data.radarr_data.blocklist.current_selection().id } } @@ -108,8 +102,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for BlocklistHandler<'a, match self.active_radarr_block { ActiveRadarrBlock::DeleteBlocklistItemPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = - Some(RadarrEvent::DeleteBlocklistItem(self.extract_blocklist_item_id())); + self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteBlocklistItem( + self.extract_blocklist_item_id(), + )); } self.app.pop_navigation_stack(); @@ -161,8 +156,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for BlocklistHandler<'a, ActiveRadarrBlock::DeleteBlocklistItemPrompt => { if key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = - Some(RadarrEvent::DeleteBlocklistItem(self.extract_blocklist_item_id())); + self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteBlocklistItem( + self.extract_blocklist_item_id(), + )); self.app.pop_navigation_stack(); } diff --git a/src/handlers/radarr_handlers/collections/edit_collection_handler.rs b/src/handlers/radarr_handlers/collections/edit_collection_handler.rs index 632dfcd..e33d3c0 100644 --- a/src/handlers/radarr_handlers/collections/edit_collection_handler.rs +++ b/src/handlers/radarr_handlers/collections/edit_collection_handler.rs @@ -29,9 +29,16 @@ impl<'a, 'b> EditCollectionHandler<'a, 'b> { minimum_availability_list, monitored, quality_profile_list, - } = self.app.data.radarr_data.edit_collection_modal.as_ref().unwrap(); + } = self + .app + .data + .radarr_data + .edit_collection_modal + .as_ref() + .unwrap(); let quality_profile = quality_profile_list.current_selection(); - let quality_profile_id = *self.app + let quality_profile_id = *self + .app .data .radarr_data .quality_profile_map @@ -47,14 +54,13 @@ impl<'a, 'b> EditCollectionHandler<'a, 'b> { let minimum_availability = *minimum_availability_list.current_selection(); self.app.data.radarr_data.edit_collection_modal = None; - EditCollectionParams { collection_id, monitored: Some(monitored), minimum_availability: Some(minimum_availability), quality_profile_id: Some(quality_profile_id), root_folder_path: Some(root_folder_path), - search_on_add: Some(search_on_add) + search_on_add: Some(search_on_add), } } } @@ -231,8 +237,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for EditCollectionHandle match self.app.data.radarr_data.selected_block.get_active_block() { ActiveRadarrBlock::EditCollectionConfirmPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = - Some(RadarrEvent::EditCollection(self.build_edit_collection_params())); + self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::EditCollection( + self.build_edit_collection_params(), + )); self.app.should_refresh = true; } @@ -351,7 +358,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for EditCollectionHandle && key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::EditCollection(self.build_edit_collection_params())); + self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::EditCollection( + self.build_edit_collection_params(), + )); self.app.should_refresh = true; self.app.pop_navigation_stack(); diff --git a/src/handlers/radarr_handlers/collections/edit_collection_handler_tests.rs b/src/handlers/radarr_handlers/collections/edit_collection_handler_tests.rs index 65a9b78..cb741dc 100644 --- a/src/handlers/radarr_handlers/collections/edit_collection_handler_tests.rs +++ b/src/handlers/radarr_handlers/collections/edit_collection_handler_tests.rs @@ -1056,7 +1056,8 @@ mod tests { &mut app, ActiveRadarrBlock::EditCollectionPrompt, None, - ).build_edit_collection_params(); + ) + .build_edit_collection_params(); assert_eq!(edit_collection_params, expected_edit_collection_params); assert!(app.data.radarr_data.edit_collection_modal.is_none()); diff --git a/src/handlers/radarr_handlers/downloads/downloads_handler_tests.rs b/src/handlers/radarr_handlers/downloads/downloads_handler_tests.rs index 655b47b..0323916 100644 --- a/src/handlers/radarr_handlers/downloads/downloads_handler_tests.rs +++ b/src/handlers/radarr_handlers/downloads/downloads_handler_tests.rs @@ -390,14 +390,19 @@ mod tests { #[test] fn test_extract_download_id() { let mut app = App::default(); - app.data.radarr_data.downloads.set_items(vec![download_record()]); + app + .data + .radarr_data + .downloads + .set_items(vec![download_record()]); let download_id = DownloadsHandler::with( DEFAULT_KEYBINDINGS.esc.key, &mut app, ActiveRadarrBlock::Downloads, None, - ).extract_download_id(); + ) + .extract_download_id(); assert_eq!(download_id, 1); } diff --git a/src/handlers/radarr_handlers/downloads/mod.rs b/src/handlers/radarr_handlers/downloads/mod.rs index d97ce87..8a5246a 100644 --- a/src/handlers/radarr_handlers/downloads/mod.rs +++ b/src/handlers/radarr_handlers/downloads/mod.rs @@ -27,15 +27,9 @@ impl<'a, 'b> DownloadsHandler<'a, 'b> { self.app.data.radarr_data.downloads, DownloadRecord ); - + fn extract_download_id(&self) -> i64 { - self - .app - .data - .radarr_data - .downloads - .current_selection() - .id + self.app.data.radarr_data.downloads.current_selection().id } } @@ -105,7 +99,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for DownloadsHandler<'a, match self.active_radarr_block { ActiveRadarrBlock::DeleteDownloadPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteDownload(self.extract_download_id())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::DeleteDownload(self.extract_download_id())); } self.app.pop_navigation_stack(); @@ -148,7 +143,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for DownloadsHandler<'a, ActiveRadarrBlock::DeleteDownloadPrompt => { if key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteDownload(self.extract_download_id())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::DeleteDownload(self.extract_download_id())); self.app.pop_navigation_stack(); } diff --git a/src/handlers/radarr_handlers/indexers/edit_indexer_handler.rs b/src/handlers/radarr_handlers/indexers/edit_indexer_handler.rs index 44556a6..b197c4b 100644 --- a/src/handlers/radarr_handlers/indexers/edit_indexer_handler.rs +++ b/src/handlers/radarr_handlers/indexers/edit_indexer_handler.rs @@ -44,7 +44,13 @@ impl<'a, 'b> EditIndexerHandler<'a, 'b> { seed_ratio, priority, .. - } = self.app.data.radarr_data.edit_indexer_modal.as_ref().unwrap(); + } = self + .app + .data + .radarr_data + .edit_indexer_modal + .as_ref() + .unwrap(); EditIndexerParams { indexer_id, @@ -349,7 +355,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for EditIndexerHandler<' match selected_block { ActiveRadarrBlock::EditIndexerConfirmPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::EditIndexer(self.build_edit_indexer_params())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::EditIndexer(self.build_edit_indexer_params())); self.app.should_refresh = true; } else { self.app.data.radarr_data.edit_indexer_modal = None; @@ -514,7 +521,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for EditIndexerHandler<' && self.key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::EditIndexer(self.build_edit_indexer_params())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::EditIndexer(self.build_edit_indexer_params())); self.app.should_refresh = true; self.app.pop_navigation_stack(); diff --git a/src/handlers/radarr_handlers/indexers/edit_indexer_handler_tests.rs b/src/handlers/radarr_handlers/indexers/edit_indexer_handler_tests.rs index 7bd6f11..cd912c4 100644 --- a/src/handlers/radarr_handlers/indexers/edit_indexer_handler_tests.rs +++ b/src/handlers/radarr_handlers/indexers/edit_indexer_handler_tests.rs @@ -1822,13 +1822,14 @@ mod tests { priority: Some(25), ..EditIndexerParams::default() }; - + let edit_indexer_params = EditIndexerHandler::with( DEFAULT_KEYBINDINGS.esc.key, &mut app, ActiveRadarrBlock::EditIndexerPrompt, None, - ).build_edit_indexer_params(); + ) + .build_edit_indexer_params(); assert_eq!(edit_indexer_params, expected_edit_indexer_params); assert!(app.data.radarr_data.edit_indexer_modal.is_none()); diff --git a/src/handlers/radarr_handlers/indexers/edit_indexer_settings_handler.rs b/src/handlers/radarr_handlers/indexers/edit_indexer_settings_handler.rs index 266f6e1..b8d73ef 100644 --- a/src/handlers/radarr_handlers/indexers/edit_indexer_settings_handler.rs +++ b/src/handlers/radarr_handlers/indexers/edit_indexer_settings_handler.rs @@ -176,7 +176,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl match self.app.data.radarr_data.selected_block.get_active_block() { ActiveRadarrBlock::IndexerSettingsConfirmPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::EditAllIndexerSettings(self.build_edit_indexer_settings_body())); + self.app.data.radarr_data.prompt_confirm_action = Some( + RadarrEvent::EditAllIndexerSettings(self.build_edit_indexer_settings_body()), + ); self.app.should_refresh = true; } else { self.app.data.radarr_data.indexer_settings = None; @@ -266,8 +268,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl && self.key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = - Some(RadarrEvent::EditAllIndexerSettings(self.build_edit_indexer_settings_body())); + self.app.data.radarr_data.prompt_confirm_action = Some( + RadarrEvent::EditAllIndexerSettings(self.build_edit_indexer_settings_body()), + ); self.app.should_refresh = true; self.app.pop_navigation_stack(); diff --git a/src/handlers/radarr_handlers/indexers/edit_indexer_settings_handler_tests.rs b/src/handlers/radarr_handlers/indexers/edit_indexer_settings_handler_tests.rs index dee28d8..df09b83 100644 --- a/src/handlers/radarr_handlers/indexers/edit_indexer_settings_handler_tests.rs +++ b/src/handlers/radarr_handlers/indexers/edit_indexer_settings_handler_tests.rs @@ -980,7 +980,8 @@ mod tests { &mut app, ActiveRadarrBlock::AllIndexerSettingsPrompt, None, - ).build_edit_indexer_settings_body(); + ) + .build_edit_indexer_settings_body(); assert_eq!(body, indexer_settings()); assert!(app.data.radarr_data.indexer_settings.is_none()); diff --git a/src/handlers/radarr_handlers/indexers/indexers_handler_tests.rs b/src/handlers/radarr_handlers/indexers/indexers_handler_tests.rs index e441997..2097e35 100644 --- a/src/handlers/radarr_handlers/indexers/indexers_handler_tests.rs +++ b/src/handlers/radarr_handlers/indexers/indexers_handler_tests.rs @@ -241,11 +241,7 @@ mod tests { #[test] fn test_delete_indexer_prompt_confirm_submit() { let mut app = App::default(); - app - .data - .radarr_data - .indexers - .set_items(vec![indexer()]); + app.data.radarr_data.indexers.set_items(vec![indexer()]); app.data.radarr_data.prompt_confirm = true; app.push_navigation_stack(ActiveRadarrBlock::Indexers.into()); app.push_navigation_stack(ActiveRadarrBlock::DeleteIndexerPrompt.into()); @@ -544,11 +540,7 @@ mod tests { #[test] fn test_delete_indexer_prompt_confirm() { let mut app = App::default(); - app - .data - .radarr_data - .indexers - .set_items(vec![indexer()]); + app.data.radarr_data.indexers.set_items(vec![indexer()]); app.push_navigation_stack(ActiveRadarrBlock::Indexers.into()); app.push_navigation_stack(ActiveRadarrBlock::DeleteIndexerPrompt.into()); @@ -651,7 +643,8 @@ mod tests { &mut app, ActiveRadarrBlock::Indexers, None, - ).extract_indexer_id(); + ) + .extract_indexer_id(); assert_eq!(indexer_id, 1); } diff --git a/src/handlers/radarr_handlers/indexers/mod.rs b/src/handlers/radarr_handlers/indexers/mod.rs index 818d95a..7d64f53 100644 --- a/src/handlers/radarr_handlers/indexers/mod.rs +++ b/src/handlers/radarr_handlers/indexers/mod.rs @@ -33,15 +33,9 @@ pub(super) struct IndexersHandler<'a, 'b> { impl<'a, 'b> IndexersHandler<'a, 'b> { handle_table_events!(self, indexers, self.app.data.radarr_data.indexers, Indexer); - + fn extract_indexer_id(&self) -> i64 { - self - .app - .data - .radarr_data - .indexers - .current_selection() - .id + self.app.data.radarr_data.indexers.current_selection().id } } @@ -200,7 +194,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexersHandler<'a, ActiveRadarrBlock::DeleteIndexerPrompt => { if key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteIndexer(self.extract_indexer_id())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::DeleteIndexer(self.extract_indexer_id())); self.app.pop_navigation_stack(); } diff --git a/src/handlers/radarr_handlers/library/add_movie_handler.rs b/src/handlers/radarr_handlers/library/add_movie_handler.rs index d459930..586b5f9 100644 --- a/src/handlers/radarr_handlers/library/add_movie_handler.rs +++ b/src/handlers/radarr_handlers/library/add_movie_handler.rs @@ -1,7 +1,9 @@ use crate::app::key_binding::DEFAULT_KEYBINDINGS; use crate::handlers::table_handler::TableHandlingConfig; use crate::handlers::{handle_prompt_toggle, KeyEventHandler}; -use crate::models::radarr_models::{AddMovieBody, AddMovieOptions, AddMovieSearchResult, CollectionMovie}; +use crate::models::radarr_models::{ + AddMovieBody, AddMovieOptions, AddMovieSearchResult, CollectionMovie, +}; use crate::models::servarr_data::radarr::modals::AddMovieModal; use crate::models::servarr_data::radarr::radarr_data::{ ActiveRadarrBlock, ADD_MOVIE_BLOCKS, ADD_MOVIE_SELECTION_BLOCKS, @@ -54,10 +56,10 @@ impl<'a, 'b> AddMovieHandler<'a, 'b> { quality_profile_list, .. } = self.app.data.radarr_data.add_movie_modal.as_ref().unwrap(); - let (tmdb_id, title) = if let Some(context) = self.context - { + let (tmdb_id, title) = if let Some(context) = self.context { if context == ActiveRadarrBlock::CollectionDetails { - let CollectionMovie { tmdb_id, title, .. } = self.app + let CollectionMovie { tmdb_id, title, .. } = self + .app .data .radarr_data .collection_movies @@ -65,7 +67,8 @@ impl<'a, 'b> AddMovieHandler<'a, 'b> { .clone(); (tmdb_id, title.text) } else { - let AddMovieSearchResult { tmdb_id, title, .. } = self.app + let AddMovieSearchResult { tmdb_id, title, .. } = self + .app .data .radarr_data .add_searched_movies @@ -76,7 +79,8 @@ impl<'a, 'b> AddMovieHandler<'a, 'b> { (tmdb_id, title.text) } } else { - let AddMovieSearchResult { tmdb_id, title, .. } = self.app + let AddMovieSearchResult { tmdb_id, title, .. } = self + .app .data .radarr_data .add_searched_movies @@ -87,7 +91,8 @@ impl<'a, 'b> AddMovieHandler<'a, 'b> { (tmdb_id, title.text) }; let quality_profile = quality_profile_list.current_selection(); - let quality_profile_id = *self.app + let quality_profile_id = *self + .app .data .radarr_data .quality_profile_map @@ -446,7 +451,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for AddMovieHandler<'a, match self.app.data.radarr_data.selected_block.get_active_block() { ActiveRadarrBlock::AddMovieConfirmPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::AddMovie(self.build_add_movie_body())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::AddMovie(self.build_add_movie_body())); } self.app.pop_navigation_stack(); @@ -546,7 +552,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for AddMovieHandler<'a, && key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::AddMovie(self.build_add_movie_body())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::AddMovie(self.build_add_movie_body())); self.app.pop_navigation_stack(); } } diff --git a/src/handlers/radarr_handlers/library/add_movie_handler_tests.rs b/src/handlers/radarr_handlers/library/add_movie_handler_tests.rs index 75731e4..0075b84 100644 --- a/src/handlers/radarr_handlers/library/add_movie_handler_tests.rs +++ b/src/handlers/radarr_handlers/library/add_movie_handler_tests.rs @@ -1522,7 +1522,7 @@ mod tests { } }); } - + #[test] fn test_add_movie_search_no_panic_on_none_search_result() { let mut app = App::default(); diff --git a/src/handlers/radarr_handlers/library/delete_movie_handler.rs b/src/handlers/radarr_handlers/library/delete_movie_handler.rs index e2cf914..be44f50 100644 --- a/src/handlers/radarr_handlers/library/delete_movie_handler.rs +++ b/src/handlers/radarr_handlers/library/delete_movie_handler.rs @@ -22,12 +22,8 @@ impl<'a, 'b> DeleteMovieHandler<'a, 'b> { let id = self.app.data.radarr_data.movies.current_selection().id; let delete_movie_files = self.app.data.radarr_data.delete_movie_files; let add_list_exclusion = self.app.data.radarr_data.add_list_exclusion; - self - .app - .data - .radarr_data - .reset_delete_movie_preferences(); - + self.app.data.radarr_data.reset_delete_movie_preferences(); + DeleteMovieParams { id, delete_movie_files, @@ -92,7 +88,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for DeleteMovieHandler<' match self.app.data.radarr_data.selected_block.get_active_block() { ActiveRadarrBlock::DeleteMovieConfirmPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteMovie(self.build_delete_movie_params())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::DeleteMovie(self.build_delete_movie_params())); self.app.should_refresh = true; } else { self.app.data.radarr_data.reset_delete_movie_preferences(); @@ -128,7 +125,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for DeleteMovieHandler<' && self.key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteMovie(self.build_delete_movie_params())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::DeleteMovie(self.build_delete_movie_params())); self.app.should_refresh = true; self.app.pop_navigation_stack(); diff --git a/src/handlers/radarr_handlers/library/delete_movie_handler_tests.rs b/src/handlers/radarr_handlers/library/delete_movie_handler_tests.rs index 0e065f3..b267aba 100644 --- a/src/handlers/radarr_handlers/library/delete_movie_handler_tests.rs +++ b/src/handlers/radarr_handlers/library/delete_movie_handler_tests.rs @@ -330,7 +330,8 @@ mod tests { &mut app, ActiveRadarrBlock::DeleteMoviePrompt, None, - ).build_delete_movie_params(); + ) + .build_delete_movie_params(); assert_eq!(delete_movie_params, expected_delete_movie_params); assert!(!app.data.radarr_data.delete_movie_files); diff --git a/src/handlers/radarr_handlers/library/edit_movie_handler.rs b/src/handlers/radarr_handlers/library/edit_movie_handler.rs index 66903ce..47ce109 100644 --- a/src/handlers/radarr_handlers/library/edit_movie_handler.rs +++ b/src/handlers/radarr_handlers/library/edit_movie_handler.rs @@ -23,7 +23,16 @@ pub(super) struct EditMovieHandler<'a, 'b> { impl<'a, 'b> EditMovieHandler<'a, 'b> { fn build_edit_movie_params(&mut self) -> EditMovieParams { let movie_id = self.app.data.radarr_data.movies.current_selection().id; - let tags = self.app.data.radarr_data.edit_movie_modal.as_ref().unwrap().tags.text.clone(); + let tags = self + .app + .data + .radarr_data + .edit_movie_modal + .as_ref() + .unwrap() + .tags + .text + .clone(); let params = { let EditMovieModal { monitored, @@ -33,7 +42,8 @@ impl<'a, 'b> EditMovieHandler<'a, 'b> { .. } = self.app.data.radarr_data.edit_movie_modal.as_ref().unwrap(); let quality_profile = quality_profile_list.current_selection(); - let quality_profile_id = *self.app + let quality_profile_id = *self + .app .data .radarr_data .quality_profile_map @@ -265,7 +275,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for EditMovieHandler<'a, match self.app.data.radarr_data.selected_block.get_active_block() { ActiveRadarrBlock::EditMovieConfirmPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::EditMovie(self.build_edit_movie_params())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::EditMovie(self.build_edit_movie_params())); self.app.should_refresh = true; } @@ -376,7 +387,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for EditMovieHandler<'a, && key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::EditMovie(self.build_edit_movie_params())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::EditMovie(self.build_edit_movie_params())); self.app.should_refresh = true; self.app.pop_navigation_stack(); diff --git a/src/handlers/radarr_handlers/library/edit_movie_handler_tests.rs b/src/handlers/radarr_handlers/library/edit_movie_handler_tests.rs index 04c45d2..1e3bf48 100644 --- a/src/handlers/radarr_handlers/library/edit_movie_handler_tests.rs +++ b/src/handlers/radarr_handlers/library/edit_movie_handler_tests.rs @@ -1185,7 +1185,8 @@ mod tests { &mut app, ActiveRadarrBlock::EditMoviePrompt, None, - ).build_edit_movie_params(); + ) + .build_edit_movie_params(); assert_eq!(edit_movie_params, expected_edit_movie_params); assert!(app.data.radarr_data.edit_movie_modal.is_none()); diff --git a/src/handlers/radarr_handlers/library/movie_details_handler.rs b/src/handlers/radarr_handlers/library/movie_details_handler.rs index b0c3e77..f9c7218 100644 --- a/src/handlers/radarr_handlers/library/movie_details_handler.rs +++ b/src/handlers/radarr_handlers/library/movie_details_handler.rs @@ -6,7 +6,9 @@ use crate::event::Key; use crate::handle_table_events; use crate::handlers::table_handler::TableHandlingConfig; use crate::handlers::{handle_prompt_toggle, KeyEventHandler}; -use crate::models::radarr_models::{Credit, MovieHistoryItem, RadarrRelease, RadarrReleaseDownloadBody}; +use crate::models::radarr_models::{ + Credit, MovieHistoryItem, RadarrRelease, RadarrReleaseDownloadBody, +}; use crate::models::servarr_data::radarr::radarr_data::{ ActiveRadarrBlock, EDIT_MOVIE_SELECTION_BLOCKS, MOVIE_DETAILS_BLOCKS, }; @@ -79,15 +81,14 @@ impl<'a, 'b> MovieDetailsHandler<'a, 'b> { .movie_crew, Credit ); - + fn build_radarr_release_download_body(&self) -> RadarrReleaseDownloadBody { let movie_id = self.app.data.radarr_data.movies.current_selection().id; let (guid, indexer_id) = { let RadarrRelease { - guid, - indexer_id, - .. - } = self.app + guid, indexer_id, .. + } = self + .app .data .radarr_data .movie_details_modal @@ -105,6 +106,10 @@ impl<'a, 'b> MovieDetailsHandler<'a, 'b> { movie_id, } } + + fn extract_movie_id(&self) -> i64 { + self.app.data.radarr_data.movies.current_selection().id + } } impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler<'a, 'b> { @@ -266,7 +271,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler< ActiveRadarrBlock::AutomaticallySearchMoviePrompt => { if self.app.data.radarr_data.prompt_confirm { self.app.data.radarr_data.prompt_confirm_action = - Some(RadarrEvent::TriggerAutomaticSearch(None)); + Some(RadarrEvent::TriggerAutomaticSearch(self.extract_movie_id())); } self.app.pop_navigation_stack(); @@ -285,8 +290,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler< } ActiveRadarrBlock::ManualSearchConfirmPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = - Some(RadarrEvent::DownloadRelease(self.build_radarr_release_download_body())); + self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DownloadRelease( + self.build_radarr_release_download_body(), + )); } self.app.pop_navigation_stack(); @@ -359,7 +365,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler< { self.app.data.radarr_data.prompt_confirm = true; self.app.data.radarr_data.prompt_confirm_action = - Some(RadarrEvent::TriggerAutomaticSearch(None)); + Some(RadarrEvent::TriggerAutomaticSearch(self.extract_movie_id())); self.app.pop_navigation_stack(); } @@ -371,7 +377,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler< } ActiveRadarrBlock::ManualSearchConfirmPrompt if key == DEFAULT_KEYBINDINGS.confirm.key => { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DownloadRelease(self.build_radarr_release_download_body())); + self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::DownloadRelease( + self.build_radarr_release_download_body(), + )); self.app.pop_navigation_stack(); } diff --git a/src/handlers/radarr_handlers/library/movie_details_handler_tests.rs b/src/handlers/radarr_handlers/library/movie_details_handler_tests.rs index d870d28..152bd9b 100644 --- a/src/handlers/radarr_handlers/library/movie_details_handler_tests.rs +++ b/src/handlers/radarr_handlers/library/movie_details_handler_tests.rs @@ -361,7 +361,7 @@ mod tests { #[rstest] #[case( ActiveRadarrBlock::AutomaticallySearchMoviePrompt, - RadarrEvent::TriggerAutomaticSearch(None) + RadarrEvent::TriggerAutomaticSearch(1) )] #[case( ActiveRadarrBlock::UpdateAndScanPrompt, @@ -388,11 +388,7 @@ mod tests { .movie_releases .set_items(vec![release()]); app.data.radarr_data.movie_details_modal = Some(movie_details_modal); - app - .data - .radarr_data - .movies - .set_items(vec![movie()]); + app.data.radarr_data.movies.set_items(vec![movie()]); app.data.radarr_data.prompt_confirm = true; app.push_navigation_stack(ActiveRadarrBlock::MovieDetails.into()); app.push_navigation_stack(prompt_block.into()); @@ -786,7 +782,7 @@ mod tests { #[rstest] #[case( ActiveRadarrBlock::AutomaticallySearchMoviePrompt, - RadarrEvent::TriggerAutomaticSearch(None) + RadarrEvent::TriggerAutomaticSearch(1) )] #[case( ActiveRadarrBlock::UpdateAndScanPrompt, @@ -813,11 +809,7 @@ mod tests { .movie_releases .set_items(vec![release()]); app.data.radarr_data.movie_details_modal = Some(movie_details_modal); - app - .data - .radarr_data - .movies - .set_items(vec![movie()]); + app.data.radarr_data.movies.set_items(vec![movie()]); app.data.radarr_data.prompt_confirm = true; app.push_navigation_stack(ActiveRadarrBlock::MovieDetails.into()); app.push_navigation_stack(prompt_block.into()); @@ -850,11 +842,7 @@ mod tests { .movie_releases .set_items(vec![release()]); app.data.radarr_data.movie_details_modal = Some(movie_details_modal); - app - .data - .radarr_data - .movies - .set_items(vec![movie()]); + app.data.radarr_data.movies.set_items(vec![movie()]); let expected_body = RadarrReleaseDownloadBody { guid: "1234".to_owned(), indexer_id: 2, @@ -866,11 +854,28 @@ mod tests { &mut app, ActiveRadarrBlock::ManualSearchConfirmPrompt, None, - ).build_radarr_release_download_body(); + ) + .build_radarr_release_download_body(); assert_eq!(body, expected_body); } + #[test] + fn test_extract_movie_id() { + let mut app = App::default(); + app.data.radarr_data.movies.set_items(vec![movie()]); + + let movie_id = MovieDetailsHandler::with( + DEFAULT_KEYBINDINGS.esc.key, + &mut app, + ActiveRadarrBlock::AutomaticallySearchMoviePrompt, + None, + ) + .extract_movie_id(); + + assert_eq!(movie_id, 1); + } + #[test] fn test_releases_sorting_options_source() { let expected_cmp_fn: fn(&RadarrRelease, &RadarrRelease) -> Ordering = diff --git a/src/handlers/radarr_handlers/root_folders/mod.rs b/src/handlers/radarr_handlers/root_folders/mod.rs index a605645..6e8aa97 100644 --- a/src/handlers/radarr_handlers/root_folders/mod.rs +++ b/src/handlers/radarr_handlers/root_folders/mod.rs @@ -28,9 +28,10 @@ impl<'a, 'b> RootFoldersHandler<'a, 'b> { self.app.data.radarr_data.root_folders, RootFolder ); - + fn build_add_root_folder_body(&mut self) -> AddRootFolderBody { - let path = self.app + let path = self + .app .data .radarr_data .edit_root_folder @@ -43,9 +44,10 @@ impl<'a, 'b> RootFoldersHandler<'a, 'b> { AddRootFolderBody { path } } - + fn extract_root_folder_id(&mut self) -> i64 { - self.app + self + .app .data .radarr_data .root_folders @@ -164,7 +166,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for RootFoldersHandler<' .text .is_empty() => { - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::AddRootFolder(self.build_add_root_folder_body())); + self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::AddRootFolder( + self.build_add_root_folder_body(), + )); self.app.data.radarr_data.prompt_confirm = true; self.app.should_ignore_quit_key = false; self.app.pop_navigation_stack(); diff --git a/src/handlers/radarr_handlers/root_folders/root_folders_handler_tests.rs b/src/handlers/radarr_handlers/root_folders/root_folders_handler_tests.rs index 205b521..984c243 100644 --- a/src/handlers/radarr_handlers/root_folders/root_folders_handler_tests.rs +++ b/src/handlers/radarr_handlers/root_folders/root_folders_handler_tests.rs @@ -252,7 +252,9 @@ mod tests { #[test] fn test_add_root_folder_prompt_confirm_submit() { let mut app = App::default(); - let expected_add_root_folder_body = AddRootFolderBody { path: "Test".to_owned() }; + let expected_add_root_folder_body = AddRootFolderBody { + path: "Test".to_owned(), + }; app .data .radarr_data @@ -646,34 +648,38 @@ mod tests { fn test_build_add_root_folder_body() { let mut app = App::default(); app.data.radarr_data.edit_root_folder = Some("/nfs/test".into()); - let expected_add_root_folder_body = AddRootFolderBody { path: "/nfs/test".to_owned() }; + let expected_add_root_folder_body = AddRootFolderBody { + path: "/nfs/test".to_owned(), + }; let actual_add_root_folder_body = RootFoldersHandler::with( DEFAULT_KEYBINDINGS.esc.key, &mut app, ActiveRadarrBlock::RootFolders, None, - ).build_add_root_folder_body(); + ) + .build_add_root_folder_body(); assert_eq!(actual_add_root_folder_body, expected_add_root_folder_body); - assert!(app - .data - .radarr_data - .edit_root_folder - .is_none()); + assert!(app.data.radarr_data.edit_root_folder.is_none()); } #[test] fn test_extract_root_folder_id() { let mut app = App::default(); - app.data.radarr_data.root_folders.set_items(vec![root_folder()]); + app + .data + .radarr_data + .root_folders + .set_items(vec![root_folder()]); let root_folder_id = RootFoldersHandler::with( DEFAULT_KEYBINDINGS.esc.key, &mut app, ActiveRadarrBlock::RootFolders, None, - ).extract_root_folder_id(); + ) + .extract_root_folder_id(); assert_eq!(root_folder_id, 1); } diff --git a/src/handlers/radarr_handlers/system/system_details_handler.rs b/src/handlers/radarr_handlers/system/system_details_handler.rs index 85ac45e..4052635 100644 --- a/src/handlers/radarr_handlers/system/system_details_handler.rs +++ b/src/handlers/radarr_handlers/system/system_details_handler.rs @@ -21,7 +21,13 @@ pub(super) struct SystemDetailsHandler<'a, 'b> { impl<'a, 'b> SystemDetailsHandler<'a, 'b> { fn extract_task_name(&self) -> RadarrTaskName { - self.app.data.radarr_data.tasks.current_selection().task_name + self + .app + .data + .radarr_data + .tasks + .current_selection() + .task_name } } @@ -144,7 +150,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for SystemDetailsHandler } ActiveRadarrBlock::SystemTaskStartConfirmPrompt => { if self.app.data.radarr_data.prompt_confirm { - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::StartTask(self.extract_task_name())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::StartTask(self.extract_task_name())); } self.app.pop_navigation_stack(); @@ -181,7 +188,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for SystemDetailsHandler && self.key == DEFAULT_KEYBINDINGS.confirm.key { self.app.data.radarr_data.prompt_confirm = true; - self.app.data.radarr_data.prompt_confirm_action = Some(RadarrEvent::StartTask(self.extract_task_name())); + self.app.data.radarr_data.prompt_confirm_action = + Some(RadarrEvent::StartTask(self.extract_task_name())); self.app.pop_navigation_stack(); } } 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 7b4ef7d..e12a610 100644 --- a/src/handlers/radarr_handlers/system/system_details_handler_tests.rs +++ b/src/handlers/radarr_handlers/system/system_details_handler_tests.rs @@ -952,7 +952,8 @@ mod tests { &mut app, ActiveRadarrBlock::SystemTasks, None, - ).extract_task_name(); + ) + .extract_task_name(); assert_eq!(task_name, RadarrTaskName::default()); } diff --git a/src/network/radarr_network.rs b/src/network/radarr_network.rs index 3acc59b..f109672 100644 --- a/src/network/radarr_network.rs +++ b/src/network/radarr_network.rs @@ -73,7 +73,7 @@ pub enum RadarrEvent { StartTask(RadarrTaskName), TestIndexer(i64), TestAllIndexers, - TriggerAutomaticSearch(Option), + TriggerAutomaticSearch(i64), UpdateAllMovies, UpdateAndScan(Option), UpdateCollections, @@ -1636,7 +1636,9 @@ impl<'a, 'b> Network<'a, 'b> { info!("Starting Radarr task: {task_name}"); - let body = CommandBody { name: task_name.to_string() }; + let body = CommandBody { + name: task_name.to_string(), + }; let request_props = self .request_props_from(event, RequestMethod::Post, Some(body), None, None) @@ -1742,13 +1744,12 @@ impl<'a, 'b> Network<'a, 'b> { .await } - async fn trigger_automatic_movie_search(&mut self, movie_id: Option) -> Result { + async fn trigger_automatic_movie_search(&mut self, movie_id: i64) -> Result { let event = RadarrEvent::TriggerAutomaticSearch(movie_id); - let (id, _) = self.extract_movie_id(movie_id).await; - info!("Searching indexers for movie with ID: {id}"); + info!("Searching indexers for movie with ID: {movie_id}"); let body = MovieCommandBody { name: "MoviesSearch".to_owned(), - movie_ids: vec![id], + movie_ids: vec![movie_id], }; let request_props = self diff --git a/src/network/radarr_network_tests.rs b/src/network/radarr_network_tests.rs index ec61676..31c281b 100644 --- a/src/network/radarr_network_tests.rs +++ b/src/network/radarr_network_tests.rs @@ -14,15 +14,14 @@ mod test { use super::super::*; use crate::models::radarr_models::{ - AddMovieOptions, - BlocklistItem, BlocklistItemMovie, CollectionMovie, EditCollectionParams, EditMovieParams, - IndexerSettings, MediaInfo, MinimumAvailability, MovieCollection, MovieFile, RadarrTaskName, Rating, RatingsList + AddMovieOptions, BlocklistItem, BlocklistItemMovie, CollectionMovie, EditCollectionParams, + EditMovieParams, IndexerSettings, MediaInfo, MinimumAvailability, MovieCollection, MovieFile, + RadarrTaskName, Rating, RatingsList, }; use crate::models::servarr_data::radarr::modals::EditMovieModal; use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock; use crate::models::servarr_models::{ - EditIndexerParams, - HostConfig, IndexerField, Language, Quality, QualityWrapper, + EditIndexerParams, HostConfig, IndexerField, Language, Quality, QualityWrapper, }; use crate::models::stateful_table::SortOption; use crate::models::HorizontallyScrollableText; @@ -130,14 +129,23 @@ mod test { #[rstest] fn test_resource_collection( - #[values(RadarrEvent::GetCollections, RadarrEvent::EditCollection(EditCollectionParams::default()))] event: RadarrEvent, + #[values( + RadarrEvent::GetCollections, + RadarrEvent::EditCollection(EditCollectionParams::default()) + )] + event: RadarrEvent, ) { assert_str_eq!(event.resource(), "/collection"); } #[rstest] fn test_resource_indexer( - #[values(RadarrEvent::GetIndexers, RadarrEvent::DeleteIndexer(0), RadarrEvent::EditIndexer(EditIndexerParams::default()))] event: RadarrEvent, + #[values( + RadarrEvent::GetIndexers, + RadarrEvent::DeleteIndexer(0), + RadarrEvent::EditIndexer(EditIndexerParams::default()) + )] + event: RadarrEvent, ) { assert_str_eq!(event.resource(), "/indexer"); } @@ -179,7 +187,10 @@ mod test { #[rstest] fn test_resource_release( - #[values(RadarrEvent::GetReleases(0), RadarrEvent::DownloadRelease(RadarrReleaseDownloadBody::default()))] + #[values( + RadarrEvent::GetReleases(0), + RadarrEvent::DownloadRelease(RadarrReleaseDownloadBody::default()) + )] event: RadarrEvent, ) { assert_str_eq!(event.resource(), "/release"); @@ -204,7 +215,7 @@ mod test { #[values( RadarrEvent::StartTask(RadarrTaskName::default()), RadarrEvent::GetQueuedEvents, - RadarrEvent::TriggerAutomaticSearch(None), + RadarrEvent::TriggerAutomaticSearch(0), RadarrEvent::UpdateAndScan(None), RadarrEvent::UpdateAllMovies, RadarrEvent::UpdateDownloads, @@ -670,7 +681,9 @@ mod test { let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new()); if let RadarrSerdeable::Value(value) = network - .handle_radarr_event(RadarrEvent::StartTask(RadarrTaskName::ApplicationCheckUpdate)) + .handle_radarr_event(RadarrEvent::StartTask( + RadarrTaskName::ApplicationCheckUpdate, + )) .await .unwrap() { @@ -950,39 +963,7 @@ mod test { })), Some(json!({})), None, - RadarrEvent::TriggerAutomaticSearch(None), - None, - None, - ) - .await; - app_arc - .lock() - .await - .data - .radarr_data - .movies - .set_items(vec![movie()]); - let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new()); - - assert!(network - .handle_radarr_event(RadarrEvent::TriggerAutomaticSearch(None)) - .await - .is_ok()); - - async_server.assert_async().await; - } - - #[tokio::test] - async fn test_handle_trigger_automatic_movie_search_event_uses_provided_id() { - let (async_server, app_arc, _server) = mock_servarr_api( - RequestMethod::Post, - Some(json!({ - "name": "MoviesSearch", - "movieIds": [ 1 ] - })), - Some(json!({})), - None, - RadarrEvent::TriggerAutomaticSearch(None), + RadarrEvent::TriggerAutomaticSearch(1), None, None, ) @@ -990,7 +971,7 @@ mod test { let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new()); assert!(network - .handle_radarr_event(RadarrEvent::TriggerAutomaticSearch(Some(1))) + .handle_radarr_event(RadarrEvent::TriggerAutomaticSearch(1)) .await .is_ok()); @@ -2894,7 +2875,7 @@ mod test { None, None, ) - .await; + .await; app_arc.lock().await.data.radarr_data.tags_map = BiMap::from_iter([(1, "usenet".to_owned()), (2, "testing".to_owned())]); let add_movie_body = AddMovieBody { @@ -2935,7 +2916,9 @@ mod test { None, ) .await; - let add_root_folder_body = AddRootFolderBody { path: "/nfs/test".to_owned() }; + let add_root_folder_body = AddRootFolderBody { + path: "/nfs/test".to_owned(), + }; let mut network = Network::new(&app_arc, CancellationToken::new(), Client::new()); assert!(network @@ -3220,7 +3203,11 @@ mod test { let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1?forceSave=true", RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1?forceSave=true", + RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234") @@ -3241,7 +3228,8 @@ mod test { } #[tokio::test] - async fn test_handle_edit_radarr_indexer_event_does_not_overwrite_tags_vec_if_tag_input_string_is_none() { + async fn test_handle_edit_radarr_indexer_event_does_not_overwrite_tags_vec_if_tag_input_string_is_none( + ) { let indexer_details_json = json!({ "enableRss": true, "enableAutomaticSearch": true, @@ -3310,11 +3298,15 @@ mod test { Some("/1"), None, ) - .await; + .await; let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1?forceSave=true", RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1?forceSave=true", + RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234") @@ -3401,7 +3393,11 @@ mod test { let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1?forceSave=true", RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1?forceSave=true", + RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234") @@ -3495,7 +3491,11 @@ mod test { let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1?forceSave=true", RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1?forceSave=true", + RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234") @@ -3516,8 +3516,7 @@ mod test { } #[tokio::test] - async fn test_handle_edit_radarr_indexer_event_defaults_to_previous_values( - ) { + async fn test_handle_edit_radarr_indexer_event_defaults_to_previous_values() { let indexer_details_json = json!({ "enableRss": true, "enableAutomaticSearch": true, @@ -3559,7 +3558,11 @@ mod test { let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1?forceSave=true", RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1?forceSave=true", + RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234") @@ -3578,8 +3581,7 @@ mod test { } #[tokio::test] - async fn test_handle_edit_radarr_indexer_event_clears_tags_when_clear_tags_is_true( - ) { + async fn test_handle_edit_radarr_indexer_event_clears_tags_when_clear_tags_is_true() { let indexer_details_json = json!({ "enableRss": true, "enableAutomaticSearch": true, @@ -3645,7 +3647,11 @@ mod test { let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1?forceSave=true", RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1?forceSave=true", + RadarrEvent::EditIndexer(edit_indexer_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234") @@ -3694,7 +3700,11 @@ mod test { let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1", RadarrEvent::EditMovie(edit_movie_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1", + RadarrEvent::EditMovie(edit_movie_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234") @@ -3740,11 +3750,15 @@ mod test { Some("/1"), None, ) - .await; + .await; let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1", RadarrEvent::EditMovie(edit_movie_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1", + RadarrEvent::EditMovie(edit_movie_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234") @@ -3784,7 +3798,11 @@ mod test { let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1", RadarrEvent::EditMovie(edit_movie_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1", + RadarrEvent::EditMovie(edit_movie_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234") @@ -3825,7 +3843,11 @@ mod test { let async_edit_server = server .mock( "PUT", - format!("/api/v3{}/1", RadarrEvent::EditMovie(edit_movie_params.clone()).resource()).as_str(), + format!( + "/api/v3{}/1", + RadarrEvent::EditMovie(edit_movie_params.clone()).resource() + ) + .as_str(), ) .with_status(202) .match_header("X-Api-Key", "test1234")