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
@@ -2,9 +2,14 @@
mod tests {
use strum::IntoEnumIterator;
use crate::app::App;
use crate::models::HorizontallyScrollableText;
use crate::models::servarr_data::radarr::radarr_data::{ActiveRadarrBlock, ROOT_FOLDERS_BLOCKS};
use crate::models::servarr_models::RootFolder;
use crate::models::stateful_table::StatefulTable;
use crate::ui::DrawUi;
use crate::ui::radarr_ui::root_folders::RootFoldersUi;
use crate::ui::ui_test_utils::test_utils::render_to_string_with_app;
#[test]
fn test_root_folders_ui_accepts() {
@@ -16,4 +21,71 @@ mod tests {
}
});
}
#[test]
fn test_root_folders_ui_renders_loading_state() {
let mut app = App::test_default();
app.is_loading = true;
app.push_navigation_stack(ActiveRadarrBlock::RootFolders.into());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[test]
fn test_root_folders_ui_renders_empty_root_folders() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveRadarrBlock::RootFolders.into());
app.data.radarr_data.root_folders = StatefulTable::default();
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[test]
fn test_root_folders_ui_renders_with_root_folders() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveRadarrBlock::RootFolders.into());
app.data.radarr_data.root_folders = StatefulTable::default();
app.data.radarr_data.root_folders.set_items(vec![
RootFolder {
path: "/movies".to_owned(),
accessible: true,
free_space: 1024 * 1024 * 1024 * 100,
..RootFolder::default()
},
RootFolder {
path: "/media/movies".to_owned(),
accessible: true,
free_space: 1024 * 1024 * 1024 * 50,
..RootFolder::default()
},
]);
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
#[test]
fn test_root_folders_ui_renders_add_root_folder() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveRadarrBlock::AddRootFolderPrompt.into());
app.data.radarr_data.root_folders = StatefulTable::default();
app.data.radarr_data.edit_root_folder = Some(HorizontallyScrollableText::default());
let output = render_to_string_with_app(120, 30, &mut app, |f, app| {
RootFoldersUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
}
@@ -0,0 +1,20 @@
---
source: src/ui/radarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
╭────── Add Root Folder ───────╮
<esc> cancel
@@ -0,0 +1,5 @@
---
source: src/ui/radarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
@@ -0,0 +1,8 @@
---
source: src/ui/radarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Loading ...
@@ -0,0 +1,8 @@
---
source: src/ui/radarr_ui/root_folders/root_folders_ui_tests.rs
expression: output
---
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Path Free Space Unmapped Folders
=> /movies 100.00 GB 0
/media/movies 50.00 GB 0