test: Added in unit tests for TUI support for multiple custom named Servarrs
This commit is contained in:
@@ -297,6 +297,10 @@ impl TabState {
|
||||
}
|
||||
|
||||
pub fn get_active_config(&self) -> &Option<ServarrConfig> {
|
||||
if self.tabs.is_empty() {
|
||||
return &None;
|
||||
}
|
||||
|
||||
&self.tabs[self.index].config
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ mod tests {
|
||||
use serde::de::value::I64Deserializer;
|
||||
use serde::de::IntoDeserializer;
|
||||
use serde_json::to_string;
|
||||
|
||||
use crate::app::ServarrConfig;
|
||||
use crate::models::from_f64;
|
||||
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
|
||||
use crate::models::{from_i64, strip_non_search_characters};
|
||||
@@ -512,6 +512,31 @@ mod tests {
|
||||
|
||||
assert_eq!(active_route, second_tab);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_tab_state_get_active_config() {
|
||||
let mut tabs = create_test_tab_routes();
|
||||
tabs[1].config = Some(ServarrConfig {
|
||||
name: Some("Test".to_owned()),
|
||||
..ServarrConfig::default()
|
||||
});
|
||||
let tab_state = TabState { tabs, index: 1 };
|
||||
|
||||
let active_config = tab_state.get_active_config();
|
||||
|
||||
assert!(active_config.is_some());
|
||||
assert_str_eq!(active_config.clone().unwrap().name.unwrap(), "Test");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_tab_state_get_active_config_defaults_to_none() {
|
||||
let tabs = create_test_tab_routes();
|
||||
let tab_state = TabState { tabs, index: 1 };
|
||||
|
||||
let active_config = tab_state.get_active_config();
|
||||
|
||||
assert!(active_config.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_tab_state_get_active_tab_help() {
|
||||
@@ -718,16 +743,18 @@ mod tests {
|
||||
fn create_test_tab_routes() -> Vec<TabRoute> {
|
||||
vec![
|
||||
TabRoute {
|
||||
title: "Test 1",
|
||||
title: "Test 1".to_owned(),
|
||||
route: ActiveRadarrBlock::Movies.into(),
|
||||
help: "Help for Test 1".to_owned(),
|
||||
contextual_help: Some("Contextual Help for Test 1".to_owned()),
|
||||
config: None,
|
||||
},
|
||||
TabRoute {
|
||||
title: "Test 2",
|
||||
title: "Test 2".to_owned(),
|
||||
route: ActiveRadarrBlock::Collections.into(),
|
||||
help: "Help for Test 2".to_owned(),
|
||||
contextual_help: Some("Contextual Help for Test 2".to_owned()),
|
||||
config: None,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
@@ -112,6 +112,7 @@ mod tests {
|
||||
radarr_data.main_tabs.tabs[0].contextual_help,
|
||||
Some(build_context_clue_string(&LIBRARY_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(radarr_data.main_tabs.tabs[0].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.main_tabs.tabs[1].title, "Collections");
|
||||
assert_eq!(
|
||||
@@ -123,6 +124,7 @@ mod tests {
|
||||
radarr_data.main_tabs.tabs[1].contextual_help,
|
||||
Some(build_context_clue_string(&COLLECTIONS_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(radarr_data.main_tabs.tabs[1].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.main_tabs.tabs[2].title, "Downloads");
|
||||
assert_eq!(
|
||||
@@ -134,6 +136,7 @@ mod tests {
|
||||
radarr_data.main_tabs.tabs[2].contextual_help,
|
||||
Some(build_context_clue_string(&DOWNLOADS_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(radarr_data.main_tabs.tabs[2].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.main_tabs.tabs[3].title, "Blocklist");
|
||||
assert_eq!(
|
||||
@@ -145,6 +148,7 @@ mod tests {
|
||||
radarr_data.main_tabs.tabs[3].contextual_help,
|
||||
Some(build_context_clue_string(&BLOCKLIST_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(radarr_data.main_tabs.tabs[3].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.main_tabs.tabs[4].title, "Root Folders");
|
||||
assert_eq!(
|
||||
@@ -156,6 +160,7 @@ mod tests {
|
||||
radarr_data.main_tabs.tabs[4].contextual_help,
|
||||
Some(build_context_clue_string(&ROOT_FOLDERS_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(radarr_data.main_tabs.tabs[4].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.main_tabs.tabs[5].title, "Indexers");
|
||||
assert_eq!(
|
||||
@@ -167,6 +172,7 @@ mod tests {
|
||||
radarr_data.main_tabs.tabs[5].contextual_help,
|
||||
Some(build_context_clue_string(&INDEXERS_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(radarr_data.main_tabs.tabs[5].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.main_tabs.tabs[6].title, "System");
|
||||
assert_eq!(
|
||||
@@ -178,6 +184,7 @@ mod tests {
|
||||
radarr_data.main_tabs.tabs[6].contextual_help,
|
||||
Some(build_context_clue_string(&SYSTEM_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(radarr_data.main_tabs.tabs[6].config, None);
|
||||
|
||||
assert_eq!(radarr_data.movie_info_tabs.tabs.len(), 6);
|
||||
|
||||
@@ -193,6 +200,7 @@ mod tests {
|
||||
assert!(radarr_data.movie_info_tabs.tabs[0]
|
||||
.contextual_help
|
||||
.is_none());
|
||||
assert_eq!(radarr_data.movie_info_tabs.tabs[0].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.movie_info_tabs.tabs[1].title, "History");
|
||||
assert_eq!(
|
||||
@@ -206,6 +214,7 @@ mod tests {
|
||||
assert!(radarr_data.movie_info_tabs.tabs[1]
|
||||
.contextual_help
|
||||
.is_none());
|
||||
assert_eq!(radarr_data.movie_info_tabs.tabs[1].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.movie_info_tabs.tabs[2].title, "File");
|
||||
assert_eq!(
|
||||
@@ -219,6 +228,7 @@ mod tests {
|
||||
assert!(radarr_data.movie_info_tabs.tabs[2]
|
||||
.contextual_help
|
||||
.is_none());
|
||||
assert_eq!(radarr_data.movie_info_tabs.tabs[2].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.movie_info_tabs.tabs[3].title, "Cast");
|
||||
assert_eq!(
|
||||
@@ -232,6 +242,7 @@ mod tests {
|
||||
assert!(radarr_data.movie_info_tabs.tabs[3]
|
||||
.contextual_help
|
||||
.is_none());
|
||||
assert_eq!(radarr_data.movie_info_tabs.tabs[3].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.movie_info_tabs.tabs[4].title, "Crew");
|
||||
assert_eq!(
|
||||
@@ -245,6 +256,7 @@ mod tests {
|
||||
assert!(radarr_data.movie_info_tabs.tabs[4]
|
||||
.contextual_help
|
||||
.is_none());
|
||||
assert_eq!(radarr_data.movie_info_tabs.tabs[4].config, None);
|
||||
|
||||
assert_str_eq!(radarr_data.movie_info_tabs.tabs[5].title, "Manual Search");
|
||||
assert_eq!(
|
||||
@@ -261,6 +273,7 @@ mod tests {
|
||||
&MANUAL_MOVIE_SEARCH_CONTEXTUAL_CONTEXT_CLUES
|
||||
))
|
||||
);
|
||||
assert_eq!(radarr_data.movie_info_tabs.tabs[5].config, None);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -264,6 +264,7 @@ mod tests {
|
||||
assert!(episode_details_modal.episode_details_tabs.tabs[0]
|
||||
.contextual_help
|
||||
.is_none());
|
||||
assert_eq!(episode_details_modal.episode_details_tabs.tabs[0].config, None);
|
||||
|
||||
assert_str_eq!(
|
||||
episode_details_modal.episode_details_tabs.tabs[1].title,
|
||||
@@ -281,6 +282,7 @@ mod tests {
|
||||
episode_details_modal.episode_details_tabs.tabs[1].contextual_help,
|
||||
Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(episode_details_modal.episode_details_tabs.tabs[1].config, None);
|
||||
|
||||
assert_str_eq!(
|
||||
episode_details_modal.episode_details_tabs.tabs[2].title,
|
||||
@@ -297,6 +299,7 @@ mod tests {
|
||||
assert!(episode_details_modal.episode_details_tabs.tabs[2]
|
||||
.contextual_help
|
||||
.is_none());
|
||||
assert_eq!(episode_details_modal.episode_details_tabs.tabs[2].config, None);
|
||||
|
||||
assert_str_eq!(
|
||||
episode_details_modal.episode_details_tabs.tabs[3].title,
|
||||
@@ -314,6 +317,7 @@ mod tests {
|
||||
episode_details_modal.episode_details_tabs.tabs[3].contextual_help,
|
||||
Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(episode_details_modal.episode_details_tabs.tabs[3].config, None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
@@ -346,6 +350,7 @@ mod tests {
|
||||
&SEASON_DETAILS_CONTEXTUAL_CONTEXT_CLUES
|
||||
))
|
||||
);
|
||||
assert_eq!(season_details_modal.season_details_tabs.tabs[0].config, None);
|
||||
|
||||
assert_str_eq!(
|
||||
season_details_modal.season_details_tabs.tabs[1].title,
|
||||
@@ -363,6 +368,7 @@ mod tests {
|
||||
season_details_modal.season_details_tabs.tabs[1].contextual_help,
|
||||
Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(season_details_modal.season_details_tabs.tabs[1].config, None);
|
||||
|
||||
assert_str_eq!(
|
||||
season_details_modal.season_details_tabs.tabs[2].title,
|
||||
@@ -380,5 +386,6 @@ mod tests {
|
||||
season_details_modal.season_details_tabs.tabs[2].contextual_help,
|
||||
Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(season_details_modal.season_details_tabs.tabs[2].config, None);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,6 +128,7 @@ mod tests {
|
||||
sonarr_data.main_tabs.tabs[0].contextual_help,
|
||||
Some(build_context_clue_string(&SERIES_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(sonarr_data.main_tabs.tabs[0].config, None);
|
||||
|
||||
assert_str_eq!(sonarr_data.main_tabs.tabs[1].title, "Downloads");
|
||||
assert_eq!(
|
||||
@@ -139,6 +140,7 @@ mod tests {
|
||||
sonarr_data.main_tabs.tabs[1].contextual_help,
|
||||
Some(build_context_clue_string(&DOWNLOADS_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(sonarr_data.main_tabs.tabs[1].config, None);
|
||||
|
||||
assert_str_eq!(sonarr_data.main_tabs.tabs[2].title, "Blocklist");
|
||||
assert_eq!(
|
||||
@@ -150,6 +152,7 @@ mod tests {
|
||||
sonarr_data.main_tabs.tabs[2].contextual_help,
|
||||
Some(build_context_clue_string(&BLOCKLIST_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(sonarr_data.main_tabs.tabs[2].config, None);
|
||||
|
||||
assert_str_eq!(sonarr_data.main_tabs.tabs[3].title, "History");
|
||||
assert_eq!(
|
||||
@@ -161,6 +164,7 @@ mod tests {
|
||||
sonarr_data.main_tabs.tabs[3].contextual_help,
|
||||
Some(build_context_clue_string(&HISTORY_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(sonarr_data.main_tabs.tabs[3].config, None);
|
||||
|
||||
assert_str_eq!(sonarr_data.main_tabs.tabs[4].title, "Root Folders");
|
||||
assert_eq!(
|
||||
@@ -172,6 +176,7 @@ mod tests {
|
||||
sonarr_data.main_tabs.tabs[4].contextual_help,
|
||||
Some(build_context_clue_string(&ROOT_FOLDERS_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(sonarr_data.main_tabs.tabs[4].config, None);
|
||||
|
||||
assert_str_eq!(sonarr_data.main_tabs.tabs[5].title, "Indexers");
|
||||
assert_eq!(
|
||||
@@ -183,6 +188,7 @@ mod tests {
|
||||
sonarr_data.main_tabs.tabs[5].contextual_help,
|
||||
Some(build_context_clue_string(&INDEXERS_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(sonarr_data.main_tabs.tabs[5].config, None);
|
||||
|
||||
assert_str_eq!(sonarr_data.main_tabs.tabs[6].title, "System");
|
||||
assert_eq!(
|
||||
@@ -194,6 +200,7 @@ mod tests {
|
||||
sonarr_data.main_tabs.tabs[6].contextual_help,
|
||||
Some(build_context_clue_string(&SYSTEM_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(sonarr_data.main_tabs.tabs[6].config, None);
|
||||
|
||||
assert_eq!(sonarr_data.series_info_tabs.tabs.len(), 2);
|
||||
|
||||
@@ -207,6 +214,7 @@ mod tests {
|
||||
sonarr_data.series_info_tabs.tabs[0].contextual_help,
|
||||
Some(build_context_clue_string(&SERIES_DETAILS_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(sonarr_data.series_info_tabs.tabs[0].config, None);
|
||||
|
||||
assert_str_eq!(sonarr_data.series_info_tabs.tabs[1].title, "History");
|
||||
assert_eq!(
|
||||
@@ -218,6 +226,7 @@ mod tests {
|
||||
sonarr_data.series_info_tabs.tabs[1].contextual_help,
|
||||
Some(build_context_clue_string(&SERIES_HISTORY_CONTEXT_CLUES))
|
||||
);
|
||||
assert_eq!(sonarr_data.series_info_tabs.tabs[1].config, None);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user