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