style: Applied uniform formatting across all new UI test files
This commit is contained in:
+10
-6
@@ -30,11 +30,11 @@ use {
|
||||
crate::models::servarr_data::radarr::modals::{
|
||||
EditCollectionModal, EditMovieModal, MovieDetailsModal,
|
||||
},
|
||||
crate::models::stateful_table::SortOption,
|
||||
crate::network::radarr_network::radarr_network_test_utils::test_utils::*,
|
||||
chrono::DateTime,
|
||||
strum::IntoEnumIterator,
|
||||
std::fmt::Debug,
|
||||
crate::models::stateful_table::SortOption
|
||||
strum::IntoEnumIterator,
|
||||
};
|
||||
|
||||
#[cfg(test)]
|
||||
@@ -50,9 +50,9 @@ macro_rules! sort_option {
|
||||
($field:ident) => {
|
||||
SortOption {
|
||||
name: "Something",
|
||||
cmp_fn: Some(|a, b| a.$field.cmp(&b.$field))
|
||||
}
|
||||
cmp_fn: Some(|a, b| a.$field.cmp(&b.$field)),
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
pub struct App<'a> {
|
||||
@@ -386,7 +386,9 @@ impl App<'_> {
|
||||
movie_details_modal
|
||||
.movie_releases
|
||||
.set_items(vec![torrent_release(), usenet_release()]);
|
||||
movie_details_modal.movie_releases.sorting(vec![sort_option!(indexer_id)]);
|
||||
movie_details_modal
|
||||
.movie_releases
|
||||
.sorting(vec![sort_option!(indexer_id)]);
|
||||
|
||||
let mut radarr_data = RadarrData {
|
||||
disk_space_vec: vec![diskspace()],
|
||||
@@ -418,7 +420,9 @@ impl App<'_> {
|
||||
radarr_data.collections.sorting(vec![sort_option!(id)]);
|
||||
radarr_data.collections.search = Some("Something".into());
|
||||
radarr_data.collections.filter = Some("Something".into());
|
||||
radarr_data.collection_movies.set_items(vec![collection_movie()]);
|
||||
radarr_data
|
||||
.collection_movies
|
||||
.set_items(vec![collection_movie()]);
|
||||
radarr_data.downloads.set_items(vec![download_record()]);
|
||||
radarr_data.blocklist.set_items(vec![blocklist_item()]);
|
||||
radarr_data.blocklist.sorting(vec![sort_option!(id)]);
|
||||
|
||||
@@ -162,9 +162,7 @@ pub mod test_utils {
|
||||
}
|
||||
|
||||
pub fn percentage_rating() -> Rating {
|
||||
Rating {
|
||||
value: 99.into(),
|
||||
}
|
||||
Rating { value: 99.into() }
|
||||
}
|
||||
|
||||
pub fn ratings_list() -> RatingsList {
|
||||
|
||||
@@ -20,8 +20,8 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use rstest::rstest;
|
||||
use crate::ui::ui_test_utils::test_utils::TerminalSize;
|
||||
use rstest::rstest;
|
||||
|
||||
use super::*;
|
||||
|
||||
@@ -56,8 +56,9 @@ mod tests {
|
||||
ActiveRadarrBlock::Blocklist,
|
||||
ActiveRadarrBlock::BlocklistSortPrompt,
|
||||
ActiveRadarrBlock::DeleteBlocklistItemPrompt,
|
||||
ActiveRadarrBlock::BlocklistClearAllItemsPrompt,
|
||||
)] active_radarr_block: ActiveRadarrBlock
|
||||
ActiveRadarrBlock::BlocklistClearAllItemsPrompt
|
||||
)]
|
||||
active_radarr_block: ActiveRadarrBlock,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(active_radarr_block.into());
|
||||
|
||||
@@ -37,16 +37,17 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use rstest::rstest;
|
||||
use crate::models::stateful_table::StatefulTable;
|
||||
use super::*;
|
||||
use crate::models::stateful_table::StatefulTable;
|
||||
use rstest::rstest;
|
||||
|
||||
#[rstest]
|
||||
fn test_collection_details_ui_renders_collection_details(
|
||||
#[values(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::ViewMovieOverview
|
||||
)] active_radarr_block: ActiveRadarrBlock
|
||||
)]
|
||||
active_radarr_block: ActiveRadarrBlock,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(active_radarr_block.into());
|
||||
|
||||
@@ -30,9 +30,9 @@ mod tests {
|
||||
|
||||
mod snapshot_tests {
|
||||
use super::*;
|
||||
use rstest::rstest;
|
||||
use crate::models::BlockSelectionState;
|
||||
use crate::models::servarr_data::radarr::radarr_data::EDIT_COLLECTION_SELECTION_BLOCKS;
|
||||
use rstest::rstest;
|
||||
|
||||
#[rstest]
|
||||
#[case(true, false, false)]
|
||||
@@ -70,8 +70,10 @@ mod tests {
|
||||
ActiveRadarrBlock::FilterCollectionsError,
|
||||
ActiveRadarrBlock::SearchCollection,
|
||||
ActiveRadarrBlock::SearchCollectionError,
|
||||
ActiveRadarrBlock::UpdateAllCollectionsPrompt,
|
||||
)] active_radarr_block: ActiveRadarrBlock) {
|
||||
ActiveRadarrBlock::UpdateAllCollectionsPrompt
|
||||
)]
|
||||
active_radarr_block: ActiveRadarrBlock,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(active_radarr_block.into());
|
||||
|
||||
@@ -96,13 +98,34 @@ mod tests {
|
||||
}
|
||||
|
||||
#[rstest]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionPrompt)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionConfirmPrompt)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionRootFolderPathInput)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionSelectMinimumAvailability)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionSelectQualityProfile)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionToggleSearchOnAdd)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionToggleMonitored)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionPrompt
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionConfirmPrompt
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionRootFolderPathInput
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionSelectMinimumAvailability
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionSelectQualityProfile
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionToggleSearchOnAdd
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionToggleMonitored
|
||||
)]
|
||||
fn test_edit_collection_ui_renders_edit_collection_modal(
|
||||
#[case] context_block: ActiveRadarrBlock,
|
||||
#[case] active_radarr_block: ActiveRadarrBlock,
|
||||
@@ -116,7 +139,14 @@ mod tests {
|
||||
CollectionsUi::draw(f, app, f.area());
|
||||
});
|
||||
|
||||
insta::assert_snapshot!(format!("{}_{}", active_radarr_block.to_string(), context_block.to_string()), output);
|
||||
insta::assert_snapshot!(
|
||||
format!(
|
||||
"{}_{}",
|
||||
active_radarr_block.to_string(),
|
||||
context_block.to_string()
|
||||
),
|
||||
output
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,24 +31,66 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use rstest::rstest;
|
||||
use super::*;
|
||||
use rstest::rstest;
|
||||
|
||||
#[rstest]
|
||||
#[case(ActiveRadarrBlock::Collections, ActiveRadarrBlock::EditCollectionPrompt)]
|
||||
#[case(ActiveRadarrBlock::Collections, ActiveRadarrBlock::EditCollectionConfirmPrompt)]
|
||||
#[case(ActiveRadarrBlock::Collections, ActiveRadarrBlock::EditCollectionRootFolderPathInput)]
|
||||
#[case(ActiveRadarrBlock::Collections, ActiveRadarrBlock::EditCollectionSelectMinimumAvailability)]
|
||||
#[case(ActiveRadarrBlock::Collections, ActiveRadarrBlock::EditCollectionSelectQualityProfile)]
|
||||
#[case(ActiveRadarrBlock::Collections, ActiveRadarrBlock::EditCollectionToggleSearchOnAdd)]
|
||||
#[case(ActiveRadarrBlock::Collections, ActiveRadarrBlock::EditCollectionToggleMonitored)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionPrompt)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionConfirmPrompt)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionRootFolderPathInput)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionSelectMinimumAvailability)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionSelectQualityProfile)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionToggleSearchOnAdd)]
|
||||
#[case(ActiveRadarrBlock::CollectionDetails, ActiveRadarrBlock::EditCollectionToggleMonitored)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Collections,
|
||||
ActiveRadarrBlock::EditCollectionPrompt
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Collections,
|
||||
ActiveRadarrBlock::EditCollectionConfirmPrompt
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Collections,
|
||||
ActiveRadarrBlock::EditCollectionRootFolderPathInput
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Collections,
|
||||
ActiveRadarrBlock::EditCollectionSelectMinimumAvailability
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Collections,
|
||||
ActiveRadarrBlock::EditCollectionSelectQualityProfile
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Collections,
|
||||
ActiveRadarrBlock::EditCollectionToggleSearchOnAdd
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Collections,
|
||||
ActiveRadarrBlock::EditCollectionToggleMonitored
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionPrompt
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionConfirmPrompt
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionRootFolderPathInput
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionSelectMinimumAvailability
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionSelectQualityProfile
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionToggleSearchOnAdd
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::CollectionDetails,
|
||||
ActiveRadarrBlock::EditCollectionToggleMonitored
|
||||
)]
|
||||
fn test_edit_collection_ui_renders_edit_collection_modal(
|
||||
#[case] active_radarr_block: ActiveRadarrBlock,
|
||||
#[case] context_block: ActiveRadarrBlock,
|
||||
@@ -62,7 +104,14 @@ mod tests {
|
||||
EditCollectionUi::draw(f, app, f.area());
|
||||
});
|
||||
|
||||
insta::assert_snapshot!(format!("{}_{}", active_radarr_block.to_string(), context_block.to_string()), output);
|
||||
insta::assert_snapshot!(
|
||||
format!(
|
||||
"{}_{}",
|
||||
active_radarr_block.to_string(),
|
||||
context_block.to_string()
|
||||
),
|
||||
output
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,8 +20,8 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use rstest::rstest;
|
||||
use super::*;
|
||||
use rstest::rstest;
|
||||
|
||||
#[test]
|
||||
fn test_radarr_ui_renders_downloads_tab_loading() {
|
||||
@@ -41,8 +41,9 @@ mod tests {
|
||||
#[values(
|
||||
ActiveRadarrBlock::Downloads,
|
||||
ActiveRadarrBlock::DeleteDownloadPrompt,
|
||||
ActiveRadarrBlock::UpdateDownloadsPrompt,
|
||||
)] active_radarr_block: ActiveRadarrBlock
|
||||
ActiveRadarrBlock::UpdateDownloadsPrompt
|
||||
)]
|
||||
active_radarr_block: ActiveRadarrBlock,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(active_radarr_block.into());
|
||||
|
||||
@@ -7,7 +7,7 @@ mod tests {
|
||||
use crate::models::servarr_data::radarr::radarr_data::{
|
||||
ActiveRadarrBlock, EDIT_INDEXER_BLOCKS, EDIT_INDEXER_TORRENT_SELECTION_BLOCKS,
|
||||
};
|
||||
use crate::models::servarr_models::{Indexer};
|
||||
use crate::models::servarr_models::Indexer;
|
||||
use crate::ui::DrawUi;
|
||||
use crate::ui::radarr_ui::indexers::edit_indexer_ui::EditIndexerUi;
|
||||
use crate::ui::ui_test_utils::test_utils::{TerminalSize, render_to_string_with_app};
|
||||
@@ -24,9 +24,9 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use super::*;
|
||||
use crate::models::servarr_data::radarr::radarr_data::EDIT_INDEXER_NZB_SELECTION_BLOCKS;
|
||||
use crate::network::radarr_network::radarr_network_test_utils::test_utils::indexer;
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_edit_indexer_ui_renders_edit_indexer_modal_torrent() {
|
||||
|
||||
@@ -29,7 +29,8 @@ mod tests {
|
||||
fn test_indexer_settings_ui_renders_indexer_settings() {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsMinimumAgeInput.into());
|
||||
app.data.radarr_data.selected_block = BlockSelectionState::new(INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
app.data.radarr_data.selected_block =
|
||||
BlockSelectionState::new(INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
|
||||
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
|
||||
IndexerSettingsUi::draw(f, app, f.area());
|
||||
|
||||
@@ -20,10 +20,10 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use rstest::rstest;
|
||||
use super::*;
|
||||
use crate::models::BlockSelectionState;
|
||||
use crate::models::servarr_data::radarr::radarr_data::ADD_MOVIE_SELECTION_BLOCKS;
|
||||
use super::*;
|
||||
use rstest::rstest;
|
||||
|
||||
#[test]
|
||||
fn test_add_movie_ui_renders_loading_for_search() {
|
||||
@@ -49,15 +49,33 @@ mod tests {
|
||||
#[case(ActiveRadarrBlock::AddMovieSelectRootFolder, None)]
|
||||
#[case(ActiveRadarrBlock::AddMovieAlreadyInLibrary, None)]
|
||||
#[case(ActiveRadarrBlock::AddMovieTagsInput, None)]
|
||||
#[case(ActiveRadarrBlock::AddMoviePrompt, Some(ActiveRadarrBlock::CollectionDetails))]
|
||||
#[case(ActiveRadarrBlock::AddMovieSelectMinimumAvailability, Some(ActiveRadarrBlock::CollectionDetails))]
|
||||
#[case(ActiveRadarrBlock::AddMovieSelectMonitor, Some(ActiveRadarrBlock::CollectionDetails))]
|
||||
#[case(ActiveRadarrBlock::AddMovieSelectQualityProfile, Some(ActiveRadarrBlock::CollectionDetails))]
|
||||
#[case(ActiveRadarrBlock::AddMovieSelectRootFolder, Some(ActiveRadarrBlock::CollectionDetails))]
|
||||
#[case(ActiveRadarrBlock::AddMovieTagsInput, Some(ActiveRadarrBlock::CollectionDetails))]
|
||||
#[case(
|
||||
ActiveRadarrBlock::AddMoviePrompt,
|
||||
Some(ActiveRadarrBlock::CollectionDetails)
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::AddMovieSelectMinimumAvailability,
|
||||
Some(ActiveRadarrBlock::CollectionDetails)
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::AddMovieSelectMonitor,
|
||||
Some(ActiveRadarrBlock::CollectionDetails)
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::AddMovieSelectQualityProfile,
|
||||
Some(ActiveRadarrBlock::CollectionDetails)
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::AddMovieSelectRootFolder,
|
||||
Some(ActiveRadarrBlock::CollectionDetails)
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::AddMovieTagsInput,
|
||||
Some(ActiveRadarrBlock::CollectionDetails)
|
||||
)]
|
||||
fn test_add_movie_ui_renders(
|
||||
#[case] active_radarr_block: ActiveRadarrBlock,
|
||||
#[case] context: Option<ActiveRadarrBlock>
|
||||
#[case] context: Option<ActiveRadarrBlock>,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack((active_radarr_block, context).into());
|
||||
@@ -68,7 +86,14 @@ mod tests {
|
||||
});
|
||||
|
||||
if let Some(context) = context {
|
||||
insta::assert_snapshot!(format!("{}_{}", active_radarr_block.to_string(), context.to_string()), output);
|
||||
insta::assert_snapshot!(
|
||||
format!(
|
||||
"{}_{}",
|
||||
active_radarr_block.to_string(),
|
||||
context.to_string()
|
||||
),
|
||||
output
|
||||
);
|
||||
} else {
|
||||
insta::assert_snapshot!(active_radarr_block.to_string(), output);
|
||||
}
|
||||
|
||||
@@ -23,17 +23,33 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use rstest::rstest;
|
||||
use super::*;
|
||||
use rstest::rstest;
|
||||
|
||||
#[rstest]
|
||||
#[case(ActiveRadarrBlock::EditMoviePrompt, None, 0)]
|
||||
#[case(ActiveRadarrBlock::EditMoviePrompt, Some(ActiveRadarrBlock::MovieDetails), 0)]
|
||||
#[case(ActiveRadarrBlock::EditMoviePrompt, Some(ActiveRadarrBlock::MovieHistory), 1)]
|
||||
#[case(ActiveRadarrBlock::EditMoviePrompt, Some(ActiveRadarrBlock::FileInfo), 2)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::EditMoviePrompt,
|
||||
Some(ActiveRadarrBlock::MovieDetails),
|
||||
0
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::EditMoviePrompt,
|
||||
Some(ActiveRadarrBlock::MovieHistory),
|
||||
1
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::EditMoviePrompt,
|
||||
Some(ActiveRadarrBlock::FileInfo),
|
||||
2
|
||||
)]
|
||||
#[case(ActiveRadarrBlock::EditMoviePrompt, Some(ActiveRadarrBlock::Cast), 3)]
|
||||
#[case(ActiveRadarrBlock::EditMoviePrompt, Some(ActiveRadarrBlock::Crew), 4)]
|
||||
#[case(ActiveRadarrBlock::EditMoviePrompt, Some(ActiveRadarrBlock::ManualSearch), 5)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::EditMoviePrompt,
|
||||
Some(ActiveRadarrBlock::ManualSearch),
|
||||
5
|
||||
)]
|
||||
fn test_edit_movie_ui_renders_edit_movie_modal(
|
||||
#[case] active_radarr_block: ActiveRadarrBlock,
|
||||
#[case] context: Option<ActiveRadarrBlock>,
|
||||
@@ -51,7 +67,14 @@ mod tests {
|
||||
});
|
||||
|
||||
if let Some(context) = context {
|
||||
insta::assert_snapshot!(format!("{}_{}", active_radarr_block.to_string(), context.to_string()), output);
|
||||
insta::assert_snapshot!(
|
||||
format!(
|
||||
"{}_{}",
|
||||
active_radarr_block.to_string(),
|
||||
context.to_string()
|
||||
),
|
||||
output
|
||||
);
|
||||
} else {
|
||||
insta::assert_snapshot!(active_radarr_block.to_string(), output);
|
||||
}
|
||||
|
||||
@@ -30,10 +30,12 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use rstest::rstest;
|
||||
use crate::models::BlockSelectionState;
|
||||
use crate::models::servarr_data::radarr::radarr_data::{ADD_MOVIE_SELECTION_BLOCKS, EDIT_MOVIE_SELECTION_BLOCKS};
|
||||
use super::*;
|
||||
use crate::models::BlockSelectionState;
|
||||
use crate::models::servarr_data::radarr::radarr_data::{
|
||||
ADD_MOVIE_SELECTION_BLOCKS, EDIT_MOVIE_SELECTION_BLOCKS,
|
||||
};
|
||||
use rstest::rstest;
|
||||
|
||||
#[test]
|
||||
fn test_library_ui_renders_library_tab_loading() {
|
||||
@@ -69,8 +71,9 @@ mod tests {
|
||||
ActiveRadarrBlock::SearchMovieError,
|
||||
ActiveRadarrBlock::FilterMovies,
|
||||
ActiveRadarrBlock::FilterMoviesError,
|
||||
ActiveRadarrBlock::UpdateAllMoviesPrompt,
|
||||
)] active_radarr_block: ActiveRadarrBlock,
|
||||
ActiveRadarrBlock::UpdateAllMoviesPrompt
|
||||
)]
|
||||
active_radarr_block: ActiveRadarrBlock,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(active_radarr_block.into());
|
||||
@@ -94,8 +97,9 @@ mod tests {
|
||||
ActiveRadarrBlock::AddMovieSelectQualityProfile,
|
||||
ActiveRadarrBlock::AddMovieSelectRootFolder,
|
||||
ActiveRadarrBlock::AddMovieAlreadyInLibrary,
|
||||
ActiveRadarrBlock::AddMovieTagsInput,
|
||||
)] active_radarr_block: ActiveRadarrBlock,
|
||||
ActiveRadarrBlock::AddMovieTagsInput
|
||||
)]
|
||||
active_radarr_block: ActiveRadarrBlock,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(active_radarr_block.into());
|
||||
|
||||
@@ -50,29 +50,77 @@ mod tests {
|
||||
|
||||
#[rstest]
|
||||
#[case(ActiveRadarrBlock::MovieDetails, None, 0)]
|
||||
#[case(ActiveRadarrBlock::MovieDetails, Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt), 0)]
|
||||
#[case(ActiveRadarrBlock::MovieDetails, Some(ActiveRadarrBlock::UpdateAndScanPrompt), 0)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::MovieDetails,
|
||||
Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt),
|
||||
0
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::MovieDetails,
|
||||
Some(ActiveRadarrBlock::UpdateAndScanPrompt),
|
||||
0
|
||||
)]
|
||||
#[case(ActiveRadarrBlock::MovieHistory, None, 1)]
|
||||
#[case(ActiveRadarrBlock::MovieHistory, Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt), 1)]
|
||||
#[case(ActiveRadarrBlock::MovieHistory, Some(ActiveRadarrBlock::UpdateAndScanPrompt), 1)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::MovieHistory,
|
||||
Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt),
|
||||
1
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::MovieHistory,
|
||||
Some(ActiveRadarrBlock::UpdateAndScanPrompt),
|
||||
1
|
||||
)]
|
||||
#[case(ActiveRadarrBlock::FileInfo, None, 2)]
|
||||
#[case(ActiveRadarrBlock::FileInfo, Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt), 2)]
|
||||
#[case(ActiveRadarrBlock::FileInfo, Some(ActiveRadarrBlock::UpdateAndScanPrompt), 2)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::FileInfo,
|
||||
Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt),
|
||||
2
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::FileInfo,
|
||||
Some(ActiveRadarrBlock::UpdateAndScanPrompt),
|
||||
2
|
||||
)]
|
||||
#[case(ActiveRadarrBlock::Cast, None, 3)]
|
||||
#[case(ActiveRadarrBlock::Cast, Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt), 3)]
|
||||
#[case(ActiveRadarrBlock::Cast, Some(ActiveRadarrBlock::UpdateAndScanPrompt), 3)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Cast,
|
||||
Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt),
|
||||
3
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Cast,
|
||||
Some(ActiveRadarrBlock::UpdateAndScanPrompt),
|
||||
3
|
||||
)]
|
||||
#[case(ActiveRadarrBlock::Crew, None, 4)]
|
||||
#[case(ActiveRadarrBlock::Crew, Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt), 4)]
|
||||
#[case(ActiveRadarrBlock::Crew, Some(ActiveRadarrBlock::UpdateAndScanPrompt), 4)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Crew,
|
||||
Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt),
|
||||
4
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::Crew,
|
||||
Some(ActiveRadarrBlock::UpdateAndScanPrompt),
|
||||
4
|
||||
)]
|
||||
#[case(ActiveRadarrBlock::ManualSearch, None, 5)]
|
||||
#[case(ActiveRadarrBlock::ManualSearch, Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt), 5)]
|
||||
#[case(ActiveRadarrBlock::ManualSearch, Some(ActiveRadarrBlock::UpdateAndScanPrompt), 5)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::ManualSearch,
|
||||
Some(ActiveRadarrBlock::AutomaticallySearchMoviePrompt),
|
||||
5
|
||||
)]
|
||||
#[case(
|
||||
ActiveRadarrBlock::ManualSearch,
|
||||
Some(ActiveRadarrBlock::UpdateAndScanPrompt),
|
||||
5
|
||||
)]
|
||||
#[case(ActiveRadarrBlock::ManualSearchSortPrompt, None, 5)]
|
||||
#[case(ActiveRadarrBlock::ManualSearchConfirmPrompt, None, 5)]
|
||||
fn test_movie_details_ui_renders_movie_details_tab(
|
||||
#[case] active_radarr_block: ActiveRadarrBlock,
|
||||
#[case] context: Option<ActiveRadarrBlock>,
|
||||
#[case] index: usize
|
||||
#[case] index: usize,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack((active_radarr_block, context).into());
|
||||
@@ -83,9 +131,15 @@ mod tests {
|
||||
});
|
||||
|
||||
if let Some(context) = context {
|
||||
insta::assert_snapshot!(format!("movie_details_render_{active_radarr_block}_{context}"), output);
|
||||
insta::assert_snapshot!(
|
||||
format!("movie_details_render_{active_radarr_block}_{context}"),
|
||||
output
|
||||
);
|
||||
} else {
|
||||
insta::assert_snapshot!(format!("movie_details_render_{active_radarr_block}"), output);
|
||||
insta::assert_snapshot!(
|
||||
format!("movie_details_render_{active_radarr_block}"),
|
||||
output
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,8 +151,9 @@ mod tests {
|
||||
ActiveRadarrBlock::FileInfo,
|
||||
ActiveRadarrBlock::Cast,
|
||||
ActiveRadarrBlock::Crew,
|
||||
ActiveRadarrBlock::ManualSearch,
|
||||
)] active_radarr_block: ActiveRadarrBlock
|
||||
ActiveRadarrBlock::ManualSearch
|
||||
)]
|
||||
active_radarr_block: ActiveRadarrBlock,
|
||||
) {
|
||||
let mut app = App::test_default();
|
||||
app.is_loading = true;
|
||||
@@ -108,7 +163,10 @@ mod tests {
|
||||
MovieDetailsUi::draw(f, app, f.area());
|
||||
});
|
||||
|
||||
insta::assert_snapshot!(format!("movie_details_loading_{active_radarr_block}"), output);
|
||||
insta::assert_snapshot!(
|
||||
format!("movie_details_loading_{active_radarr_block}"),
|
||||
output
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
use std::{cmp, iter};
|
||||
#[cfg(test)]
|
||||
use crate::ui::ui_test_utils::test_utils::Utc;
|
||||
use chrono::Duration;
|
||||
#[cfg(not(test))]
|
||||
use chrono::Utc;
|
||||
use chrono::{Duration};
|
||||
use ratatui::Frame;
|
||||
use ratatui::layout::{Constraint, Layout, Rect};
|
||||
use ratatui::prelude::Stylize;
|
||||
use ratatui::text::Text;
|
||||
use ratatui::widgets::{Paragraph, Row};
|
||||
use std::{cmp, iter};
|
||||
|
||||
use crate::app::App;
|
||||
use crate::logos::RADARR_LOGO;
|
||||
|
||||
@@ -22,7 +22,7 @@ mod tests {
|
||||
|
||||
mod snapshot_tests {
|
||||
use super::*;
|
||||
use crate::ui::ui_test_utils::test_utils::{TerminalSize};
|
||||
use crate::ui::ui_test_utils::test_utils::TerminalSize;
|
||||
|
||||
#[rstest]
|
||||
#[case(ActiveRadarrBlock::Movies, 0)]
|
||||
|
||||
@@ -21,8 +21,8 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use rstest::rstest;
|
||||
use super::*;
|
||||
use rstest::rstest;
|
||||
|
||||
#[test]
|
||||
fn test_root_folders_ui_renders_loading() {
|
||||
@@ -55,8 +55,9 @@ mod tests {
|
||||
#[values(
|
||||
ActiveRadarrBlock::RootFolders,
|
||||
ActiveRadarrBlock::AddRootFolderPrompt,
|
||||
ActiveRadarrBlock::DeleteRootFolderPrompt,
|
||||
)] active_radarr_block: ActiveRadarrBlock
|
||||
ActiveRadarrBlock::DeleteRootFolderPrompt
|
||||
)]
|
||||
active_radarr_block: ActiveRadarrBlock,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(active_radarr_block.into());
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
use std::ops::Sub;
|
||||
|
||||
#[cfg(not(test))]
|
||||
use chrono::Utc;
|
||||
#[cfg(test)]
|
||||
use crate::ui::ui_test_utils::test_utils::Utc;
|
||||
#[cfg(not(test))]
|
||||
use chrono::Utc;
|
||||
use ratatui::layout::Layout;
|
||||
use ratatui::style::Style;
|
||||
use ratatui::text::{Span, Text};
|
||||
|
||||
@@ -23,8 +23,8 @@ mod tests {
|
||||
}
|
||||
|
||||
mod snapshot_tests {
|
||||
use rstest::rstest;
|
||||
use super::*;
|
||||
use rstest::rstest;
|
||||
|
||||
#[rstest]
|
||||
fn test_system_details_ui_renders_tasks(
|
||||
@@ -33,8 +33,9 @@ mod tests {
|
||||
ActiveRadarrBlock::SystemQueuedEvents,
|
||||
ActiveRadarrBlock::SystemTasks,
|
||||
ActiveRadarrBlock::SystemTaskStartConfirmPrompt,
|
||||
ActiveRadarrBlock::SystemUpdates,
|
||||
)] active_radarr_block: ActiveRadarrBlock
|
||||
ActiveRadarrBlock::SystemUpdates
|
||||
)]
|
||||
active_radarr_block: ActiveRadarrBlock,
|
||||
) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(active_radarr_block.into());
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#[cfg(test)]
|
||||
#[allow(dead_code)]
|
||||
pub mod test_utils {
|
||||
use std::cell::Cell;
|
||||
use chrono::DateTime;
|
||||
use ratatui::Frame;
|
||||
use ratatui::Terminal;
|
||||
use ratatui::backend::TestBackend;
|
||||
use ratatui::buffer::Buffer;
|
||||
use std::cell::Cell;
|
||||
|
||||
use crate::app::App;
|
||||
|
||||
@@ -18,14 +18,12 @@ pub mod test_utils {
|
||||
|
||||
impl Utc {
|
||||
pub fn now() -> DateTime<chrono::Utc> {
|
||||
|
||||
TIMESTAMP.with(|timestamp| {
|
||||
TIMESTAMP
|
||||
.with(|timestamp| {
|
||||
let ts = timestamp.get();
|
||||
DateTime::<chrono::Utc>::from_timestamp(
|
||||
if ts != 0 { ts } else { 1684618200 },
|
||||
0,
|
||||
)}
|
||||
).expect("a valid timestamp set")
|
||||
DateTime::<chrono::Utc>::from_timestamp(if ts != 0 { ts } else { 1684618200 }, 0)
|
||||
})
|
||||
.expect("a valid timestamp set")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -122,7 +122,9 @@ where
|
||||
};
|
||||
let loading_block = LoadingBlock::new(self.is_loading, self.block.clone());
|
||||
|
||||
if let Some(content) = self.content && !self.is_loading {
|
||||
if let Some(content) = self.content
|
||||
&& !self.is_loading
|
||||
{
|
||||
let (table_contents, table_state) = if content.filtered_items.is_some() {
|
||||
(
|
||||
content.filtered_items.as_ref().unwrap(),
|
||||
|
||||
Reference in New Issue
Block a user