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
@@ -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]