feat: Support for updating all Lidarr artists in both the CLI and TUI

This commit is contained in:
2026-01-06 12:47:10 -07:00
parent 96308afeee
commit 9b4eda6a9d
21 changed files with 701 additions and 100 deletions
@@ -247,5 +247,18 @@ mod tests {
insta::assert_snapshot!(output);
}
#[test]
fn test_library_ui_renders_update_all_artists_prompt() {
let mut app = App::test_default_fully_populated();
app.push_navigation_stack(ActiveLidarrBlock::Artists.into());
app.push_navigation_stack(ActiveLidarrBlock::UpdateAllArtistsPrompt.into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
LibraryUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
}
}
+18 -2
View File
@@ -6,6 +6,10 @@ use ratatui::{
};
use crate::ui::widgets::managarr_table::ManagarrTable;
use crate::ui::widgets::{
confirmation_prompt::ConfirmationPrompt,
popup::{Popup, Size},
};
use crate::utils::convert_to_gb;
use crate::{
app::App,
@@ -42,8 +46,20 @@ impl DrawUi for LibraryUi {
let route = app.get_current_route();
draw_library(f, app, area);
if DeleteArtistUi::accepts(route) {
DeleteArtistUi::draw(f, app, area);
match route {
_ if DeleteArtistUi::accepts(route) => DeleteArtistUi::draw(f, app, area),
Route::Lidarr(ActiveLidarrBlock::UpdateAllArtistsPrompt, _) => {
let confirmation_prompt = ConfirmationPrompt::new()
.title("Update All Artists")
.prompt("Do you want to update info and scan your disks for all of your artists?")
.yes_no_value(app.data.lidarr_data.prompt_confirm);
f.render_widget(
Popup::new(confirmation_prompt).size(Size::MediumPrompt),
f.area(),
);
}
_ => (),
}
}
}
@@ -0,0 +1,38 @@
---
source: src/ui/lidarr_ui/library/library_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Name ▼ Type Status Quality Profile Metadata Profile Albums Tracks Size Monitored Tags
=> Continuing 0 0.00 GB
╭────────────────── Update All Artists ───────────────────╮
│ Do you want to update info and scan your disks for all of │
│ your artists? │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭────────────────────────────╮╭───────────────────────────╮│
││ Yes ││ No ││
│╰────────────────────────────╯╰───────────────────────────╯│
╰───────────────────────────────────────────────────────────╯
@@ -382,5 +382,18 @@ mod tests {
insta::assert_snapshot!(output);
}
#[test]
fn test_library_ui_renders_update_all_series_prompt() {
let mut app = App::test_default_fully_populated();
app.push_navigation_stack(ActiveSonarrBlock::Series.into());
app.push_navigation_stack(ActiveSonarrBlock::UpdateAllSeriesPrompt.into());
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
LibraryUi::draw(f, app, f.area());
});
insta::assert_snapshot!(output);
}
}
}
@@ -0,0 +1,38 @@
---
source: src/ui/sonarr_ui/library/library_ui_tests.rs
expression: output
---
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Title ▼ Year Network Status Rating Type Quality Profile Language Size Monitored Tags
=> Test 2022 HBO Continuin TV-MA Standard Bluray-1080p English 59.51 GB 🏷
╭─────────────────── Update All Series ───────────────────╮
│ Do you want to update info and scan your disks for all of │
│ your series? │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│╭────────────────────────────╮╭───────────────────────────╮│
││ Yes ││ No ││
│╰────────────────────────────╯╰───────────────────────────╯│
╰───────────────────────────────────────────────────────────╯