feat: Implemented TUI handler support for the Album Details popup in Lidarr

This commit is contained in:
2026-01-16 17:16:44 -07:00
parent bc6ecc39f4
commit caf4ad1e64
17 changed files with 2136 additions and 79 deletions
+78 -39
View File
@@ -2,7 +2,9 @@
mod snapshot_tests {
use crate::app::App;
use crate::handlers::populate_keymapping_table;
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
use crate::models::servarr_data::lidarr::lidarr_data::ActiveLidarrBlock;
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock;
use crate::ui;
use crate::ui::ui_test_utils::test_utils::{TerminalSize, render_to_string_with_app};
@@ -44,42 +46,79 @@ mod snapshot_tests {
insta::assert_snapshot!(output);
}
// TODO after adding fully populated Sonarr data
// #[test]
// fn test_sonarr_ui_renders_library_tab() {
// let mut app = App::test_default_fully_populated();
// app.push_navigation_stack(ActiveSonarrBlock::default().into());
//
// let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
// ui(f, app);
// });
//
// insta::assert_snapshot!(output);
// }
//
// #[test]
// fn test_sonarr_ui_renders_library_tab_with_error() {
// let mut app = App::test_default_fully_populated();
// app.push_navigation_stack(ActiveSonarrBlock::default().into());
// app.error = "Some error".into();
//
// let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
// ui(f, app);
// });
//
// insta::assert_snapshot!(output);
// }
//
// #[test]
// fn test_sonarr_ui_renders_library_tab_error_popup() {
// let mut app = App::test_default_fully_populated();
// populate_keymapping_table(&mut app);
// app.push_navigation_stack(ActiveSonarrBlock::default().into());
//
// let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
// ui(f, app);
// });
//
// insta::assert_snapshot!(output);
// }
#[test]
fn test_sonarr_ui_renders_library_tab() {
let mut app = App::test_default_fully_populated();
app.push_navigation_stack(ActiveSonarrBlock::default().into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
ui(f, app);
});
insta::assert_snapshot!(output);
}
#[test]
fn test_sonarr_ui_renders_library_tab_with_error() {
let mut app = App::test_default_fully_populated();
app.push_navigation_stack(ActiveSonarrBlock::default().into());
app.error = "Some error".into();
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
ui(f, app);
});
insta::assert_snapshot!(output);
}
#[test]
fn test_sonarr_ui_renders_library_tab_error_popup() {
let mut app = App::test_default_fully_populated();
populate_keymapping_table(&mut app);
app.push_navigation_stack(ActiveSonarrBlock::default().into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
ui(f, app);
});
insta::assert_snapshot!(output);
}
#[test]
fn test_lidarr_ui_renders_library_tab() {
let mut app = App::test_default_fully_populated();
app.push_navigation_stack(ActiveLidarrBlock::default().into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
ui(f, app);
});
insta::assert_snapshot!(output);
}
#[test]
fn test_lidarr_ui_renders_library_tab_with_error() {
let mut app = App::test_default_fully_populated();
app.push_navigation_stack(ActiveLidarrBlock::default().into());
app.error = "Some error".into();
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
ui(f, app);
});
insta::assert_snapshot!(output);
}
#[test]
fn test_lidarr_ui_renders_library_tab_error_popup() {
let mut app = App::test_default_fully_populated();
populate_keymapping_table(&mut app);
app.push_navigation_stack(ActiveLidarrBlock::default().into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
ui(f, app);
});
insta::assert_snapshot!(output);
}
}