feat: Full CLI and TUI support for adding an artist to Lidarr

This commit is contained in:
2026-01-08 15:16:01 -07:00
parent e94f78dc7b
commit c624d1b9e4
28 changed files with 3448 additions and 86 deletions
@@ -426,8 +426,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveSonarrBlock> for AddSeriesHandler<'a,
fn handle_submit(&mut self) {
match self.active_sonarr_block {
_ if self.active_sonarr_block == ActiveSonarrBlock::AddSeriesSearchInput
&& !self
ActiveSonarrBlock::AddSeriesSearchInput
if !self
.app
.data
.sonarr_data
@@ -442,8 +442,8 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveSonarrBlock> for AddSeriesHandler<'a,
.push_navigation_stack(ActiveSonarrBlock::AddSeriesSearchResults.into());
self.app.ignore_special_keys_for_textbox_input = false;
}
_ if self.active_sonarr_block == ActiveSonarrBlock::AddSeriesSearchResults
&& self.app.data.sonarr_data.add_searched_series.is_some() =>
ActiveSonarrBlock::AddSeriesSearchResults
if self.app.data.sonarr_data.add_searched_series.is_some() =>
{
let tvdb_id = self
.app
@@ -1030,8 +1030,6 @@ mod tests {
app.is_loading = true;
app.push_navigation_stack(ActiveSonarrBlock::Series.into());
app.push_navigation_stack(ActiveSonarrBlock::AddSeriesSearchResults.into());
let mut add_searched_series = StatefulTable::default();
add_searched_series.set_items(vec![AddSeriesSearchResult::default()]);
AddSeriesHandler::new(
SUBMIT_KEY,
@@ -1053,6 +1051,7 @@ mod tests {
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::Series.into());
app.push_navigation_stack(ActiveSonarrBlock::AddSeriesSearchResults.into());
AddSeriesHandler::new(
SUBMIT_KEY,
&mut app,
@@ -1092,7 +1091,7 @@ mod tests {
}
#[test]
fn test_add_series_prompt_prompt_decline_submit() {
fn test_add_series_confirm_prompt_prompt_decline_submit() {
let mut app = App::test_default();
app.push_navigation_stack(ActiveSonarrBlock::Series.into());
app.push_navigation_stack(ActiveSonarrBlock::AddSeriesPrompt.into());
@@ -1195,9 +1194,9 @@ mod tests {
.handle();
assert_navigation_popped!(app, ActiveSonarrBlock::Series.into());
assert_eq!(
app.data.sonarr_data.prompt_confirm_action,
Some(SonarrEvent::AddSeries(expected_add_series_body))
assert_some_eq_x!(
&app.data.sonarr_data.prompt_confirm_action,
&SonarrEvent::AddSeries(expected_add_series_body.clone())
);
assert_modal_absent!(app.data.sonarr_data.add_series_modal);
}