46 lines
1.5 KiB
Rust
46 lines
1.5 KiB
Rust
#[cfg(test)]
|
|
mod tests {
|
|
use pretty_assertions::assert_eq;
|
|
use ratatui::style::Style;
|
|
use rstest::rstest;
|
|
use strum::IntoEnumIterator;
|
|
|
|
use crate::models::servarr_data::radarr::radarr_data::{ActiveRadarrBlock, MOVIE_DETAILS_BLOCKS};
|
|
use crate::ui::DrawUi;
|
|
use crate::ui::radarr_ui::library::movie_details_ui::{
|
|
MovieDetailsUi, style_from_download_status,
|
|
};
|
|
use crate::ui::styles::ManagarrStyle;
|
|
|
|
#[test]
|
|
fn test_movie_details_ui_accepts() {
|
|
ActiveRadarrBlock::iter().for_each(|active_radarr_block| {
|
|
if MOVIE_DETAILS_BLOCKS.contains(&active_radarr_block) {
|
|
assert!(MovieDetailsUi::accepts(active_radarr_block.into()));
|
|
} else {
|
|
assert!(!MovieDetailsUi::accepts(active_radarr_block.into()));
|
|
}
|
|
});
|
|
}
|
|
|
|
#[rstest]
|
|
#[case("Downloading", true, "", Style::new().downloading())]
|
|
#[case("Downloaded", true, "", Style::new().downloaded())]
|
|
#[case("Awaiting Import", true, "", Style::new().awaiting_import())]
|
|
#[case("Missing", false, "", Style::new().unmonitored_missing())]
|
|
#[case("Missing", false, "", Style::new().unmonitored_missing())]
|
|
#[case("Missing", true, "released", Style::new().missing())]
|
|
#[case("", true, "", Style::new().downloaded())]
|
|
fn test_style_from_download_status(
|
|
#[case] download_status: &str,
|
|
#[case] is_monitored: bool,
|
|
#[case] movie_status: &str,
|
|
#[case] expected_style: Style,
|
|
) {
|
|
assert_eq!(
|
|
style_from_download_status(download_status, is_monitored, movie_status.to_owned()),
|
|
expected_style
|
|
);
|
|
}
|
|
}
|