test: Wrote snapshot tests for all Sonarr UI

This commit is contained in:
2025-12-16 14:12:10 -07:00
parent e0fcbc71e1
commit 0532d59746
257 changed files with 8089 additions and 1029 deletions
@@ -4,8 +4,6 @@ mod tests {
use crate::app::App;
use crate::models::servarr_data::sonarr::sonarr_data::{ActiveSonarrBlock, BLOCKLIST_BLOCKS};
use crate::models::sonarr_models::BlocklistItem;
use crate::models::stateful_table::StatefulTable;
use crate::ui::DrawUi;
use crate::ui::sonarr_ui::blocklist::BlocklistUi;
use crate::ui::ui_test_utils::test_utils::render_to_string_with_app;
@@ -23,11 +21,12 @@ mod tests {
mod snapshot_tests {
use crate::ui::ui_test_utils::test_utils::TerminalSize;
use rstest::rstest;
use super::*;
#[test]
fn test_blocklist_ui_renders_loading_state() {
fn test_blocklist_ui_renders_loading() {
let mut app = App::test_default();
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::Blocklist.into());
@@ -40,10 +39,9 @@ mod tests {
}
#[test]
fn test_blocklist_ui_renders_empty_blocklist() {
fn test_blocklist_ui_renders_empty() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::Blocklist.into());
app.data.sonarr_data.blocklist = StatefulTable::default();
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
BlocklistUi::draw(f, app, f.area());
@@ -52,29 +50,25 @@ mod tests {
insta::assert_snapshot!(output);
}
#[test]
fn test_blocklist_ui_renders_with_blocklist_items() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::Blocklist.into());
app.data.sonarr_data.blocklist = StatefulTable::default();
app.data.sonarr_data.blocklist.set_items(vec![
BlocklistItem {
id: 1,
source_title: "Test.Series.S01E01.1080p".to_owned(),
..BlocklistItem::default()
},
BlocklistItem {
id: 2,
source_title: "Another.Series.S02E05.720p".to_owned(),
..BlocklistItem::default()
},
]);
#[rstest]
fn test_blocklist_ui_renders(
#[values(
ActiveSonarrBlock::Blocklist,
ActiveSonarrBlock::BlocklistItemDetails,
ActiveSonarrBlock::DeleteBlocklistItemPrompt,
ActiveSonarrBlock::BlocklistClearAllItemsPrompt,
ActiveSonarrBlock::BlocklistSortPrompt
)]
active_sonarr_block: ActiveSonarrBlock,
) {
let mut app = App::test_default_fully_populated();
app.push_navigation_stack(active_sonarr_block.into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
BlocklistUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
insta::assert_snapshot!(format!("blocklist_tab_{active_sonarr_block}"), output);
}
}
}
@@ -3,6 +3,5 @@ source: src/ui/sonarr_ui/blocklist/blocklist_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Series Title Source Title Language Quality Date
=> Test.Series.S01E01.1080p 1970-01-01 00:00:00 UTC
Another.Series.S02E05.720p 1970-01-01 00:00:00 UTC
Series Title Source Title Language Quality Date
=> Test Series Test Source Title English Bluray-1080p 2024-02-10 07:28:45 UTC
@@ -0,0 +1,34 @@
---
source: src/ui/sonarr_ui/blocklist/blocklist_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Series Title ▼ Source Title Language Quality Date
=> Test Series Test Source Title English Bluray-1080p 2024-02-10 07:28:45 UTC
╭────── Clear Blocklist ──────╮
│ Do you want to clear your │
│ blocklist? │
│ │
│ │
│ │
│╭──────────────╮╭─────────────╮│
││ Yes ││ No ││
│╰──────────────╯╰─────────────╯│
╰───────────────────────────────╯
@@ -0,0 +1,34 @@
---
source: src/ui/sonarr_ui/blocklist/blocklist_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Series Title ▼ Source Title Language Quality Date
=> Test Series Test Source Title English Bluray-1080p 2024-02-10 07:28:45 UTC
╭─────────────────────────────────── Details ───────────────────────────────────╮
│Name: Test Source Title │
│Protocol: usenet │
│Indexer: NZBgeek (Prowlarr) │
│Message: test message │
│ │
│ │
│ │
│ │
╰─────────────────────────────────────────────────────────────────────────────────╯
@@ -0,0 +1,42 @@
---
source: src/ui/sonarr_ui/blocklist/blocklist_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Series Title Source Title Language Quality Date
=> Test Series Test Source Title English Bluray-1080p 2024-02-10 07:28:45 UTC
╭───────────────────────────────╮
│Something │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
╰───────────────────────────────╯
@@ -0,0 +1,38 @@
---
source: src/ui/sonarr_ui/blocklist/blocklist_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Series Title ▼ Source Title Language Quality Date
=> Test Series Test Source Title English Bluray-1080p 2024-02-10 07:28:45 UTC
╭────────────── Remove Item from Blocklist ───────────────╮
│ Do you want to remove this item from your blocklist: │
│ Test Source Title? │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭────────────────────────────╮╭───────────────────────────╮│
││ Yes ││ No ││
│╰────────────────────────────╯╰───────────────────────────╯│
╰───────────────────────────────────────────────────────────╯