feat: Added CLI and TUI support for editing Lidarr artists
This commit is contained in:
@@ -12,7 +12,7 @@ use crate::models::servarr_data::lidarr::modals::EditArtistModal;
|
||||
use crate::render_selectable_input_box;
|
||||
|
||||
use crate::ui::styles::ManagarrStyle;
|
||||
use crate::ui::utils::{title_block_centered};
|
||||
use crate::ui::utils::title_block_centered;
|
||||
use crate::ui::widgets::button::Button;
|
||||
use crate::ui::widgets::checkbox::Checkbox;
|
||||
use crate::ui::widgets::input_box::InputBox;
|
||||
@@ -91,7 +91,7 @@ fn draw_edit_artist_confirmation_prompt(f: &mut Frame<'_>, app: &mut App<'_>, ar
|
||||
let selected_metadata_profile = metadata_profile_list.current_selection();
|
||||
|
||||
let [
|
||||
_,
|
||||
_,
|
||||
monitored_area,
|
||||
monitor_new_items_area,
|
||||
quality_profile_area,
|
||||
|
||||
@@ -1,22 +1,49 @@
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use pretty_assertions::assert_eq;
|
||||
use strum::IntoEnumIterator;
|
||||
|
||||
use crate::models::Route;
|
||||
use crate::models::servarr_data::lidarr::lidarr_data::{ActiveLidarrBlock, EDIT_ARTIST_BLOCKS};
|
||||
use crate::app::App;
|
||||
use crate::models::BlockSelectionState;
|
||||
use crate::models::servarr_data::lidarr::lidarr_data::{
|
||||
ActiveLidarrBlock, EDIT_ARTIST_BLOCKS, EDIT_ARTIST_SELECTION_BLOCKS,
|
||||
};
|
||||
use crate::ui::DrawUi;
|
||||
use crate::ui::lidarr_ui::library::edit_artist_ui::EditArtistUi;
|
||||
use crate::ui::ui_test_utils::test_utils::render_to_string_with_app;
|
||||
|
||||
#[test]
|
||||
fn test_edit_artist_ui_accepts() {
|
||||
let mut edit_artist_ui_blocks = Vec::new();
|
||||
for block in ActiveLidarrBlock::iter() {
|
||||
if EditArtistUi::accepts(Route::Lidarr(block, None)) {
|
||||
edit_artist_ui_blocks.push(block);
|
||||
ActiveLidarrBlock::iter().for_each(|active_lidarr_block| {
|
||||
if EDIT_ARTIST_BLOCKS.contains(&active_lidarr_block) {
|
||||
assert!(EditArtistUi::accepts(active_lidarr_block.into()));
|
||||
} else {
|
||||
assert!(!EditArtistUi::accepts(active_lidarr_block.into()));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
assert_eq!(edit_artist_ui_blocks, EDIT_ARTIST_BLOCKS.to_vec());
|
||||
mod snapshot_tests {
|
||||
use crate::ui::ui_test_utils::test_utils::TerminalSize;
|
||||
use rstest::rstest;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[rstest]
|
||||
#[case(ActiveLidarrBlock::EditArtistPrompt)]
|
||||
#[case(ActiveLidarrBlock::EditArtistConfirmPrompt)]
|
||||
#[case(ActiveLidarrBlock::EditArtistSelectMetadataProfile)]
|
||||
#[case(ActiveLidarrBlock::EditArtistSelectMonitorNewItems)]
|
||||
#[case(ActiveLidarrBlock::EditArtistSelectQualityProfile)]
|
||||
fn test_edit_artist_ui_renders(#[case] active_lidarr_block: ActiveLidarrBlock) {
|
||||
let mut app = App::test_default_fully_populated();
|
||||
app.push_navigation_stack(active_lidarr_block.into());
|
||||
app.data.lidarr_data.selected_block = BlockSelectionState::new(EDIT_ARTIST_SELECTION_BLOCKS);
|
||||
|
||||
let output = render_to_string_with_app(TerminalSize::Large, &mut app, |f, app| {
|
||||
EditArtistUi::draw(f, app, f.area());
|
||||
});
|
||||
|
||||
insta::assert_snapshot!(format!("edit_artist_{active_lidarr_block}"), output);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ expression: output
|
||||
│ │
|
||||
│ │
|
||||
│ ╭───╮ │
|
||||
│ Delete Artist Files: │ │ │
|
||||
│ Delete Artist Files: │ ✔ │ │
|
||||
│ ╰───╯ │
|
||||
│ ╭───╮ │
|
||||
│ Add List Exclusion: │ │ │
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
---
|
||||
source: src/ui/lidarr_ui/library/edit_artist_ui_tests.rs
|
||||
expression: output
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
╭─────────────────────────────────────────────── Edit - ───────────────────────────────────────────────╮
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ ╭───╮ │
|
||||
│ Monitored: │ ✔ │ │
|
||||
│ ╰───╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Monitor New Albums: │All Albums ▼ │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Quality Profile: │Lossless ▼ │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Metadata Profile: │Standard ▼ │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Path: │/nfs/music │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Tags: │alex │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
|
||||
││ Save ││ Cancel ││
|
||||
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
|
||||
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
---
|
||||
source: src/ui/lidarr_ui/library/edit_artist_ui_tests.rs
|
||||
expression: output
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
╭─────────────────────────────────────────────── Edit - ───────────────────────────────────────────────╮
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ ╭───╮ │
|
||||
│ Monitored: │ ✔ │ │
|
||||
│ ╰───╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Monitor New Albums: │All Albums ▼ │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Quality Profile: │Lossless ▼ │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Metadata Profile: │Standard ▼ │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Path: │/nfs/music │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ ╭─────────────────────────────────────────────────╮ │
|
||||
│ Tags: │alex │ │
|
||||
│ ╰─────────────────────────────────────────────────╯ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
|
||||
││ Save ││ Cancel ││
|
||||
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
|
||||
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
---
|
||||
source: src/ui/lidarr_ui/library/edit_artist_ui_tests.rs
|
||||
expression: output
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
╭─────────────────────────────────────────────── Edit - ───────────────────────────────────────────────╮
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ ╭───╮ │
|
||||
│ Monitored: │ ✔ │ │
|
||||
│ ╰───╯ │
|
||||
│ ╭───────────────────────────────╮──────────────────────────────╮ │
|
||||
│ Monitor│Standard │ ▼ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ Qual│ │ ▼ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ Metad│ │ ▼ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ │ │ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ │ │ │ │
|
||||
│ ╰───────────────────────────────╯──────────────────────────────╯ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
|
||||
││ Save ││ Cancel ││
|
||||
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
|
||||
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
---
|
||||
source: src/ui/lidarr_ui/library/edit_artist_ui_tests.rs
|
||||
expression: output
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
╭─────────────────────────────────────────────── Edit - ───────────────────────────────────────────────╮
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ ╭───╮ │
|
||||
│ Monitored: │ ✔ │ │
|
||||
│ ╰───╯ │
|
||||
│ ╭───────────────────────────────╮──────────────────────────────╮ │
|
||||
│ Monitor│All Albums │ ▼ │ │
|
||||
│ │No New Albums │──────────────────────────────╯ │
|
||||
│ │New Albums │──────────────────────────────╮ │
|
||||
│ Qual│ │ ▼ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ Metad│ │ ▼ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ │ │ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ │ │ │ │
|
||||
│ ╰───────────────────────────────╯──────────────────────────────╯ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
|
||||
││ Save ││ Cancel ││
|
||||
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
|
||||
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
---
|
||||
source: src/ui/lidarr_ui/library/edit_artist_ui_tests.rs
|
||||
expression: output
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
╭─────────────────────────────────────────────── Edit - ───────────────────────────────────────────────╮
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ ╭───╮ │
|
||||
│ Monitored: │ ✔ │ │
|
||||
│ ╰───╯ │
|
||||
│ ╭───────────────────────────────╮──────────────────────────────╮ │
|
||||
│ Monitor│Lossless │ ▼ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ Qual│ │ ▼ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ Metad│ │ ▼ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ │ │ │ │
|
||||
│ │ │──────────────────────────────╯ │
|
||||
│ │ │──────────────────────────────╮ │
|
||||
│ │ │ │ │
|
||||
│ ╰───────────────────────────────╯──────────────────────────────╯ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│ │
|
||||
│╭───────────────────────────────────────────────────╮╭──────────────────────────────────────────────────╮│
|
||||
││ Save ││ Cancel ││
|
||||
│╰───────────────────────────────────────────────────╯╰──────────────────────────────────────────────────╯│
|
||||
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
|
||||
+1
-1
@@ -24,7 +24,7 @@ expression: output
|
||||
│ │
|
||||
│ │
|
||||
│ ╭───╮ │
|
||||
│ Delete Artist Files: │ │ │
|
||||
│ Delete Artist Files: │ ✔ │ │
|
||||
│ ╰───╯ │
|
||||
│ ╭───╮ │
|
||||
│ Add List Exclusion: │ │ │
|
||||
|
||||
Reference in New Issue
Block a user