test: Updated Rust edition to 2024 and refactored network module tests to be more idiomatic

This commit is contained in:
2025-12-03 14:49:27 -07:00
parent c4e8d64710
commit ad58912baf
257 changed files with 4033 additions and 4380 deletions
@@ -4,8 +4,8 @@ mod test {
use crate::models::servarr_data::radarr::modals::{
AddMovieModal, EditCollectionModal, EditIndexerModal, EditMovieModal,
};
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use crate::models::servarr_data::radarr::radarr_data::RadarrData;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use crate::models::servarr_models::{Indexer, IndexerField, RootFolder};
use crate::models::stateful_table::StatefulTable;
use bimap::BiMap;
@@ -13,9 +13,9 @@ mod tests {
MOVIE_DETAILS_CONTEXT_CLUES,
};
use crate::models::Route;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils;
use crate::models::servarr_data::radarr::radarr_data::{ActiveRadarrBlock, RadarrData};
use crate::models::Route;
use crate::assert_movie_info_tabs_reset;
use crate::models::BlockSelectionState;
@@ -192,9 +192,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[0].route,
ActiveRadarrBlock::MovieDetails.into()
);
assert!(radarr_data.movie_info_tabs.tabs[0]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[0]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[0].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -206,9 +208,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[1].route,
ActiveRadarrBlock::MovieHistory.into()
);
assert!(radarr_data.movie_info_tabs.tabs[1]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[1]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[1].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -220,9 +224,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[2].route,
ActiveRadarrBlock::FileInfo.into()
);
assert!(radarr_data.movie_info_tabs.tabs[2]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[2]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[2].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -234,9 +240,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[3].route,
ActiveRadarrBlock::Cast.into()
);
assert!(radarr_data.movie_info_tabs.tabs[3]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[3]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[3].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -248,9 +256,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[4].route,
ActiveRadarrBlock::Crew.into()
);
assert!(radarr_data.movie_info_tabs.tabs[4]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[4]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[4].contextual_help.unwrap(),
&MOVIE_DETAILS_CONTEXT_CLUES
@@ -262,9 +272,11 @@ mod tests {
radarr_data.movie_info_tabs.tabs[5].route,
ActiveRadarrBlock::ManualSearch.into()
);
assert!(radarr_data.movie_info_tabs.tabs[5]
.contextual_help
.is_some());
assert!(
radarr_data.movie_info_tabs.tabs[5]
.contextual_help
.is_some()
);
assert_eq!(
radarr_data.movie_info_tabs.tabs[5].contextual_help.unwrap(),
&MANUAL_MOVIE_SEARCH_CONTEXT_CLUES
@@ -277,12 +289,12 @@ mod tests {
use pretty_assertions::assert_eq;
use crate::models::servarr_data::radarr::radarr_data::{
ActiveRadarrBlock, ADD_MOVIE_BLOCKS, ADD_MOVIE_SELECTION_BLOCKS, BLOCKLIST_BLOCKS,
COLLECTIONS_BLOCKS, COLLECTION_DETAILS_BLOCKS, DELETE_MOVIE_BLOCKS,
ADD_MOVIE_BLOCKS, ADD_MOVIE_SELECTION_BLOCKS, ActiveRadarrBlock, BLOCKLIST_BLOCKS,
COLLECTION_DETAILS_BLOCKS, COLLECTIONS_BLOCKS, DELETE_MOVIE_BLOCKS,
DELETE_MOVIE_SELECTION_BLOCKS, DOWNLOADS_BLOCKS, EDIT_COLLECTION_BLOCKS,
EDIT_COLLECTION_SELECTION_BLOCKS, EDIT_INDEXER_BLOCKS, EDIT_INDEXER_NZB_SELECTION_BLOCKS,
EDIT_INDEXER_TORRENT_SELECTION_BLOCKS, EDIT_MOVIE_BLOCKS, EDIT_MOVIE_SELECTION_BLOCKS,
INDEXERS_BLOCKS, INDEXER_SETTINGS_BLOCKS, INDEXER_SETTINGS_SELECTION_BLOCKS, LIBRARY_BLOCKS,
INDEXER_SETTINGS_BLOCKS, INDEXER_SETTINGS_SELECTION_BLOCKS, INDEXERS_BLOCKS, LIBRARY_BLOCKS,
MOVIE_DETAILS_BLOCKS, ROOT_FOLDERS_BLOCKS, SYSTEM_DETAILS_BLOCKS,
};
@@ -359,8 +371,10 @@ mod tests {
assert!(
EDIT_COLLECTION_BLOCKS.contains(&ActiveRadarrBlock::EditCollectionRootFolderPathInput)
);
assert!(EDIT_COLLECTION_BLOCKS
.contains(&ActiveRadarrBlock::EditCollectionSelectMinimumAvailability));
assert!(
EDIT_COLLECTION_BLOCKS
.contains(&ActiveRadarrBlock::EditCollectionSelectMinimumAvailability)
);
assert!(
EDIT_COLLECTION_BLOCKS.contains(&ActiveRadarrBlock::EditCollectionSelectQualityProfile)
);
@@ -447,18 +461,26 @@ mod tests {
INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsAvailabilityDelayInput)
);
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsConfirmPrompt));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsMaximumSizeInput));
assert!(
INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsMaximumSizeInput)
);
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsMinimumAgeInput));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsRetentionInput));
assert!(
INDEXER_SETTINGS_BLOCKS.contains(&ActiveRadarrBlock::IndexerSettingsRssSyncIntervalInput)
);
assert!(INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsToggleAllowHardcodedSubs));
assert!(INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsTogglePreferIndexerFlags));
assert!(INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput));
assert!(
INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsToggleAllowHardcodedSubs)
);
assert!(
INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsTogglePreferIndexerFlags)
);
assert!(
INDEXER_SETTINGS_BLOCKS
.contains(&ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput)
);
}
#[test]
@@ -1,7 +1,7 @@
#[cfg(test)]
mod tests {
use crate::models::servarr_data::ActiveKeybindingBlock;
use crate::models::Route;
use crate::models::servarr_data::ActiveKeybindingBlock;
use pretty_assertions::assert_eq;
#[test]
+1 -1
View File
@@ -9,12 +9,12 @@ use crate::{
MANUAL_SEASON_SEARCH_CONTEXT_CLUES, SEASON_DETAILS_CONTEXT_CLUES, SEASON_HISTORY_CONTEXT_CLUES,
},
models::{
HorizontallyScrollableText, ScrollableText, TabRoute, TabState,
servarr_data::modals::EditIndexerModal,
servarr_models::{Indexer, RootFolder},
sonarr_models::{Episode, Series, SeriesMonitor, SeriesType, SonarrHistoryItem, SonarrRelease},
stateful_list::StatefulList,
stateful_table::StatefulTable,
HorizontallyScrollableText, ScrollableText, TabRoute, TabState,
},
};
+35 -21
View File
@@ -255,9 +255,11 @@ mod tests {
episode_details_modal.episode_details_tabs.tabs[0].route,
ActiveSonarrBlock::EpisodeDetails.into()
);
assert!(episode_details_modal.episode_details_tabs.tabs[0]
.contextual_help
.is_some());
assert!(
episode_details_modal.episode_details_tabs.tabs[0]
.contextual_help
.is_some()
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[0]
.contextual_help
@@ -277,9 +279,11 @@ mod tests {
episode_details_modal.episode_details_tabs.tabs[1].route,
ActiveSonarrBlock::EpisodeHistory.into()
);
assert!(episode_details_modal.episode_details_tabs.tabs[1]
.contextual_help
.is_some());
assert!(
episode_details_modal.episode_details_tabs.tabs[1]
.contextual_help
.is_some()
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[1]
.contextual_help
@@ -299,9 +303,11 @@ mod tests {
episode_details_modal.episode_details_tabs.tabs[2].route,
ActiveSonarrBlock::EpisodeFile.into()
);
assert!(episode_details_modal.episode_details_tabs.tabs[2]
.contextual_help
.is_some());
assert!(
episode_details_modal.episode_details_tabs.tabs[2]
.contextual_help
.is_some()
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[2]
.contextual_help
@@ -321,9 +327,11 @@ mod tests {
episode_details_modal.episode_details_tabs.tabs[3].route,
ActiveSonarrBlock::ManualEpisodeSearch.into()
);
assert!(episode_details_modal.episode_details_tabs.tabs[3]
.contextual_help
.is_some());
assert!(
episode_details_modal.episode_details_tabs.tabs[3]
.contextual_help
.is_some()
);
assert_eq!(
episode_details_modal.episode_details_tabs.tabs[3]
.contextual_help
@@ -356,9 +364,11 @@ mod tests {
season_details_modal.season_details_tabs.tabs[0].route,
ActiveSonarrBlock::SeasonDetails.into()
);
assert!(season_details_modal.season_details_tabs.tabs[0]
.contextual_help
.is_some());
assert!(
season_details_modal.season_details_tabs.tabs[0]
.contextual_help
.is_some()
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[0]
.contextual_help
@@ -378,9 +388,11 @@ mod tests {
season_details_modal.season_details_tabs.tabs[1].route,
ActiveSonarrBlock::SeasonHistory.into()
);
assert!(season_details_modal.season_details_tabs.tabs[1]
.contextual_help
.is_some());
assert!(
season_details_modal.season_details_tabs.tabs[1]
.contextual_help
.is_some()
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[1]
.contextual_help
@@ -400,9 +412,11 @@ mod tests {
season_details_modal.season_details_tabs.tabs[2].route,
ActiveSonarrBlock::ManualSeasonSearch.into()
);
assert!(season_details_modal.season_details_tabs.tabs[2]
.contextual_help
.is_some());
assert!(
season_details_modal.season_details_tabs.tabs[2]
.contextual_help
.is_some()
);
assert_eq!(
season_details_modal.season_details_tabs.tabs[2]
.contextual_help
@@ -14,6 +14,7 @@ use crate::{
},
},
models::{
BlockSelectionState, HorizontallyScrollableText, Route, ScrollableText, TabRoute, TabState,
servarr_data::modals::{EditIndexerModal, IndexerTestResultModalItem},
servarr_models::{DiskSpace, Indexer, QueueEvent, RootFolder},
sonarr_models::{
@@ -22,7 +23,6 @@ use crate::{
},
stateful_list::StatefulList,
stateful_table::StatefulTable,
BlockSelectionState, HorizontallyScrollableText, Route, ScrollableText, TabRoute, TabState,
},
network::sonarr_network::SonarrEvent,
};
@@ -18,8 +18,8 @@ mod tests {
},
},
models::{
servarr_data::sonarr::sonarr_data::{ActiveSonarrBlock, SonarrData},
BlockSelectionState, Route,
servarr_data::sonarr::sonarr_data::{ActiveSonarrBlock, SonarrData},
},
};
@@ -209,9 +209,11 @@ mod tests {
sonarr_data.series_info_tabs.tabs[0].route,
ActiveSonarrBlock::SeriesDetails.into()
);
assert!(sonarr_data.series_info_tabs.tabs[0]
.contextual_help
.is_some());
assert!(
sonarr_data.series_info_tabs.tabs[0]
.contextual_help
.is_some()
);
assert_eq!(
sonarr_data.series_info_tabs.tabs[0]
.contextual_help
@@ -225,9 +227,11 @@ mod tests {
sonarr_data.series_info_tabs.tabs[1].route,
ActiveSonarrBlock::SeriesHistory.into()
);
assert!(sonarr_data.series_info_tabs.tabs[1]
.contextual_help
.is_some());
assert!(
sonarr_data.series_info_tabs.tabs[1]
.contextual_help
.is_some()
);
assert_eq!(
sonarr_data.series_info_tabs.tabs[1]
.contextual_help
@@ -240,11 +244,11 @@ mod tests {
mod active_sonarr_block_tests {
use crate::models::servarr_data::sonarr::sonarr_data::{
ActiveSonarrBlock, ADD_SERIES_BLOCKS, ADD_SERIES_SELECTION_BLOCKS, BLOCKLIST_BLOCKS,
ADD_SERIES_BLOCKS, ADD_SERIES_SELECTION_BLOCKS, ActiveSonarrBlock, BLOCKLIST_BLOCKS,
DELETE_SERIES_BLOCKS, DELETE_SERIES_SELECTION_BLOCKS, DOWNLOADS_BLOCKS, EDIT_INDEXER_BLOCKS,
EDIT_INDEXER_NZB_SELECTION_BLOCKS, EDIT_INDEXER_TORRENT_SELECTION_BLOCKS, EDIT_SERIES_BLOCKS,
EDIT_SERIES_SELECTION_BLOCKS, EPISODE_DETAILS_BLOCKS, HISTORY_BLOCKS, INDEXERS_BLOCKS,
INDEXER_SETTINGS_BLOCKS, INDEXER_SETTINGS_SELECTION_BLOCKS, LIBRARY_BLOCKS,
EDIT_SERIES_SELECTION_BLOCKS, EPISODE_DETAILS_BLOCKS, HISTORY_BLOCKS,
INDEXER_SETTINGS_BLOCKS, INDEXER_SETTINGS_SELECTION_BLOCKS, INDEXERS_BLOCKS, LIBRARY_BLOCKS,
ROOT_FOLDERS_BLOCKS, SEASON_DETAILS_BLOCKS, SERIES_DETAILS_BLOCKS, SYSTEM_DETAILS_BLOCKS,
};
@@ -394,7 +398,9 @@ mod tests {
assert!(DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesPrompt));
assert!(DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesConfirmPrompt));
assert!(DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesToggleDeleteFile));
assert!(DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesToggleAddListExclusion));
assert!(
DELETE_SERIES_BLOCKS.contains(&ActiveSonarrBlock::DeleteSeriesToggleAddListExclusion)
);
}
#[test]
@@ -533,7 +539,9 @@ mod tests {
assert_eq!(INDEXER_SETTINGS_BLOCKS.len(), 6);
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::AllIndexerSettingsPrompt));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsConfirmPrompt));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsMaximumSizeInput));
assert!(
INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsMaximumSizeInput)
);
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsMinimumAgeInput));
assert!(INDEXER_SETTINGS_BLOCKS.contains(&ActiveSonarrBlock::IndexerSettingsRetentionInput));
assert!(
@@ -652,8 +660,12 @@ mod tests {
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::EpisodeFile));
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::ManualEpisodeSearch));
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::ManualEpisodeSearchSortPrompt));
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::ManualEpisodeSearchConfirmPrompt));
assert!(EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::AutomaticallySearchEpisodePrompt));
assert!(
EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::ManualEpisodeSearchConfirmPrompt)
);
assert!(
EPISODE_DETAILS_BLOCKS.contains(&ActiveSonarrBlock::AutomaticallySearchEpisodePrompt)
);
}
}
}
@@ -3,13 +3,13 @@ pub mod utils {
use crate::models::servarr_models::{Indexer, RootFolder};
use crate::models::sonarr_models::{BlocklistItem, Series};
use crate::models::{
HorizontallyScrollableText, ScrollableText,
servarr_data::sonarr::{
modals::{EpisodeDetailsModal, SeasonDetailsModal},
sonarr_data::SonarrData,
},
sonarr_models::{AddSeriesSearchResult, Episode, Season, SonarrHistoryItem, SonarrRelease},
stateful_table::StatefulTable,
HorizontallyScrollableText, ScrollableText,
};
pub fn create_test_sonarr_data<'a>() -> SonarrData<'a> {