From 0612a02d680e16aaedb18f9cb6bb2c542ec899be Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Tue, 17 Dec 2024 14:19:12 -0700 Subject: [PATCH] fix(add_movie_handler_tests): Added in a forgotten test for the build_add_movie_body function --- .../library/add_movie_handler_tests.rs | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) 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 1590e91..f56efd8 100644 --- a/src/handlers/radarr_handlers/library/add_movie_handler_tests.rs +++ b/src/handlers/radarr_handlers/library/add_movie_handler_tests.rs @@ -1,17 +1,24 @@ #[cfg(test)] mod tests { + use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::add_movie_search_result; + use crate::models::stateful_table::StatefulTable; use pretty_assertions::assert_str_eq; + use rstest::rstest; use strum::IntoEnumIterator; use crate::app::key_binding::DEFAULT_KEYBINDINGS; use crate::app::App; use crate::event::Key; use crate::handlers::radarr_handlers::library::add_movie_handler::AddMovieHandler; + use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::add_movie_body; + use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::collection_movie; use crate::handlers::KeyEventHandler; use crate::models::radarr_models::{AddMovieSearchResult, MinimumAvailability, MovieMonitor}; + use crate::models::servarr_data::radarr::modals::AddMovieModal; use crate::models::servarr_data::radarr::radarr_data::{ActiveRadarrBlock, ADD_MOVIE_BLOCKS}; use crate::models::servarr_models::RootFolder; use crate::models::HorizontallyScrollableText; + use bimap::BiMap; mod test_handle_scroll_up_and_down { use pretty_assertions::assert_eq; @@ -1516,6 +1523,66 @@ mod tests { }); } + #[rstest] + fn test_build_add_movie_body(#[values(true, false)] movie_details_context: bool) { + let mut app = App::default(); + let mut add_movie_modal = AddMovieModal { + tags: "usenet, testing".into(), + ..AddMovieModal::default() + }; + add_movie_modal.root_folder_list.set_items(vec![ + RootFolder { + id: 1, + path: "/nfs".to_owned(), + accessible: true, + free_space: 219902325555200, + unmapped_folders: None, + }, + RootFolder { + id: 2, + path: "/nfs2".to_owned(), + accessible: true, + free_space: 21990232555520, + unmapped_folders: None, + }, + ]); + add_movie_modal.root_folder_list.state.select(Some(1)); + add_movie_modal + .quality_profile_list + .set_items(vec!["HD - 1080p".to_owned()]); + add_movie_modal + .monitor_list + .set_items(Vec::from_iter(MovieMonitor::iter())); + add_movie_modal + .minimum_availability_list + .set_items(Vec::from_iter(MinimumAvailability::iter())); + app.data.radarr_data.add_movie_modal = Some(add_movie_modal); + app.data.radarr_data.quality_profile_map = BiMap::from_iter([(2222, "HD - 1080p".to_owned())]); + let context = if movie_details_context { + app + .data + .radarr_data + .collection_movies + .set_items(vec![collection_movie()]); + Some(ActiveRadarrBlock::CollectionDetails) + } else { + let mut add_searched_movies = StatefulTable::default(); + add_searched_movies.set_items(vec![add_movie_search_result()]); + app.data.radarr_data.add_searched_movies = Some(add_searched_movies); + None + }; + + let actual_add_movie_body = AddMovieHandler::with( + DEFAULT_KEYBINDINGS.confirm.key, + &mut app, + ActiveRadarrBlock::AddMoviePrompt, + context, + ) + .build_add_movie_body(); + + assert_eq!(actual_add_movie_body, add_movie_body()); + } + #[test] fn test_add_movie_handler_is_not_ready_when_loading() { let mut app = App::default();