refactor: Created dedicated proptests and assertions to clean up the handler unit tests

This commit is contained in:
2025-12-04 22:57:06 -07:00
parent 35dce0bf01
commit 49fd086b92
46 changed files with 1023 additions and 1018 deletions
@@ -9,6 +9,7 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::blocklist::{BlocklistHandler, blocklist_sorting_options};
@@ -30,10 +31,7 @@ mod tests {
BlocklistHandler::new(DELETE_KEY, &mut app, ActiveRadarrBlock::Blocklist, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::DeleteBlocklistItemPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::DeleteBlocklistItemPrompt.into());
}
#[test]
@@ -54,6 +52,7 @@ mod tests {
use rstest::rstest;
use super::*;
use crate::assert_navigation_pushed;
#[rstest]
fn test_blocklist_tab_left(#[values(true, false)] is_ready: bool) {
@@ -73,7 +72,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Downloads.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Downloads.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Downloads.into());
}
#[rstest]
@@ -94,10 +93,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::RootFolders.into());
}
#[rstest]
@@ -122,11 +118,11 @@ mod tests {
}
mod test_handle_submit {
use crate::assert_navigation_popped;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::network::radarr_network::RadarrEvent;
use super::*;
const SUBMIT_KEY: Key = DEFAULT_KEYBINDINGS.submit.key;
@@ -139,10 +135,7 @@ mod tests {
BlocklistHandler::new(SUBMIT_KEY, &mut app, ActiveRadarrBlock::Blocklist, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::BlocklistItemDetails.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::BlocklistItemDetails.into());
}
#[test]
@@ -186,7 +179,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(expected_action)
);
assert_eq!(app.get_current_route(), base_route.into());
assert_navigation_popped!(app, base_route.into());
}
#[rstest]
@@ -206,7 +199,7 @@ mod tests {
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Blocklist.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Blocklist.into());
}
}
@@ -217,6 +210,7 @@ mod tests {
use crate::handlers::radarr_handlers::downloads::DownloadsHandler;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -240,7 +234,7 @@ mod tests {
BlocklistHandler::new(ESC_KEY, &mut app, prompt_block, None).handle();
assert_eq!(app.get_current_route(), base_block.into());
assert_navigation_popped!(app, base_block.into());
assert!(!app.data.radarr_data.prompt_confirm);
}
@@ -258,7 +252,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Blocklist.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Blocklist.into());
}
#[rstest]
@@ -271,7 +265,7 @@ mod tests {
DownloadsHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::Blocklist, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Blocklist.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Blocklist.into());
assert!(app.error.text.is_empty());
}
}
@@ -283,6 +277,7 @@ mod tests {
use crate::network::radarr_network::RadarrEvent;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
#[test]
fn test_refresh_blocklist_key() {
@@ -298,7 +293,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Blocklist.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Blocklist.into());
assert!(app.should_refresh);
}
@@ -334,10 +329,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::BlocklistClearAllItemsPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::BlocklistClearAllItemsPrompt.into());
}
#[test]
@@ -392,7 +384,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(expected_action)
);
assert_eq!(app.get_current_route(), base_route.into());
assert_navigation_popped!(app, base_route.into());
}
}
@@ -6,6 +6,7 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::collections::collection_details_handler::CollectionDetailsHandler;
@@ -15,12 +16,12 @@ mod tests {
};
mod test_handle_submit {
use bimap::BiMap;
use pretty_assertions::assert_eq;
use crate::assert_navigation_pushed;
use crate::models::BlockSelectionState;
use crate::models::radarr_models::Movie;
use crate::models::servarr_data::radarr::radarr_data::ADD_MOVIE_SELECTION_BLOCKS;
use bimap::BiMap;
use pretty_assertions::assert_eq;
use super::*;
@@ -51,8 +52,8 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
assert_navigation_pushed!(
app,
(
ActiveRadarrBlock::AddMoviePrompt,
Some(ActiveRadarrBlock::CollectionDetails)
@@ -132,7 +133,7 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::CollectionDetails.into()
);
assert!(app.data.radarr_data.add_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.add_movie_modal);
}
#[test]
@@ -157,15 +158,13 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::ViewMovieOverview.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::ViewMovieOverview.into());
}
}
mod test_handle_esc {
use super::*;
use crate::assert_navigation_popped;
use pretty_assertions::assert_eq;
use rstest::rstest;
@@ -191,10 +190,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
assert!(app.data.radarr_data.collection_movies.items.is_empty());
}
@@ -212,10 +208,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::CollectionDetails.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::CollectionDetails.into());
}
}
@@ -270,7 +263,7 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::CollectionDetails.into()
);
assert!(app.data.radarr_data.edit_collection_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_collection_modal);
}
}
@@ -9,6 +9,8 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::collections::{
@@ -25,6 +27,7 @@ mod tests {
use rstest::rstest;
use super::*;
use crate::assert_navigation_pushed;
#[rstest]
fn test_collections_tab_left(#[values(true, false)] is_ready: bool) {
@@ -44,7 +47,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Movies.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Movies.into());
}
#[rstest]
@@ -65,7 +68,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Downloads.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Downloads.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Downloads.into());
}
#[rstest]
@@ -97,9 +100,9 @@ mod tests {
}
mod test_handle_submit {
use pretty_assertions::assert_eq;
use crate::assert_navigation_popped;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::assert_eq;
use super::*;
@@ -116,10 +119,7 @@ mod tests {
CollectionsHandler::new(SUBMIT_KEY, &mut app, ActiveRadarrBlock::Collections, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::CollectionDetails.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::CollectionDetails.into());
}
#[test]
@@ -166,10 +166,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::UpdateCollections)
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
}
#[test]
@@ -193,17 +190,14 @@ mod tests {
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
}
}
mod test_handle_esc {
use pretty_assertions::assert_eq;
use crate::assert_navigation_popped;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use pretty_assertions::assert_eq;
use super::*;
@@ -224,10 +218,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
assert!(!app.data.radarr_data.prompt_confirm);
}
@@ -242,8 +233,7 @@ mod tests {
CollectionsHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::Collections, None).handle();
assert_eq!(
app.get_current_route(),
assert_navigation_popped!(app,
ActiveRadarrBlock::Collections.into()
);
assert!(app.error.text.is_empty());
@@ -261,7 +251,7 @@ mod tests {
EDIT_COLLECTION_SELECTION_BLOCKS, RadarrData,
};
use crate::network::radarr_network::RadarrEvent;
use crate::test_edit_collection_key;
use crate::{assert_navigation_popped, test_edit_collection_key};
use super::*;
@@ -298,7 +288,7 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert!(app.data.radarr_data.edit_collection_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_collection_modal);
}
#[test]
@@ -318,10 +308,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::UpdateAllCollectionsPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::UpdateAllCollectionsPrompt.into());
}
#[test]
@@ -367,8 +354,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
assert_navigation_pushed!(app,
ActiveRadarrBlock::Collections.into()
);
assert!(app.should_refresh);
@@ -424,10 +410,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::UpdateCollections)
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
}
}
@@ -7,6 +7,8 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::collections::edit_collection_handler::EditCollectionHandler;
@@ -443,13 +445,13 @@ mod tests {
}
mod test_handle_submit {
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::assert_navigation_popped;
use crate::models::servarr_data::radarr::modals::EditCollectionModal;
use crate::models::servarr_data::radarr::radarr_data::EDIT_COLLECTION_SELECTION_BLOCKS;
use crate::models::{BlockSelectionState, Route};
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::assert_eq;
use rstest::rstest;
use super::*;
@@ -486,10 +488,7 @@ mod tests {
.text
.is_empty()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditCollectionPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditCollectionPrompt.into());
}
#[test]
@@ -514,10 +513,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
}
@@ -571,16 +567,13 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::EditCollection(expected_edit_collection_params))
);
assert!(app.should_refresh);
assert!(app.data.radarr_data.edit_collection_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_collection_modal);
}
#[test]
@@ -755,8 +748,8 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
assert_navigation_pushed!(
app,
(selected_block, Some(ActiveRadarrBlock::Collections)).into()
);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
@@ -788,10 +781,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditCollectionPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditCollectionPrompt.into());
if active_radarr_block == ActiveRadarrBlock::EditCollectionRootFolderPathInput {
assert!(!app.ignore_special_keys_for_textbox_input);
@@ -800,11 +790,11 @@ mod tests {
}
mod test_handle_esc {
use crate::assert_navigation_popped;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use super::*;
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -827,10 +817,7 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditCollectionPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditCollectionPrompt.into());
}
#[test]
@@ -848,13 +835,10 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
let radarr_data = &app.data.radarr_data;
assert!(radarr_data.edit_collection_modal.is_none());
assert_modal_absent!(radarr_data.edit_collection_modal);
assert!(!radarr_data.prompt_confirm);
}
@@ -875,16 +859,14 @@ mod tests {
EditCollectionHandler::new(ESC_KEY, &mut app, active_radarr_block, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
}
}
mod test_handle_key_char {
use super::*;
use crate::{
assert_navigation_popped,
models::{
BlockSelectionState,
servarr_data::radarr::{
@@ -998,16 +980,13 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::Collections.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::EditCollection(expected_edit_collection_params))
);
assert!(app.should_refresh);
assert!(app.data.radarr_data.edit_collection_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_collection_modal);
}
}
@@ -1082,7 +1061,7 @@ mod tests {
.build_edit_collection_params();
assert_eq!(edit_collection_params, expected_edit_collection_params);
assert!(app.data.radarr_data.edit_collection_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_collection_modal);
}
#[test]
@@ -6,6 +6,7 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::downloads::DownloadsHandler;
@@ -31,10 +32,7 @@ mod tests {
DownloadsHandler::new(DELETE_KEY, &mut app, ActiveRadarrBlock::Downloads, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::DeleteDownloadPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::DeleteDownloadPrompt.into());
}
#[test]
@@ -78,10 +76,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Collections.into()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::Collections.into());
}
#[rstest]
@@ -102,7 +97,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Blocklist.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Blocklist.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Blocklist.into());
}
#[rstest]
@@ -133,6 +128,7 @@ mod tests {
use crate::network::radarr_network::RadarrEvent;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
const SUBMIT_KEY: Key = DEFAULT_KEYBINDINGS.submit.key;
@@ -169,7 +165,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(expected_action)
);
assert_eq!(app.get_current_route(), base_route.into());
assert_navigation_popped!(app, base_route.into());
}
#[rstest]
@@ -192,7 +188,7 @@ mod tests {
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_eq!(app.get_current_route(), base_route.into());
assert_navigation_popped!(app, base_route.into());
}
}
@@ -201,6 +197,7 @@ mod tests {
use rstest::rstest;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -218,7 +215,7 @@ mod tests {
DownloadsHandler::new(ESC_KEY, &mut app, prompt_block, None).handle();
assert_eq!(app.get_current_route(), base_block.into());
assert_navigation_popped!(app, base_block.into());
assert!(!app.data.radarr_data.prompt_confirm);
}
@@ -232,17 +229,17 @@ mod tests {
DownloadsHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::Downloads, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Downloads.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Downloads.into());
assert!(app.error.text.is_empty());
}
}
mod test_handle_key_char {
use crate::assert_navigation_popped;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::network::radarr_network::RadarrEvent;
use super::*;
#[test]
@@ -262,10 +259,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::UpdateDownloadsPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::UpdateDownloadsPrompt.into());
}
#[test]
@@ -308,7 +302,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Downloads.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Downloads.into());
assert!(app.should_refresh);
}
@@ -373,7 +367,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(expected_action)
);
assert_eq!(app.get_current_route(), base_route.into());
assert_navigation_popped!(app, base_route.into());
}
}
@@ -2,6 +2,9 @@
mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::assert_modal_present;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::indexers::edit_indexer_handler::EditIndexerHandler;
@@ -850,6 +853,7 @@ mod tests {
use rstest::rstest;
use crate::app::App;
use crate::assert_navigation_popped;
use crate::models::servarr_data::modals::EditIndexerModal;
use crate::models::{
BlockSelectionState, servarr_data::radarr::radarr_data::EDIT_INDEXER_TORRENT_SELECTION_BLOCKS,
@@ -882,7 +886,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert!(!app.should_refresh);
assert_eq!(app.data.radarr_data.edit_indexer_modal, None);
@@ -936,8 +940,8 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert!(app.data.radarr_data.edit_indexer_modal.is_none());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_modal_absent!(app.data.radarr_data.edit_indexer_modal);
assert!(app.should_refresh);
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
@@ -966,7 +970,7 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert!(app.data.radarr_data.edit_indexer_modal.is_some());
assert_modal_present!(app.data.radarr_data.edit_indexer_modal);
assert!(!app.should_refresh);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
}
@@ -1002,7 +1006,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), block.into());
assert_navigation_pushed!(app, block.into());
assert!(app.ignore_special_keys_for_textbox_input);
}
@@ -1024,10 +1028,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPriorityInput.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::EditIndexerPriorityInput.into());
assert!(!app.ignore_special_keys_for_textbox_input);
}
@@ -1234,10 +1235,7 @@ mod tests {
.text
.is_empty()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
#[test]
@@ -1272,10 +1270,7 @@ mod tests {
.text
.is_empty()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
#[test]
@@ -1310,10 +1305,7 @@ mod tests {
.text
.is_empty()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
#[test]
@@ -1348,10 +1340,7 @@ mod tests {
.text
.is_empty()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
#[test]
@@ -1386,10 +1375,7 @@ mod tests {
.text
.is_empty()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
}
@@ -1398,6 +1384,7 @@ mod tests {
use crate::app::App;
use crate::event::Key;
use crate::models::servarr_data::modals::EditIndexerModal;
use crate::{assert_navigation_popped, assert_navigation_pushed};
use pretty_assertions::assert_eq;
use rstest::rstest;
@@ -1419,7 +1406,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.edit_indexer_modal, None);
}
@@ -1444,7 +1431,7 @@ mod tests {
EditIndexerHandler::new(ESC_KEY, &mut app, active_radarr_block, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(!app.ignore_special_keys_for_textbox_input);
assert_eq!(
app.data.radarr_data.edit_indexer_modal,
@@ -1454,15 +1441,15 @@ mod tests {
}
mod test_handle_key_char {
use super::*;
use crate::app::App;
use crate::assert_navigation_popped;
use crate::models::BlockSelectionState;
use crate::models::servarr_data::modals::EditIndexerModal;
use crate::models::servarr_data::radarr::radarr_data::EDIT_INDEXER_TORRENT_SELECTION_BLOCKS;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::{assert_eq, assert_str_eq};
use super::*;
#[test]
fn test_edit_indexer_name_input_backspace() {
let mut app = App::test_default();
@@ -1795,8 +1782,8 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert!(app.data.radarr_data.edit_indexer_modal.is_none());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_modal_absent!(app.data.radarr_data.edit_indexer_modal);
assert!(app.should_refresh);
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
@@ -1874,7 +1861,7 @@ mod tests {
.build_edit_indexer_params();
assert_eq!(edit_indexer_params, expected_edit_indexer_params);
assert!(app.data.radarr_data.edit_indexer_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_indexer_modal);
}
#[test]
@@ -6,6 +6,8 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::indexers::edit_indexer_settings_handler::IndexerSettingsHandler;
@@ -424,6 +426,7 @@ mod tests {
use rstest::rstest;
use crate::{
assert_navigation_popped,
models::{
BlockSelectionState, radarr_models::IndexerSettings,
servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS,
@@ -457,7 +460,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert!(!app.should_refresh);
assert_eq!(app.data.radarr_data.indexer_settings, None);
@@ -486,12 +489,12 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::EditAllIndexerSettings(indexer_settings()))
);
assert!(app.data.radarr_data.indexer_settings.is_none());
assert_modal_absent!(app.data.radarr_data.indexer_settings);
assert!(app.should_refresh);
}
@@ -549,7 +552,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), selected_block.into());
assert_navigation_pushed!(app, selected_block.into());
}
#[rstest]
@@ -599,8 +602,8 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
assert_navigation_pushed!(
app,
ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput.into()
);
assert!(app.ignore_special_keys_for_textbox_input);
@@ -747,10 +750,7 @@ mod tests {
.text
.is_empty()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
}
#[rstest]
@@ -771,10 +771,7 @@ mod tests {
IndexerSettingsHandler::new(SUBMIT_KEY, &mut app, active_radarr_block, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
}
}
@@ -785,6 +782,7 @@ mod tests {
use crate::models::radarr_models::IndexerSettings;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -804,7 +802,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.indexer_settings, None);
}
@@ -827,7 +825,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(!app.ignore_special_keys_for_textbox_input);
assert_eq!(
app.data.radarr_data.indexer_settings,
@@ -854,7 +852,7 @@ mod tests {
IndexerSettingsHandler::new(ESC_KEY, &mut app, active_radarr_block, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(
app.data.radarr_data.indexer_settings,
Some(IndexerSettings::default())
@@ -866,6 +864,7 @@ mod tests {
use pretty_assertions::{assert_eq, assert_str_eq};
use crate::{
assert_navigation_popped,
models::{
BlockSelectionState, radarr_models::IndexerSettings,
servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS,
@@ -952,12 +951,12 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::EditAllIndexerSettings(indexer_settings()))
);
assert!(app.data.radarr_data.indexer_settings.is_none());
assert_modal_absent!(app.data.radarr_data.indexer_settings);
assert!(app.should_refresh);
}
}
@@ -1006,7 +1005,7 @@ mod tests {
.build_edit_indexer_settings_body();
assert_eq!(body, indexer_settings());
assert!(app.data.radarr_data.indexer_settings.is_none());
assert_modal_absent!(app.data.radarr_data.indexer_settings);
}
#[test]
@@ -6,6 +6,7 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::indexers::IndexersHandler;
@@ -34,10 +35,7 @@ mod tests {
IndexersHandler::new(DELETE_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::DeleteIndexerPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::DeleteIndexerPrompt.into());
}
#[test]
@@ -81,10 +79,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::RootFolders.into());
}
#[rstest]
@@ -105,7 +100,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::System.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::System.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::System.into());
}
#[rstest]
@@ -125,6 +120,8 @@ mod tests {
}
mod test_handle_submit {
use super::*;
use crate::assert_navigation_popped;
use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::indexer;
use crate::models::servarr_data::modals::EditIndexerModal;
use crate::models::servarr_data::radarr::radarr_data::{
@@ -136,8 +133,6 @@ mod tests {
use pretty_assertions::assert_eq;
use serde_json::{Number, Value};
use super::*;
const SUBMIT_KEY: Key = DEFAULT_KEYBINDINGS.submit.key;
#[rstest]
@@ -196,10 +191,7 @@ mod tests {
IndexersHandler::new(SUBMIT_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
assert_eq!(
app.data.radarr_data.edit_indexer_modal,
Some((&app.data.radarr_data).into())
@@ -259,7 +251,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteIndexer(1))
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
}
#[test]
@@ -283,7 +275,7 @@ mod tests {
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
}
}
@@ -291,6 +283,7 @@ mod tests {
use pretty_assertions::assert_eq;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -310,7 +303,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(!app.data.radarr_data.prompt_confirm);
}
@@ -324,7 +317,7 @@ mod tests {
IndexersHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::TestIndexer, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(app.data.radarr_data.indexer_test_errors, None);
}
@@ -338,7 +331,7 @@ mod tests {
IndexersHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(app.error.text.is_empty());
}
}
@@ -349,6 +342,7 @@ mod tests {
use super::*;
use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::indexer;
use crate::{
assert_navigation_popped,
models::servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS,
network::radarr_network::RadarrEvent,
};
@@ -371,7 +365,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Indexers.into());
assert!(app.should_refresh);
}
@@ -415,10 +409,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
assert_eq!(
app.data.radarr_data.selected_block.blocks,
INDEXER_SETTINGS_SELECTION_BLOCKS
@@ -464,10 +455,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::TestIndexer.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::TestIndexer.into());
}
#[test]
@@ -509,10 +497,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::TestAllIndexers.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::TestAllIndexers.into());
}
#[test]
@@ -557,7 +542,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteIndexer(1))
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
}
}
@@ -2,6 +2,8 @@
mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::assert_navigation_pushed;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::indexers::test_all_indexers_handler::TestAllIndexersHandler;
use crate::models::servarr_data::modals::IndexerTestResultModalItem;
@@ -12,7 +14,9 @@ mod tests {
mod test_handle_esc {
use super::*;
use crate::assert_navigation_pushed;
use crate::models::stateful_table::StatefulTable;
use crate::{assert_modal_absent, assert_navigation_popped};
use pretty_assertions::assert_eq;
use rstest::rstest;
@@ -32,9 +36,9 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(!app.data.radarr_data.prompt_confirm);
assert!(app.data.radarr_data.indexer_test_all_results.is_none());
assert_modal_absent!(app.data.radarr_data.indexer_test_all_results);
}
}
@@ -1,5 +1,8 @@
#[cfg(test)]
mod tests {
use crate::assert_modal_absent;
use crate::assert_modal_present;
use crate::assert_navigation_pushed;
use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::add_movie_search_result;
use crate::models::stateful_table::StatefulTable;
use pretty_assertions::assert_str_eq;
@@ -761,10 +764,7 @@ mod tests {
}
mod test_handle_submit {
use bimap::BiMap;
use pretty_assertions::{assert_eq, assert_str_eq};
use rstest::rstest;
use crate::assert_navigation_popped;
use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::{
add_movie_body, add_movie_search_result, collection_movie,
};
@@ -774,6 +774,9 @@ mod tests {
use crate::models::servarr_data::radarr::radarr_data::ADD_MOVIE_SELECTION_BLOCKS;
use crate::models::stateful_table::StatefulTable;
use crate::network::radarr_network::RadarrEvent;
use bimap::BiMap;
use pretty_assertions::{assert_eq, assert_str_eq};
use rstest::rstest;
use super::*;
@@ -847,7 +850,7 @@ mod tests {
app.data.radarr_data.selected_block.get_active_block(),
ActiveRadarrBlock::AddMovieSelectRootFolder
);
assert!(app.data.radarr_data.add_movie_modal.is_some());
assert_modal_present!(app.data.radarr_data.add_movie_modal);
assert!(
!app
.data
@@ -914,7 +917,7 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::AddMovieSearchResults.into()
);
assert!(app.data.radarr_data.add_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.add_movie_modal);
}
#[test]
@@ -981,7 +984,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
}
@@ -1055,12 +1058,12 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::AddMovie(add_movie_body()))
);
assert!(app.data.radarr_data.add_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.add_movie_modal);
}
#[rstest]
@@ -1092,8 +1095,8 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
assert_navigation_pushed!(
app,
(selected_block, Some(ActiveRadarrBlock::CollectionDetails)).into()
);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
@@ -1126,10 +1129,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AddMoviePrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::AddMoviePrompt.into());
if active_radarr_block == ActiveRadarrBlock::AddMovieTagsInput {
assert!(!app.ignore_special_keys_for_textbox_input);
@@ -1144,9 +1144,10 @@ mod tests {
use crate::models::servarr_data::radarr::modals::AddMovieModal;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use crate::models::stateful_table::StatefulTable;
use crate::simple_stateful_iterable_vec;
use crate::{assert_navigation_popped, simple_stateful_iterable_vec};
use super::*;
use crate::assert_navigation_pushed;
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -1167,7 +1168,7 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(app.data.radarr_data.add_movie_search, None);
}
@@ -1188,10 +1189,7 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AddMoviePrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::AddMoviePrompt.into());
}
#[rstest]
@@ -1214,11 +1212,8 @@ mod tests {
AddMovieHandler::new(ESC_KEY, &mut app, active_radarr_block, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AddMovieSearchInput.into()
);
assert!(app.data.radarr_data.add_searched_movies.is_none());
assert_navigation_popped!(app, ActiveRadarrBlock::AddMovieSearchInput.into());
assert_modal_absent!(app.data.radarr_data.add_searched_movies);
assert!(app.ignore_special_keys_for_textbox_input);
}
@@ -1237,10 +1232,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AddMovieSearchResults.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::AddMovieSearchResults.into());
}
#[test]
@@ -1254,11 +1246,8 @@ mod tests {
AddMovieHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::AddMoviePrompt, None).handle();
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AddMovieSearchResults.into()
);
assert!(app.data.radarr_data.add_movie_modal.is_none());
assert_navigation_popped!(app, ActiveRadarrBlock::AddMovieSearchResults.into());
assert_modal_absent!(app.data.radarr_data.add_movie_modal);
}
#[test]
@@ -1278,10 +1267,7 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AddMoviePrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::AddMoviePrompt.into());
}
#[rstest]
@@ -1318,8 +1304,8 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
assert_navigation_popped!(
app,
(
ActiveRadarrBlock::AddMoviePrompt,
Some(ActiveRadarrBlock::CollectionDetails),
@@ -1336,6 +1322,7 @@ mod tests {
use super::*;
use crate::{
assert_navigation_popped,
handlers::radarr_handlers::radarr_handler_test_utils::utils::{
add_movie_body, add_movie_search_result, collection_movie,
},
@@ -1509,12 +1496,12 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::AddMovie(add_movie_body()))
);
assert!(app.data.radarr_data.add_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.add_movie_modal);
}
}
@@ -6,6 +6,7 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::library::delete_movie_handler::DeleteMovieHandler;
@@ -88,6 +89,7 @@ mod tests {
use crate::network::radarr_network::RadarrEvent;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
const SUBMIT_KEY: Key = DEFAULT_KEYBINDINGS.submit.key;
@@ -113,7 +115,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert!(!app.data.radarr_data.prompt_confirm);
assert!(!app.data.radarr_data.delete_movie_files);
@@ -149,7 +151,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteMovie(expected_delete_movie_params))
@@ -222,6 +224,7 @@ mod tests {
mod test_handle_esc {
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
use pretty_assertions::assert_eq;
use rstest::rstest;
@@ -245,7 +248,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert!(!app.data.radarr_data.prompt_confirm);
assert!(!app.data.radarr_data.delete_movie_files);
assert!(!app.data.radarr_data.add_list_exclusion);
@@ -254,6 +257,7 @@ mod tests {
mod test_handle_key_char {
use crate::{
assert_navigation_popped,
models::{
BlockSelectionState, servarr_data::radarr::radarr_data::DELETE_MOVIE_SELECTION_BLOCKS,
},
@@ -291,7 +295,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteMovie(expected_delete_movie_params))
@@ -7,6 +7,8 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::library::edit_movie_handler::EditMovieHandler;
@@ -534,13 +536,13 @@ mod tests {
}
mod test_handle_submit {
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::assert_navigation_popped;
use crate::models::servarr_data::radarr::modals::EditMovieModal;
use crate::models::servarr_data::radarr::radarr_data::EDIT_MOVIE_SELECTION_BLOCKS;
use crate::models::{BlockSelectionState, Route};
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::assert_eq;
use rstest::rstest;
use super::*;
@@ -577,10 +579,7 @@ mod tests {
.text
.is_empty()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditMoviePrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditMoviePrompt.into());
}
#[test]
@@ -614,10 +613,7 @@ mod tests {
.text
.is_empty()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditMoviePrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditMoviePrompt.into());
}
#[test]
@@ -641,7 +637,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
}
@@ -694,12 +690,12 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::EditMovie(expected_edit_movie_params))
);
assert!(app.data.radarr_data.edit_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_movie_modal);
assert!(app.should_refresh);
}
@@ -809,8 +805,8 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
assert_navigation_pushed!(
app,
(selected_block, Some(ActiveRadarrBlock::Movies)).into()
);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
@@ -882,10 +878,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditMoviePrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditMoviePrompt.into());
if active_radarr_block == ActiveRadarrBlock::EditMoviePathInput
|| active_radarr_block == ActiveRadarrBlock::EditMovieTagsInput
@@ -896,11 +889,11 @@ mod tests {
}
mod test_handle_esc {
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::assert_navigation_popped;
use crate::models::servarr_data::radarr::modals::EditMovieModal;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use pretty_assertions::assert_eq;
use rstest::rstest;
use super::*;
@@ -923,10 +916,7 @@ mod tests {
EditMovieHandler::new(ESC_KEY, &mut app, active_radarr_block, None).handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::EditMoviePrompt.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditMoviePrompt.into());
}
#[test]
@@ -938,9 +928,9 @@ mod tests {
EditMovieHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::EditMoviePrompt, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert!(app.data.radarr_data.edit_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_movie_modal);
assert!(!app.data.radarr_data.prompt_confirm);
}
@@ -960,13 +950,14 @@ mod tests {
EditMovieHandler::new(ESC_KEY, &mut app, active_radarr_block, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
}
}
mod test_handle_key_char {
use super::*;
use crate::{
assert_navigation_popped,
models::{
BlockSelectionState,
servarr_data::radarr::{modals::EditMovieModal, radarr_data::EDIT_MOVIE_SELECTION_BLOCKS},
@@ -1132,12 +1123,12 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::EditMovie(expected_edit_movie_params))
);
assert!(app.data.radarr_data.edit_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_movie_modal);
assert!(app.should_refresh);
}
}
@@ -1213,7 +1204,7 @@ mod tests {
.build_edit_movie_params();
assert_eq!(edit_movie_params, expected_edit_movie_params);
assert!(app.data.radarr_data.edit_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_movie_modal);
}
#[test]
@@ -7,6 +7,9 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::assert_modal_present;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::library::{LibraryHandler, movies_sorting_options};
@@ -72,6 +75,7 @@ mod tests {
use rstest::rstest;
use super::*;
use crate::assert_navigation_pushed;
#[rstest]
fn test_movie_tab_left(#[values(true, false)] is_ready: bool) {
@@ -91,7 +95,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::System.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::System.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::System.into());
}
#[rstest]
@@ -112,10 +116,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Collections.into()
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::Collections.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::Collections.into());
}
#[rstest]
@@ -147,9 +148,9 @@ mod tests {
}
mod test_handle_submit {
use pretty_assertions::assert_eq;
use crate::assert_navigation_popped;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::assert_eq;
use super::*;
@@ -166,10 +167,7 @@ mod tests {
LibraryHandler::new(SUBMIT_KEY, &mut app, ActiveRadarrBlock::Movies, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::MovieDetails.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::MovieDetails.into());
}
#[test]
@@ -213,7 +211,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::UpdateAllMovies)
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
}
#[test]
@@ -237,7 +235,7 @@ mod tests {
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
}
}
@@ -249,6 +247,7 @@ mod tests {
use crate::models::stateful_table::StatefulTable;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -267,7 +266,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert!(!app.data.radarr_data.prompt_confirm);
}
@@ -289,7 +288,7 @@ mod tests {
LibraryHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::Movies, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert!(app.error.text.is_empty());
}
}
@@ -307,7 +306,7 @@ mod tests {
};
use crate::network::radarr_network::RadarrEvent;
use crate::test_edit_movie_key;
use crate::{assert_navigation_popped, test_edit_movie_key};
use super::*;
@@ -328,12 +327,9 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AddMovieSearchInput.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::AddMovieSearchInput.into());
assert!(app.ignore_special_keys_for_textbox_input);
assert!(app.data.radarr_data.add_movie_search.is_some());
assert_modal_present!(app.data.radarr_data.add_movie_search);
}
#[test]
@@ -357,7 +353,7 @@ mod tests {
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert!(!app.ignore_special_keys_for_textbox_input);
assert!(app.data.radarr_data.add_movie_search.is_none());
assert_modal_absent!(app.data.radarr_data.add_movie_search);
}
#[test]
@@ -389,7 +385,7 @@ mod tests {
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert!(app.data.radarr_data.edit_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_movie_modal);
}
#[test]
@@ -433,7 +429,7 @@ mod tests {
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert!(!app.data.radarr_data.prompt_confirm);
assert!(app.data.radarr_data.prompt_confirm_action.is_none());
assert_modal_absent!(app.data.radarr_data.prompt_confirm_action);
assert!(!app.is_routing);
}
@@ -454,10 +450,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::UpdateAllMoviesPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::UpdateAllMoviesPrompt.into());
}
#[test]
@@ -500,7 +493,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Movies.into());
assert!(app.should_refresh);
}
@@ -551,7 +544,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::UpdateAllMovies)
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
}
}
@@ -9,6 +9,8 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::library::movie_details_handler::{
@@ -294,7 +296,7 @@ mod tests {
app.get_current_route(),
app.data.radarr_data.movie_info_tabs.get_active_route()
);
assert_eq!(app.get_current_route(), left_block.into());
assert_navigation_pushed!(app, left_block.into());
MovieDetailsHandler::new(DEFAULT_KEYBINDINGS.right.key, &mut app, left_block, None).handle();
@@ -302,16 +304,16 @@ mod tests {
app.get_current_route(),
app.data.radarr_data.movie_info_tabs.get_active_route()
);
assert_eq!(app.get_current_route(), right_block.into());
assert_navigation_pushed!(app, right_block.into());
}
}
mod test_handle_submit {
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::assert_navigation_popped;
use crate::models::servarr_data::radarr::modals::MovieDetailsModal;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::assert_eq;
use rstest::rstest;
use super::*;
@@ -333,10 +335,7 @@ mod tests {
MovieDetailsHandler::new(SUBMIT_KEY, &mut app, ActiveRadarrBlock::ManualSearch, None)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::ManualSearchConfirmPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::ManualSearchConfirmPrompt.into());
}
#[test]
@@ -393,10 +392,7 @@ mod tests {
MovieDetailsHandler::new(SUBMIT_KEY, &mut app, prompt_block, None).handle();
assert!(app.data.radarr_data.prompt_confirm);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::MovieDetails.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::MovieDetails.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(expected_action)
@@ -423,10 +419,7 @@ mod tests {
MovieDetailsHandler::new(SUBMIT_KEY, &mut app, prompt_block, None).handle();
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::MovieDetails.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::MovieDetails.into());
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
}
}
@@ -435,10 +428,11 @@ mod tests {
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::assert_movie_info_tabs_reset;
use crate::models::servarr_data::radarr::radarr_data::radarr_test_utils::utils::create_test_radarr_data;
use crate::{assert_movie_info_tabs_reset, assert_navigation_popped};
use super::*;
use crate::assert_navigation_pushed;
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -463,7 +457,7 @@ mod tests {
MovieDetailsHandler::new(ESC_KEY, &mut app, active_radarr_block, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
assert_movie_info_tabs_reset!(app.data.radarr_data);
}
@@ -487,7 +481,7 @@ mod tests {
MovieDetailsHandler::new(ESC_KEY, &mut app, prompt_block, None).handle();
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_popped!(app, ActiveRadarrBlock::Movies.into());
}
}
@@ -505,7 +499,7 @@ mod tests {
EDIT_MOVIE_SELECTION_BLOCKS, RadarrData,
};
use crate::network::radarr_network::RadarrEvent;
use crate::test_edit_movie_key;
use crate::{assert_navigation_popped, test_edit_movie_key};
use super::*;
@@ -544,8 +538,8 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
assert_navigation_pushed!(
app,
ActiveRadarrBlock::AutomaticallySearchMoviePrompt.into()
);
}
@@ -629,7 +623,7 @@ mod tests {
.handle();
assert_eq!(app.get_current_route(), active_radarr_block.into());
assert!(app.data.radarr_data.edit_movie_modal.is_none());
assert_modal_absent!(app.data.radarr_data.edit_movie_modal);
}
#[rstest]
@@ -667,10 +661,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::UpdateAndScanPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::UpdateAndScanPrompt.into());
}
#[rstest]
@@ -739,7 +730,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), active_radarr_block.into());
assert_navigation_pushed!(app, active_radarr_block.into());
assert!(app.is_routing);
}
@@ -817,10 +808,7 @@ mod tests {
.handle();
assert!(app.data.radarr_data.prompt_confirm);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::MovieDetails.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::MovieDetails.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(expected_action)
@@ -1,7 +1,6 @@
#[cfg(test)]
#[macro_use]
pub(in crate::handlers::radarr_handlers) mod utils {
use crate::models::HorizontallyScrollableText;
use crate::models::radarr_models::{
AddMovieBody, AddMovieOptions, AddMovieSearchResult, Collection, CollectionMovie,
DownloadRecord, IndexerSettings, MediaInfo, MinimumAvailability, Movie, MovieCollection,
@@ -10,8 +9,9 @@ pub(in crate::handlers::radarr_handlers) mod utils {
use crate::models::servarr_models::{
Indexer, IndexerField, Language, Quality, QualityWrapper, RootFolder,
};
use crate::models::HorizontallyScrollableText;
use chrono::DateTime;
use serde_json::{Number, json};
use serde_json::{json, Number};
#[macro_export]
macro_rules! test_edit_movie_key {
@@ -37,8 +37,8 @@ pub(in crate::handlers::radarr_handlers) mod utils {
$handler::new(DEFAULT_KEYBINDINGS.edit.key, &mut app, $block, None).handle();
assert_eq!(
app.get_current_route(),
assert_navigation_pushed!(
app,
(ActiveRadarrBlock::EditMoviePrompt, Some($context)).into()
);
assert_eq!(
@@ -151,8 +151,8 @@ pub(in crate::handlers::radarr_handlers) mod utils {
$handler::new(DEFAULT_KEYBINDINGS.edit.key, &mut app, $block, None).handle();
assert_eq!(
app.get_current_route(),
$crate::assert_navigation_pushed!(
app,
(ActiveRadarrBlock::EditCollectionPrompt, $context).into()
);
assert_eq!(
@@ -6,6 +6,7 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_navigation_pushed;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::{RadarrHandler, handle_change_tab_left_right_keys};
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
@@ -33,7 +34,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
left_block.into()
);
assert_eq!(app.get_current_route(), left_block.into());
assert_navigation_pushed!(app, left_block.into());
app.data.radarr_data.main_tabs.set_index(index);
@@ -43,7 +44,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
right_block.into()
);
assert_eq!(app.get_current_route(), right_block.into());
assert_navigation_pushed!(app, right_block.into());
}
#[rstest]
@@ -69,7 +70,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
left_block.into()
);
assert_eq!(app.get_current_route(), left_block.into());
assert_navigation_pushed!(app, left_block.into());
app.data.radarr_data.main_tabs.set_index(index);
@@ -79,7 +80,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
right_block.into()
);
assert_eq!(app.get_current_route(), right_block.into());
assert_navigation_pushed!(app, right_block.into());
}
#[rstest]
@@ -6,6 +6,9 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_modal_absent;
use crate::assert_modal_present;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::root_folder;
@@ -91,10 +94,7 @@ mod tests {
RootFoldersHandler::new(DELETE_KEY, &mut app, ActiveRadarrBlock::RootFolders, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::DeleteRootFolderPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::DeleteRootFolderPrompt.into());
}
#[test]
@@ -124,6 +124,7 @@ mod tests {
use rstest::rstest;
use super::*;
use crate::assert_navigation_pushed;
#[rstest]
fn test_root_folders_tab_left(#[values(true, false)] is_ready: bool) {
@@ -143,7 +144,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Blocklist.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Blocklist.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Blocklist.into());
}
#[rstest]
@@ -164,7 +165,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Indexers.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Indexers.into());
}
#[rstest]
@@ -242,9 +243,9 @@ mod tests {
}
mod test_handle_submit {
use pretty_assertions::assert_eq;
use crate::assert_navigation_popped;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::assert_eq;
use super::*;
@@ -281,10 +282,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::AddRootFolder(expected_add_root_folder_body))
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::RootFolders.into());
}
#[test]
@@ -306,7 +304,7 @@ mod tests {
assert!(!app.data.radarr_data.prompt_confirm);
assert!(app.ignore_special_keys_for_textbox_input);
assert!(app.data.radarr_data.prompt_confirm_action.is_none());
assert_modal_absent!(app.data.radarr_data.prompt_confirm_action);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AddRootFolderPrompt.into()
@@ -338,10 +336,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteRootFolder(1))
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::RootFolders.into());
}
#[test]
@@ -365,15 +360,13 @@ mod tests {
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::RootFolders.into());
}
}
mod test_handle_esc {
use super::*;
use crate::assert_navigation_popped;
use pretty_assertions::assert_eq;
use rstest::rstest;
@@ -394,10 +387,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::RootFolders.into());
assert!(!app.data.radarr_data.prompt_confirm);
}
@@ -417,12 +407,9 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::RootFolders.into());
assert!(app.data.radarr_data.edit_root_folder.is_none());
assert_modal_absent!(app.data.radarr_data.edit_root_folder);
assert!(!app.data.radarr_data.prompt_confirm);
assert!(!app.ignore_special_keys_for_textbox_input);
}
@@ -437,18 +424,15 @@ mod tests {
RootFoldersHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::RootFolders, None).handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::RootFolders.into());
assert!(app.error.text.is_empty());
}
}
mod test_handle_key_char {
use pretty_assertions::{assert_eq, assert_str_eq};
use crate::assert_navigation_popped;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::{assert_eq, assert_str_eq};
use super::*;
@@ -469,12 +453,9 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::AddRootFolderPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::AddRootFolderPrompt.into());
assert!(app.ignore_special_keys_for_textbox_input);
assert!(app.data.radarr_data.edit_root_folder.is_some());
assert_modal_present!(app.data.radarr_data.edit_root_folder);
}
#[test]
@@ -501,7 +482,7 @@ mod tests {
ActiveRadarrBlock::RootFolders.into()
);
assert!(!app.ignore_special_keys_for_textbox_input);
assert!(app.data.radarr_data.edit_root_folder.is_none());
assert_modal_absent!(app.data.radarr_data.edit_root_folder);
}
#[test]
@@ -522,10 +503,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::RootFolders.into());
assert!(app.should_refresh);
}
@@ -627,10 +605,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteRootFolder(1))
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::RootFolders.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::RootFolders.into());
}
}
@@ -681,7 +656,7 @@ mod tests {
.build_add_root_folder_body();
assert_eq!(actual_add_root_folder_body, expected_add_root_folder_body);
assert!(app.data.radarr_data.edit_root_folder.is_none());
assert_modal_absent!(app.data.radarr_data.edit_root_folder);
}
#[test]
@@ -6,6 +6,7 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::system::system_details_handler::SystemDetailsHandler;
@@ -636,9 +637,9 @@ mod tests {
}
mod test_handle_submit {
use pretty_assertions::assert_eq;
use crate::assert_navigation_popped;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::assert_eq;
use super::*;
@@ -652,10 +653,7 @@ mod tests {
SystemDetailsHandler::new(SUBMIT_KEY, &mut app, ActiveRadarrBlock::SystemTasks, None)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::SystemTaskStartConfirmPrompt.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::SystemTaskStartConfirmPrompt.into());
}
#[test]
@@ -699,10 +697,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::StartTask(RadarrTaskName::default()))
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::SystemTasks.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::SystemTasks.into());
}
#[test]
@@ -722,10 +717,7 @@ mod tests {
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::SystemTasks.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::SystemTasks.into());
}
}
@@ -735,6 +727,7 @@ mod tests {
use rstest::rstest;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -757,7 +750,7 @@ mod tests {
SystemDetailsHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::SystemLogs, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::System.into());
assert_navigation_popped!(app, ActiveRadarrBlock::System.into());
assert!(app.data.radarr_data.log_details.items.is_empty());
}
@@ -775,7 +768,7 @@ mod tests {
SystemDetailsHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::SystemTasks, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::System.into());
assert_navigation_popped!(app, ActiveRadarrBlock::System.into());
}
#[rstest]
@@ -798,7 +791,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::System.into());
assert_navigation_popped!(app, ActiveRadarrBlock::System.into());
}
#[rstest]
@@ -810,7 +803,7 @@ mod tests {
SystemDetailsHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::SystemUpdates, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::System.into());
assert_navigation_popped!(app, ActiveRadarrBlock::System.into());
}
#[test]
@@ -828,10 +821,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::SystemTasks.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::SystemTasks.into());
assert!(!app.data.radarr_data.prompt_confirm);
}
}
@@ -843,6 +833,7 @@ mod tests {
use crate::network::radarr_network::RadarrEvent;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
#[rstest]
fn test_refresh_key(
@@ -866,7 +857,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), active_radarr_block.into());
assert_navigation_pushed!(app, active_radarr_block.into());
assert!(app.should_refresh);
}
@@ -921,10 +912,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::StartTask(RadarrTaskName::default()))
);
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::SystemTasks.into()
);
assert_navigation_popped!(app, ActiveRadarrBlock::SystemTasks.into());
}
}
@@ -5,6 +5,7 @@ mod tests {
use crate::app::App;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::assert_navigation_pushed;
use crate::event::Key;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::system::SystemHandler;
@@ -19,6 +20,7 @@ mod tests {
use pretty_assertions::assert_eq;
use super::*;
use crate::assert_navigation_pushed;
#[rstest]
fn test_system_tab_left(#[values(true, false)] is_ready: bool) {
@@ -38,7 +40,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Indexers.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Indexers.into());
}
#[rstest]
@@ -59,7 +61,7 @@ mod tests {
app.data.radarr_data.main_tabs.get_active_route(),
ActiveRadarrBlock::Movies.into()
);
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Movies.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::Movies.into());
}
}
@@ -67,6 +69,7 @@ mod tests {
use pretty_assertions::assert_eq;
use super::*;
use crate::{assert_navigation_popped, assert_navigation_pushed};
const ESC_KEY: Key = DEFAULT_KEYBINDINGS.esc.key;
@@ -80,7 +83,7 @@ mod tests {
SystemHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::System, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::System.into());
assert_navigation_popped!(app, ActiveRadarrBlock::System.into());
assert!(app.error.text.is_empty());
}
}
@@ -118,10 +121,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::SystemUpdates.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::SystemUpdates.into());
}
#[test]
@@ -181,10 +181,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::SystemQueuedEvents.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::SystemQueuedEvents.into());
}
#[test]
@@ -245,7 +242,7 @@ mod tests {
)
.handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::System.into());
assert_navigation_pushed!(app, ActiveRadarrBlock::System.into());
assert!(app.should_refresh);
}
@@ -308,10 +305,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::SystemLogs.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::SystemLogs.into());
assert_eq!(
app.data.radarr_data.log_details.items,
app.data.radarr_data.logs.items
@@ -380,10 +374,7 @@ mod tests {
)
.handle();
assert_eq!(
app.get_current_route(),
ActiveRadarrBlock::SystemTasks.into()
);
assert_navigation_pushed!(app, ActiveRadarrBlock::SystemTasks.into());
}
#[test]