feat: TUI support for deleting a Lidarr album from the artist details popup

This commit is contained in:
2026-01-09 17:21:10 -07:00
parent 09bee7473f
commit f31810e48a
21 changed files with 953 additions and 57 deletions
@@ -106,7 +106,7 @@ mod tests {
.lidarr_data
.selected_block
.set_index(0, DELETE_ARTIST_SELECTION_BLOCKS.len() - 1);
app.data.lidarr_data.delete_artist_files = true;
app.data.lidarr_data.delete_files = true;
app.data.lidarr_data.add_import_list_exclusion = true;
DeleteArtistHandler::new(
@@ -120,7 +120,7 @@ mod tests {
assert_navigation_popped!(app, ActiveLidarrBlock::Artists.into());
assert_none!(app.data.lidarr_data.prompt_confirm_action);
assert!(!app.data.lidarr_data.prompt_confirm);
assert!(!app.data.lidarr_data.delete_artist_files);
assert!(!app.data.lidarr_data.delete_files);
assert!(!app.data.lidarr_data.add_import_list_exclusion);
}
@@ -130,7 +130,7 @@ mod tests {
app.push_navigation_stack(ActiveLidarrBlock::Artists.into());
app.push_navigation_stack(ActiveLidarrBlock::DeleteArtistPrompt.into());
app.data.lidarr_data.prompt_confirm = true;
app.data.lidarr_data.delete_artist_files = true;
app.data.lidarr_data.delete_files = true;
app.data.lidarr_data.add_import_list_exclusion = true;
app
.data
@@ -165,7 +165,7 @@ mod tests {
);
assert!(app.should_refresh);
assert!(app.data.lidarr_data.prompt_confirm);
assert!(!app.data.lidarr_data.delete_artist_files);
assert!(!app.data.lidarr_data.delete_files);
assert!(!app.data.lidarr_data.add_import_list_exclusion);
}
@@ -176,7 +176,7 @@ mod tests {
app.push_navigation_stack(ActiveLidarrBlock::Artists.into());
app.push_navigation_stack(ActiveLidarrBlock::DeleteArtistPrompt.into());
app.data.lidarr_data.prompt_confirm = true;
app.data.lidarr_data.delete_artist_files = true;
app.data.lidarr_data.delete_files = true;
app.data.lidarr_data.add_import_list_exclusion = true;
DeleteArtistHandler::new(
@@ -194,7 +194,7 @@ mod tests {
assert_none!(app.data.lidarr_data.prompt_confirm_action);
assert!(!app.should_refresh);
assert!(app.data.lidarr_data.prompt_confirm);
assert!(app.data.lidarr_data.delete_artist_files);
assert!(app.data.lidarr_data.delete_files);
assert!(app.data.lidarr_data.add_import_list_exclusion);
}
@@ -215,7 +215,7 @@ mod tests {
.handle();
assert_eq!(app.get_current_route(), current_route);
assert_eq!(app.data.lidarr_data.delete_artist_files, true);
assert_eq!(app.data.lidarr_data.delete_files, true);
DeleteArtistHandler::new(
SUBMIT_KEY,
@@ -226,7 +226,7 @@ mod tests {
.handle();
assert_eq!(app.get_current_route(), current_route);
assert_eq!(app.data.lidarr_data.delete_artist_files, false);
assert_eq!(app.data.lidarr_data.delete_files, false);
}
}
@@ -244,7 +244,7 @@ mod tests {
app.push_navigation_stack(ActiveLidarrBlock::Artists.into());
app.push_navigation_stack(ActiveLidarrBlock::DeleteArtistPrompt.into());
app.data.lidarr_data.prompt_confirm = true;
app.data.lidarr_data.delete_artist_files = true;
app.data.lidarr_data.delete_files = true;
app.data.lidarr_data.add_import_list_exclusion = true;
DeleteArtistHandler::new(
@@ -257,7 +257,7 @@ mod tests {
assert_navigation_popped!(app, ActiveLidarrBlock::Artists.into());
assert!(!app.data.lidarr_data.prompt_confirm);
assert!(!app.data.lidarr_data.delete_artist_files);
assert!(!app.data.lidarr_data.delete_files);
assert!(!app.data.lidarr_data.add_import_list_exclusion);
}
}
@@ -279,7 +279,7 @@ mod tests {
let mut app = App::test_default();
app.push_navigation_stack(ActiveLidarrBlock::Artists.into());
app.push_navigation_stack(ActiveLidarrBlock::DeleteArtistPrompt.into());
app.data.lidarr_data.delete_artist_files = true;
app.data.lidarr_data.delete_files = true;
app.data.lidarr_data.add_import_list_exclusion = true;
app
.data
@@ -314,7 +314,7 @@ mod tests {
);
assert!(app.should_refresh);
assert!(app.data.lidarr_data.prompt_confirm);
assert!(!app.data.lidarr_data.delete_artist_files);
assert!(!app.data.lidarr_data.delete_files);
assert!(!app.data.lidarr_data.add_import_list_exclusion);
}
}
@@ -357,7 +357,7 @@ mod tests {
.lidarr_data
.artists
.set_items(vec![Artist::default()]);
app.data.lidarr_data.delete_artist_files = true;
app.data.lidarr_data.delete_files = true;
app.data.lidarr_data.add_import_list_exclusion = true;
let expected_delete_artist_params = DeleteParams {
id: 0,
@@ -374,7 +374,7 @@ mod tests {
.build_delete_artist_params();
assert_eq!(delete_artist_params, expected_delete_artist_params);
assert!(!app.data.lidarr_data.delete_artist_files);
assert!(!app.data.lidarr_data.delete_files);
assert!(!app.data.lidarr_data.add_import_list_exclusion);
}