test: Implemented UI snapshot tests

This commit is contained in:
2025-12-12 15:44:11 -07:00
parent c3fa689617
commit 82f30f126d
121 changed files with 3720 additions and 43 deletions
+61 -1
View File
@@ -1,9 +1,14 @@
#[cfg(test)]
mod tests {
use strum::IntoEnumIterator;
use crate::app::App;
use crate::models::servarr_data::sonarr::sonarr_data::{ActiveSonarrBlock, HISTORY_BLOCKS};
use crate::models::sonarr_models::SonarrHistoryItem;
use crate::models::stateful_table::StatefulTable;
use crate::ui::DrawUi;
use crate::ui::sonarr_ui::history::HistoryUi;
use strum::IntoEnumIterator;
use crate::ui::ui_test_utils::test_utils::render_to_string_with_app;
#[test]
fn test_history_ui_accepts() {
@@ -15,4 +20,59 @@ mod tests {
}
});
}
mod snapshot_tests {
use super::*;
#[test]
fn test_history_ui_renders_loading_state() {
let mut app = App::test_default();
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::History.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
HistoryUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[test]
fn test_history_ui_renders_empty_history() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::History.into());
app.data.sonarr_data.history = StatefulTable::default();
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
HistoryUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[test]
fn test_history_ui_renders_with_history_items() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::History.into());
app.data.sonarr_data.history = StatefulTable::default();
app.data.sonarr_data.history.set_items(vec![
SonarrHistoryItem {
id: 1,
source_title: "Test.Series.S01E01".to_owned().into(),
..SonarrHistoryItem::default()
},
SonarrHistoryItem {
id: 2,
source_title: "Another.Series.S02E05".to_owned().into(),
..SonarrHistoryItem::default()
},
]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
HistoryUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
}
}
@@ -0,0 +1,5 @@
---
source: src/ui/sonarr_ui/history/history_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@@ -0,0 +1,8 @@
---
source: src/ui/sonarr_ui/history/history_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading ...
@@ -0,0 +1,8 @@
---
source: src/ui/sonarr_ui/history/history_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Source Title Event Type Language Quality Date
=> Test.Series.S01E01 unknown 1970-01-01 00:00:00 UTC
Another.Series.S02E05 unknown 1970-01-01 00:00:00 UTC