refactor: Updated all handler tests to use purpose built assertions to improve readability and maintainability

This commit is contained in:
Dark-Alex-17 committed 2025-12-09 14:28:47 -07:00
1 parent d47dadeb88
commit d4bea91186
38 files changed
+801 -751

No files matched your search

@@ -1,14 +1,14 @@
#[cfg(test)]
mod tests {
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
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;
use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::indexer;
use crate::handlers::KeyEventHandler;
use crate::models::servarr_data::modals::EditIndexerModal;
use crate::models::servarr_data::radarr::radarr_data::{ActiveRadarrBlock, EDIT_INDEXER_BLOCKS};
use crate::models::servarr_models::EditIndexerParams;
@@ -21,9 +21,9 @@ mod tests {
use pretty_assertions::assert_eq;
use rstest::rstest;
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::models::BlockSelectionState;
use super::*;
@@ -422,11 +422,11 @@ mod tests {
use std::sync::atomic::Ordering;
use crate::app::App;
use crate::models::BlockSelectionState;
use crate::models::servarr_data::modals::EditIndexerModal;
use crate::models::servarr_data::radarr::radarr_data::{
EDIT_INDEXER_NZB_SELECTION_BLOCKS, EDIT_INDEXER_TORRENT_SELECTION_BLOCKS,
};
use crate::models::BlockSelectionState;
use pretty_assertions::assert_eq;
use rstest::rstest;
@@ -856,7 +856,7 @@ mod tests {
use crate::assert_navigation_popped;
use crate::models::servarr_data::modals::EditIndexerModal;
use crate::models::{
servarr_data::radarr::radarr_data::EDIT_INDEXER_TORRENT_SELECTION_BLOCKS, BlockSelectionState,
BlockSelectionState, servarr_data::radarr::radarr_data::EDIT_INDEXER_TORRENT_SELECTION_BLOCKS,
};
use crate::network::radarr_network::RadarrEvent;
@@ -887,9 +887,9 @@ mod tests {
.handle();
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_none!(app.data.radarr_data.prompt_confirm_action);
assert!(!app.should_refresh);
assert_eq!(app.data.radarr_data.edit_indexer_modal, None);
assert_none!(app.data.radarr_data.edit_indexer_modal);
}
#[test]
@@ -972,7 +972,7 @@ mod tests {
);
assert_modal_present!(app.data.radarr_data.edit_indexer_modal);
assert!(!app.should_refresh);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_none!(app.data.radarr_data.prompt_confirm_action);
}
#[rstest]
@@ -1054,14 +1054,16 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert!(app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_rss
.unwrap());
assert!(
app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_rss
.unwrap()
);
EditIndexerHandler::new(
SUBMIT_KEY,
@@ -1075,14 +1077,16 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert!(!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_rss
.unwrap());
assert!(
!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_rss
.unwrap()
);
}
#[test]
@@ -1107,14 +1111,16 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert!(app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_automatic_search
.unwrap());
assert!(
app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_automatic_search
.unwrap()
);
EditIndexerHandler::new(
SUBMIT_KEY,
@@ -1128,14 +1134,16 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert!(!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_automatic_search
.unwrap());
assert!(
!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_automatic_search
.unwrap()
);
}
#[test]
@@ -1160,14 +1168,16 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert!(app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_interactive_search
.unwrap());
assert!(
app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_interactive_search
.unwrap()
);
EditIndexerHandler::new(
SUBMIT_KEY,
@@ -1181,14 +1191,16 @@ mod tests {
app.get_current_route(),
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert!(!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_interactive_search
.unwrap());
assert!(
!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.enable_interactive_search
.unwrap()
);
}
#[test]
@@ -1212,15 +1224,17 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert!(!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.name
.text
.is_empty());
assert!(
!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.name
.text
.is_empty()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
@@ -1245,15 +1259,17 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert!(!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.url
.text
.is_empty());
assert!(
!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.url
.text
.is_empty()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
@@ -1278,15 +1294,17 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert!(!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.api_key
.text
.is_empty());
assert!(
!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.api_key
.text
.is_empty()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
@@ -1311,15 +1329,17 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert!(!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.seed_ratio
.text
.is_empty());
assert!(
!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.seed_ratio
.text
.is_empty()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
@@ -1344,15 +1364,17 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert!(!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.tags
.text
.is_empty());
assert!(
!app
.data
.radarr_data
.edit_indexer_modal
.as_ref()
.unwrap()
.tags
.text
.is_empty()
);
assert_navigation_popped!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
}
}
@@ -1386,7 +1408,7 @@ mod tests {
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.edit_indexer_modal, None);
assert_none!(app.data.radarr_data.edit_indexer_modal);
}
#[rstest]
@@ -1422,9 +1444,9 @@ mod tests {
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::models::BlockSelectionState;
use crate::network::radarr_network::RadarrEvent;
use pretty_assertions::{assert_eq, assert_str_eq};
@@ -4,14 +4,14 @@ mod tests {
use rstest::rstest;
use strum::IntoEnumIterator;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
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;
use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::indexer_settings;
use crate::handlers::KeyEventHandler;
use crate::models::radarr_models::IndexerSettings;
use crate::models::servarr_data::radarr::radarr_data::{
ActiveRadarrBlock, INDEXER_SETTINGS_BLOCKS,
@@ -21,9 +21,9 @@ mod tests {
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::models::BlockSelectionState;
use crate::models::radarr_models::IndexerSettings;
use crate::models::servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS;
use crate::models::BlockSelectionState;
use super::*;
@@ -269,9 +269,9 @@ mod tests {
mod test_handle_left_right_action {
use std::sync::atomic::Ordering;
use crate::models::BlockSelectionState;
use crate::models::radarr_models::IndexerSettings;
use crate::models::servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS;
use crate::models::BlockSelectionState;
use pretty_assertions::assert_eq;
use rstest::rstest;
@@ -428,8 +428,8 @@ mod tests {
use crate::{
assert_navigation_popped,
models::{
radarr_models::IndexerSettings,
servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS, BlockSelectionState,
BlockSelectionState, radarr_models::IndexerSettings,
servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS,
},
network::radarr_network::RadarrEvent,
};
@@ -461,9 +461,9 @@ mod tests {
.handle();
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_none!(app.data.radarr_data.prompt_confirm_action);
assert!(!app.should_refresh);
assert_eq!(app.data.radarr_data.indexer_settings, None);
assert_none!(app.data.radarr_data.indexer_settings);
}
#[test]
@@ -739,15 +739,17 @@ mod tests {
.handle();
assert!(!app.ignore_special_keys_for_textbox_input);
assert!(!app
.data
.radarr_data
.indexer_settings
.as_ref()
.unwrap()
.whitelisted_hardcoded_subs
.text
.is_empty());
assert!(
!app
.data
.radarr_data
.indexer_settings
.as_ref()
.unwrap()
.whitelisted_hardcoded_subs
.text
.is_empty()
);
assert_navigation_popped!(app, ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
}
@@ -774,7 +776,6 @@ mod tests {
}
mod test_handle_esc {
use pretty_assertions::assert_eq;
use rstest::rstest;
use crate::models::radarr_models::IndexerSettings;
@@ -802,7 +803,7 @@ mod tests {
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.indexer_settings, None);
assert_none!(app.data.radarr_data.indexer_settings);
}
#[test]
@@ -825,9 +826,9 @@ mod tests {
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(!app.ignore_special_keys_for_textbox_input);
assert_eq!(
app.data.radarr_data.indexer_settings,
Some(IndexerSettings::default())
assert_some_eq_x!(
&app.data.radarr_data.indexer_settings,
&IndexerSettings::default()
);
}
@@ -851,21 +852,21 @@ mod tests {
IndexerSettingsHandler::new(ESC_KEY, &mut app, active_radarr_block, None).handle();
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(
app.data.radarr_data.indexer_settings,
Some(IndexerSettings::default())
assert_some_eq_x!(
&app.data.radarr_data.indexer_settings,
&IndexerSettings::default()
);
}
}
mod test_handle_key_char {
use pretty_assertions::{assert_eq, assert_str_eq};
use pretty_assertions::assert_str_eq;
use crate::{
assert_navigation_popped,
models::{
radarr_models::IndexerSettings,
servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS, BlockSelectionState,
BlockSelectionState, radarr_models::IndexerSettings,
servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS,
},
network::radarr_network::RadarrEvent,
};
@@ -950,9 +951,9 @@ mod tests {
.handle();
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::EditAllIndexerSettings(indexer_settings()))
assert_some_eq_x!(
&app.data.radarr_data.prompt_confirm_action,
&RadarrEvent::EditAllIndexerSettings(indexer_settings())
);
assert_modal_absent!(app.data.radarr_data.indexer_settings);
assert!(app.should_refresh);
@@ -4,15 +4,15 @@ mod tests {
use rstest::rstest;
use strum::IntoEnumIterator;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
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;
use crate::handlers::radarr_handlers::radarr_handler_test_utils::utils::indexer;
use crate::handlers::KeyEventHandler;
use crate::models::servarr_data::radarr::radarr_data::{
ActiveRadarrBlock, EDIT_INDEXER_BLOCKS, INDEXERS_BLOCKS, INDEXER_SETTINGS_BLOCKS,
ActiveRadarrBlock, EDIT_INDEXER_BLOCKS, INDEXER_SETTINGS_BLOCKS, INDEXERS_BLOCKS,
};
use crate::models::servarr_models::Indexer;
use crate::test_handler_delegation;
@@ -125,7 +125,7 @@ mod tests {
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::{
RadarrData, EDIT_INDEXER_NZB_SELECTION_BLOCKS, EDIT_INDEXER_TORRENT_SELECTION_BLOCKS,
EDIT_INDEXER_NZB_SELECTION_BLOCKS, EDIT_INDEXER_TORRENT_SELECTION_BLOCKS, RadarrData,
};
use crate::models::servarr_models::{Indexer, IndexerField};
use crate::network::radarr_network::RadarrEvent;
@@ -192,13 +192,13 @@ mod tests {
IndexersHandler::new(SUBMIT_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_navigation_pushed!(app, ActiveRadarrBlock::EditIndexerPrompt.into());
assert_eq!(
app.data.radarr_data.edit_indexer_modal,
Some((&app.data.radarr_data).into())
assert_some_eq_x!(
&app.data.radarr_data.edit_indexer_modal,
&EditIndexerModal::from(&app.data.radarr_data)
);
assert_eq!(
app.data.radarr_data.edit_indexer_modal,
Some(expected_edit_indexer_modal)
assert_some_eq_x!(
&app.data.radarr_data.edit_indexer_modal,
&expected_edit_indexer_modal
);
if torrent_protocol {
assert_eq!(
@@ -227,7 +227,7 @@ mod tests {
IndexersHandler::new(SUBMIT_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_eq!(app.data.radarr_data.edit_indexer_modal, None);
assert_none!(app.data.radarr_data.edit_indexer_modal);
}
#[test]
@@ -247,9 +247,9 @@ mod tests {
.handle();
assert!(app.data.radarr_data.prompt_confirm);
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteIndexer(1))
assert_some_eq_x!(
&app.data.radarr_data.prompt_confirm_action,
&RadarrEvent::DeleteIndexer(1)
);
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
}
@@ -274,14 +274,12 @@ mod tests {
.handle();
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_none!(app.data.radarr_data.prompt_confirm_action);
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
}
}
mod test_handle_esc {
use pretty_assertions::assert_eq;
use super::*;
use crate::assert_navigation_popped;
@@ -318,7 +316,7 @@ mod tests {
IndexersHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::TestIndexer, None).handle();
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert_eq!(app.data.radarr_data.indexer_test_errors, None);
assert_none!(app.data.radarr_data.indexer_test_errors);
}
#[rstest]
@@ -332,7 +330,7 @@ mod tests {
IndexersHandler::new(ESC_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
assert!(app.error.text.is_empty());
assert_is_empty!(app.error.text);
}
}
@@ -538,9 +536,9 @@ mod tests {
.handle();
assert!(app.data.radarr_data.prompt_confirm);
assert_eq!(
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteIndexer(1))
assert_some_eq_x!(
&app.data.radarr_data.prompt_confirm_action,
&RadarrEvent::DeleteIndexer(1)
);
assert_navigation_popped!(app, ActiveRadarrBlock::Indexers.into());
}
@@ -1,9 +1,9 @@
#[cfg(test)]
mod tests {
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::app::App;
use crate::handlers::radarr_handlers::indexers::test_all_indexers_handler::TestAllIndexersHandler;
use crate::app::key_binding::DEFAULT_KEYBINDINGS;
use crate::handlers::KeyEventHandler;
use crate::handlers::radarr_handlers::indexers::test_all_indexers_handler::TestAllIndexersHandler;
use crate::models::servarr_data::modals::IndexerTestResultModalItem;
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
use crate::models::stateful_table::StatefulTable;