test: Updated Rust edition to 2024 and refactored network module tests to be more idiomatic
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -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> {
|
||||
|
||||
Reference in New Issue
Block a user