diff --git a/src/app/key_binding.rs b/src/app/key_binding.rs index f58a71d..8bda386 100644 --- a/src/app/key_binding.rs +++ b/src/app/key_binding.rs @@ -19,6 +19,7 @@ generate_keybindings! { previous_servarr, clear, search, + auto_search, settings, filter, sort, @@ -82,6 +83,10 @@ pub const DEFAULT_KEYBINDINGS: KeyBindings = KeyBindings { key: Key::Char('c'), desc: "clear", }, + auto_search: KeyBinding { + key: Key::Char('S'), + desc: "auto search", + }, search: KeyBinding { key: Key::Char('s'), desc: "search", diff --git a/src/app/key_binding_tests.rs b/src/app/key_binding_tests.rs index 64612ce..2a4ea68 100644 --- a/src/app/key_binding_tests.rs +++ b/src/app/key_binding_tests.rs @@ -16,6 +16,7 @@ mod test { #[case(DEFAULT_KEYBINDINGS.next_servarr, Key::Tab, "next servarr")] #[case(DEFAULT_KEYBINDINGS.previous_servarr, Key::BackTab, "previous servarr")] #[case(DEFAULT_KEYBINDINGS.clear, Key::Char('c'), "clear")] + #[case(DEFAULT_KEYBINDINGS.auto_search, Key::Char('S'), "auto search")] #[case(DEFAULT_KEYBINDINGS.search, Key::Char('s'), "search")] #[case(DEFAULT_KEYBINDINGS.settings, Key::Char('s'), "settings")] #[case(DEFAULT_KEYBINDINGS.filter, Key::Char('f'), "filter")] diff --git a/src/app/radarr/radarr_context_clues.rs b/src/app/radarr/radarr_context_clues.rs index 4f92313..2c37e26 100644 --- a/src/app/radarr/radarr_context_clues.rs +++ b/src/app/radarr/radarr_context_clues.rs @@ -42,7 +42,10 @@ pub static MOVIE_DETAILS_CONTEXT_CLUES: [ContextClue; 5] = [ ), (DEFAULT_KEYBINDINGS.update, DEFAULT_KEYBINDINGS.update.desc), (DEFAULT_KEYBINDINGS.edit, DEFAULT_KEYBINDINGS.edit.desc), - (DEFAULT_KEYBINDINGS.search, "auto search"), + ( + DEFAULT_KEYBINDINGS.auto_search, + DEFAULT_KEYBINDINGS.auto_search.desc, + ), (DEFAULT_KEYBINDINGS.esc, DEFAULT_KEYBINDINGS.esc.desc), ]; @@ -54,7 +57,10 @@ pub static MANUAL_MOVIE_SEARCH_CONTEXT_CLUES: [ContextClue; 6] = [ (DEFAULT_KEYBINDINGS.update, DEFAULT_KEYBINDINGS.update.desc), (DEFAULT_KEYBINDINGS.edit, DEFAULT_KEYBINDINGS.edit.desc), (DEFAULT_KEYBINDINGS.sort, DEFAULT_KEYBINDINGS.sort.desc), - (DEFAULT_KEYBINDINGS.search, "auto search"), + ( + DEFAULT_KEYBINDINGS.auto_search, + DEFAULT_KEYBINDINGS.auto_search.desc, + ), (DEFAULT_KEYBINDINGS.esc, DEFAULT_KEYBINDINGS.esc.desc), ]; diff --git a/src/app/radarr/radarr_context_clues_tests.rs b/src/app/radarr/radarr_context_clues_tests.rs index 4cebc74..d8ca11b 100644 --- a/src/app/radarr/radarr_context_clues_tests.rs +++ b/src/app/radarr/radarr_context_clues_tests.rs @@ -133,8 +133,8 @@ mod tests { let (key_binding, description) = movie_details_context_clues_iter.next().unwrap(); - assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.search); - assert_str_eq!(*description, "auto search"); + assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.auto_search); + assert_str_eq!(*description, DEFAULT_KEYBINDINGS.auto_search.desc); let (key_binding, description) = movie_details_context_clues_iter.next().unwrap(); @@ -169,8 +169,8 @@ mod tests { let (key_binding, description) = manual_movie_search_context_clues_iter.next().unwrap(); - assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.search); - assert_str_eq!(*description, "auto search"); + assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.auto_search); + assert_str_eq!(*description, DEFAULT_KEYBINDINGS.auto_search.desc); let (key_binding, description) = manual_movie_search_context_clues_iter.next().unwrap(); diff --git a/src/app/sonarr/sonarr_context_clues.rs b/src/app/sonarr/sonarr_context_clues.rs index f9c64a0..2db8ff7 100644 --- a/src/app/sonarr/sonarr_context_clues.rs +++ b/src/app/sonarr/sonarr_context_clues.rs @@ -25,6 +25,21 @@ pub static SERIES_CONTEXT_CLUES: [ContextClue; 10] = [ (DEFAULT_KEYBINDINGS.esc, "cancel filter"), ]; +pub static SERIES_DETAILS_CONTEXT_CLUES: [ContextClue; 6] = [ + ( + DEFAULT_KEYBINDINGS.refresh, + DEFAULT_KEYBINDINGS.refresh.desc, + ), + (DEFAULT_KEYBINDINGS.submit, "season details"), + (DEFAULT_KEYBINDINGS.search, DEFAULT_KEYBINDINGS.search.desc), + (DEFAULT_KEYBINDINGS.update, DEFAULT_KEYBINDINGS.update.desc), + ( + DEFAULT_KEYBINDINGS.auto_search, + DEFAULT_KEYBINDINGS.auto_search.desc, + ), + (DEFAULT_KEYBINDINGS.esc, DEFAULT_KEYBINDINGS.esc.desc), +]; + pub static HISTORY_CONTEXT_CLUES: [ContextClue; 5] = [ (DEFAULT_KEYBINDINGS.sort, DEFAULT_KEYBINDINGS.sort.desc), (DEFAULT_KEYBINDINGS.search, DEFAULT_KEYBINDINGS.search.desc), @@ -36,17 +51,6 @@ pub static HISTORY_CONTEXT_CLUES: [ContextClue; 5] = [ (DEFAULT_KEYBINDINGS.esc, "cancel filter"), ]; -pub static SERIES_DETAILS_CONTEXT_CLUES: [ContextClue; 5] = [ - ( - DEFAULT_KEYBINDINGS.refresh, - DEFAULT_KEYBINDINGS.refresh.desc, - ), - (DEFAULT_KEYBINDINGS.update, DEFAULT_KEYBINDINGS.update.desc), - (DEFAULT_KEYBINDINGS.submit, "details"), - (DEFAULT_KEYBINDINGS.search, "auto search"), - (DEFAULT_KEYBINDINGS.esc, DEFAULT_KEYBINDINGS.esc.desc), -]; - pub static SEASON_DETAILS_CONTEXT_CLUES: [ContextClue; 5] = [ ( DEFAULT_KEYBINDINGS.refresh, diff --git a/src/app/sonarr/sonarr_context_clues_tests.rs b/src/app/sonarr/sonarr_context_clues_tests.rs index 2c8b485..0ad23ef 100644 --- a/src/app/sonarr/sonarr_context_clues_tests.rs +++ b/src/app/sonarr/sonarr_context_clues_tests.rs @@ -128,18 +128,23 @@ mod tests { let (key_binding, description) = series_details_context_clues_iter.next().unwrap(); + assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.submit); + assert_str_eq!(*description, "season details"); + + let (key_binding, description) = series_details_context_clues_iter.next().unwrap(); + + assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.search); + assert_str_eq!(*description, DEFAULT_KEYBINDINGS.search.desc); + + let (key_binding, description) = series_details_context_clues_iter.next().unwrap(); + assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.update); assert_str_eq!(*description, DEFAULT_KEYBINDINGS.update.desc); let (key_binding, description) = series_details_context_clues_iter.next().unwrap(); - assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.submit); - assert_str_eq!(*description, "details"); - - let (key_binding, description) = series_details_context_clues_iter.next().unwrap(); - - assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.search); - assert_str_eq!(*description, "auto search"); + assert_eq!(*key_binding, DEFAULT_KEYBINDINGS.auto_search); + assert_str_eq!(*description, DEFAULT_KEYBINDINGS.auto_search.desc); let (key_binding, description) = series_details_context_clues_iter.next().unwrap(); diff --git a/src/handlers/radarr_handlers/library/movie_details_handler.rs b/src/handlers/radarr_handlers/library/movie_details_handler.rs index fc81c2f..ef9e890 100644 --- a/src/handlers/radarr_handlers/library/movie_details_handler.rs +++ b/src/handlers/radarr_handlers/library/movie_details_handler.rs @@ -432,7 +432,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for MovieDetailsHandler< | ActiveRadarrBlock::Cast | ActiveRadarrBlock::Crew | ActiveRadarrBlock::ManualSearch => match self.key { - _ if key == DEFAULT_KEYBINDINGS.search.key => { + _ if key == DEFAULT_KEYBINDINGS.auto_search.key => { self .app .push_navigation_stack(ActiveRadarrBlock::AutomaticallySearchMoviePrompt.into()); 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 7f84f11..290ef67 100644 --- a/src/handlers/radarr_handlers/library/movie_details_handler_tests.rs +++ b/src/handlers/radarr_handlers/library/movie_details_handler_tests.rs @@ -1455,6 +1455,7 @@ mod tests { use strum::IntoEnumIterator; use crate::handlers::radarr_handlers::library::movie_details_handler::releases_sorting_options; + use crate::models::radarr_models::RadarrRelease; use crate::models::radarr_models::{MinimumAvailability, Movie}; use crate::models::servarr_data::radarr::modals::MovieDetailsModal; use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data; @@ -1467,7 +1468,7 @@ mod tests { use super::*; #[rstest] - fn test_search_key( + fn test_auto_search_key( #[values( ActiveRadarrBlock::MovieDetails, ActiveRadarrBlock::MovieHistory, @@ -1478,8 +1479,6 @@ mod tests { )] active_radarr_block: ActiveRadarrBlock, ) { - use crate::models::radarr_models::RadarrRelease; - let mut app = App::default(); let mut modal = MovieDetailsModal { movie_details: ScrollableText::with_string("Test".to_owned()), @@ -1496,7 +1495,7 @@ mod tests { app.data.radarr_data.movie_details_modal = Some(modal); MovieDetailsHandler::with( - DEFAULT_KEYBINDINGS.search.key, + DEFAULT_KEYBINDINGS.auto_search.key, &mut app, active_radarr_block, None, @@ -1510,7 +1509,7 @@ mod tests { } #[rstest] - fn test_search_key_no_op_when_not_ready( + fn test_auto_search_key_no_op_when_not_ready( #[values( ActiveRadarrBlock::MovieDetails, ActiveRadarrBlock::MovieHistory, @@ -1530,7 +1529,7 @@ mod tests { }); MovieDetailsHandler::with( - DEFAULT_KEYBINDINGS.search.key, + DEFAULT_KEYBINDINGS.auto_search.key, &mut app, active_radarr_block, None,