refactor: Created dedicated proptests and assertions to clean up the handler unit tests
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user