feat(app): Model and modal support for the season and episode details popups

This commit is contained in:
2024-12-09 15:15:09 -07:00
parent 6427a80bd1
commit f3b7f155b7
8 changed files with 240 additions and 66 deletions
+37 -18
View File
@@ -7,9 +7,10 @@ mod tests {
use crate::app::context_clues::build_context_clue_string;
use crate::app::sonarr::sonarr_context_clues::{
EPISODE_DETAILS_CONTEXT_CLUES, MANUAL_EPISODE_SEARCH_CONTEXTUAL_CONTEXT_CLUES,
DETAILS_CONTEXTUAL_CONTEXT_CLUES, EPISODE_DETAILS_CONTEXT_CLUES, EPISODE_HISTORY_CONTEXT_CLUES,
MANUAL_EPISODE_SEARCH_CONTEXT_CLUES, MANUAL_SEASON_SEARCH_CONTEXT_CLUES,
SEASON_DETAILS_CONTEXT_CLUES,
SEASON_DETAILS_CONTEXTUAL_CONTEXT_CLUES, SEASON_DETAILS_CONTEXT_CLUES,
SEASON_HISTORY_CONTEXT_CLUES,
};
use crate::models::servarr_data::sonarr::modals::{
EditSeriesModal, EpisodeDetailsModal, SeasonDetailsModal,
@@ -274,11 +275,12 @@ mod tests {
);
assert_str_eq!(
episode_details_modal.episode_details_tabs.tabs[1].help,
build_context_clue_string(&EPISODE_DETAILS_CONTEXT_CLUES)
build_context_clue_string(&EPISODE_HISTORY_CONTEXT_CLUES)
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[1].contextual_help,
Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES))
);
assert!(episode_details_modal.episode_details_tabs.tabs[1]
.contextual_help
.is_none());
assert_str_eq!(
episode_details_modal.episode_details_tabs.tabs[2].title,
@@ -310,9 +312,7 @@ mod tests {
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[3].contextual_help,
Some(build_context_clue_string(
&MANUAL_EPISODE_SEARCH_CONTEXTUAL_CONTEXT_CLUES
))
Some(build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES))
);
}
@@ -325,7 +325,7 @@ mod tests {
assert!(season_details_modal.season_releases.is_empty());
assert!(season_details_modal.season_history.is_empty());
assert_eq!(season_details_modal.season_details_tabs.tabs.len(), 2);
assert_eq!(season_details_modal.season_details_tabs.tabs.len(), 3);
assert_str_eq!(
season_details_modal.season_details_tabs.tabs[0].title,
@@ -335,9 +335,10 @@ mod tests {
season_details_modal.season_details_tabs.tabs[0].route,
ActiveSonarrBlock::SeasonDetails.into()
);
assert!(season_details_modal.season_details_tabs.tabs[0]
.help
.is_empty());
assert_str_eq!(
season_details_modal.season_details_tabs.tabs[0].help,
build_context_clue_string(&SEASON_DETAILS_CONTEXTUAL_CONTEXT_CLUES)
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[0].contextual_help,
Some(build_context_clue_string(&SEASON_DETAILS_CONTEXT_CLUES))
@@ -345,17 +346,35 @@ mod tests {
assert_str_eq!(
season_details_modal.season_details_tabs.tabs[1].title,
"Manual Search"
"History"
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[1].route,
ActiveSonarrBlock::ManualSeasonSearch.into()
ActiveSonarrBlock::SeasonHistory.into()
);
assert_str_eq!(
season_details_modal.season_details_tabs.tabs[1].help,
build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES)
);
assert!(season_details_modal.season_details_tabs.tabs[1]
.help
.is_empty());
assert_eq!(
season_details_modal.season_details_tabs.tabs[1].contextual_help,
Some(build_context_clue_string(&SEASON_HISTORY_CONTEXT_CLUES))
);
assert_str_eq!(
season_details_modal.season_details_tabs.tabs[2].title,
"Manual Search"
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[2].route,
ActiveSonarrBlock::ManualSeasonSearch.into()
);
assert_str_eq!(
season_details_modal.season_details_tabs.tabs[2].help,
build_context_clue_string(&DETAILS_CONTEXTUAL_CONTEXT_CLUES)
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[2].contextual_help,
Some(build_context_clue_string(
&MANUAL_SEASON_SEARCH_CONTEXT_CLUES
))