Files
managarr/src/handlers/radarr_handlers/radarr_handler_test_utils.rs

232 lines
5.6 KiB
Rust

#[cfg(test)]
#[macro_use]
mod utils {
#[macro_export]
macro_rules! test_edit_movie_key {
($handler:ident, $block:expr, $context:expr) => {
let mut app = App::default();
let mut radarr_data = RadarrData {
quality_profile_map: BiMap::from_iter([
(2222, "HD - 1080p".to_owned()),
(1111, "Any".to_owned()),
]),
tags_map: BiMap::from_iter([(1, "test".to_owned())]),
..create_test_radarr_data()
};
radarr_data.movies.set_items(vec![Movie {
path: "/nfs/movies/Test".to_owned().into(),
monitored: true,
quality_profile_id: 2222,
minimum_availability: MinimumAvailability::Released,
tags: vec![Number::from(1)],
..Movie::default()
}]);
app.data.radarr_data = radarr_data;
$handler::with(DEFAULT_KEYBINDINGS.edit.key, &mut app, $block, None).handle();
assert_eq!(
app.get_current_route(),
(ActiveRadarrBlock::EditMoviePrompt, Some($context)).into()
);
assert_eq!(
app.data.radarr_data.selected_block.get_active_block(),
ActiveRadarrBlock::EditMovieToggleMonitored
);
assert_eq!(
app
.data
.radarr_data
.edit_movie_modal
.as_ref()
.unwrap()
.minimum_availability_list
.items,
Vec::from_iter(MinimumAvailability::iter())
);
assert_eq!(
app
.data
.radarr_data
.edit_movie_modal
.as_ref()
.unwrap()
.minimum_availability_list
.current_selection(),
&MinimumAvailability::Released
);
assert_eq!(
app
.data
.radarr_data
.edit_movie_modal
.as_ref()
.unwrap()
.quality_profile_list
.items,
vec!["Any".to_owned(), "HD - 1080p".to_owned()]
);
assert_str_eq!(
app
.data
.radarr_data
.edit_movie_modal
.as_ref()
.unwrap()
.quality_profile_list
.current_selection(),
"HD - 1080p"
);
assert_str_eq!(
app
.data
.radarr_data
.edit_movie_modal
.as_ref()
.unwrap()
.path
.text,
"/nfs/movies/Test"
);
assert_str_eq!(
app
.data
.radarr_data
.edit_movie_modal
.as_ref()
.unwrap()
.tags
.text,
"test"
);
assert_eq!(
app
.data
.radarr_data
.edit_movie_modal
.as_ref()
.unwrap()
.monitored,
Some(true)
);
assert_eq!(
app.data.radarr_data.selected_block.blocks,
EDIT_MOVIE_SELECTION_BLOCKS
);
};
}
#[macro_export]
macro_rules! test_edit_collection_key {
($handler:ident, $block:expr, $context:expr) => {
let mut app = App::default();
let mut radarr_data = RadarrData {
quality_profile_map: BiMap::from_iter([
(2222, "HD - 1080p".to_owned()),
(1111, "Any".to_owned()),
]),
..create_test_radarr_data()
};
radarr_data.collections.set_items(vec![Collection {
root_folder_path: "/nfs/movies/Test".to_owned().into(),
monitored: true,
search_on_add: true,
quality_profile_id: 2222,
minimum_availability: MinimumAvailability::Released,
..Collection::default()
}]);
app.data.radarr_data = radarr_data;
$handler::with(DEFAULT_KEYBINDINGS.edit.key, &mut app, $block, None).handle();
assert_eq!(
app.get_current_route(),
(ActiveRadarrBlock::EditCollectionPrompt, Some($context)).into()
);
assert_eq!(
app.data.radarr_data.selected_block.get_active_block(),
ActiveRadarrBlock::EditCollectionToggleMonitored
);
assert_eq!(
app
.data
.radarr_data
.edit_collection_modal
.as_ref()
.unwrap()
.minimum_availability_list
.items,
Vec::from_iter(MinimumAvailability::iter())
);
assert_eq!(
app
.data
.radarr_data
.edit_collection_modal
.as_ref()
.unwrap()
.minimum_availability_list
.current_selection(),
&MinimumAvailability::Released
);
assert_eq!(
app
.data
.radarr_data
.edit_collection_modal
.as_ref()
.unwrap()
.quality_profile_list
.items,
vec!["Any".to_owned(), "HD - 1080p".to_owned()]
);
assert_str_eq!(
app
.data
.radarr_data
.edit_collection_modal
.as_ref()
.unwrap()
.quality_profile_list
.current_selection(),
"HD - 1080p"
);
assert_str_eq!(
app
.data
.radarr_data
.edit_collection_modal
.as_ref()
.unwrap()
.path
.text,
"/nfs/movies/Test"
);
assert_eq!(
app
.data
.radarr_data
.edit_collection_modal
.as_ref()
.unwrap()
.monitored,
Some(true)
);
assert_eq!(
app
.data
.radarr_data
.edit_collection_modal
.as_ref()
.unwrap()
.search_on_add,
Some(true)
);
assert_eq!(
app.data.radarr_data.selected_block.blocks,
EDIT_COLLECTION_SELECTION_BLOCKS
);
};
}
}