test: Added in unit tests for TUI support for multiple custom named Servarrs

This commit is contained in:
2025-02-27 19:30:17 -07:00
parent 9b63b10118
commit f87e02cd7c
76 changed files with 1635 additions and 1403 deletions
+4
View File
@@ -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
}
+30 -3
View File
@@ -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);
}
}