Added the full Radarr CLI so users can programmatically access all the same management features as in the TUI
This commit is contained in:
@@ -275,7 +275,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for EditIndexerHandler<'
|
||||
ActiveRadarrBlock::EditIndexerConfirmPrompt => {
|
||||
let radarr_data = &mut self.app.data.radarr_data;
|
||||
if radarr_data.prompt_confirm {
|
||||
radarr_data.prompt_confirm_action = Some(RadarrEvent::EditIndexer);
|
||||
radarr_data.prompt_confirm_action = Some(RadarrEvent::EditIndexer(None));
|
||||
self.app.should_refresh = true;
|
||||
} else {
|
||||
radarr_data.edit_indexer_modal = None;
|
||||
|
||||
@@ -66,6 +66,8 @@ mod tests {
|
||||
}
|
||||
|
||||
mod test_handle_home_end {
|
||||
use std::sync::atomic::Ordering;
|
||||
|
||||
use crate::app::App;
|
||||
use crate::models::servarr_data::radarr::modals::EditIndexerModal;
|
||||
use pretty_assertions::assert_eq;
|
||||
@@ -89,7 +91,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -97,7 +99,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.name
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
4
|
||||
);
|
||||
|
||||
@@ -110,7 +112,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -118,7 +120,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.name
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -140,7 +142,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -148,7 +150,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.url
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
4
|
||||
);
|
||||
|
||||
@@ -161,7 +163,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -169,7 +171,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.url
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -191,7 +193,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -199,7 +201,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.api_key
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
4
|
||||
);
|
||||
|
||||
@@ -212,7 +214,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -220,7 +222,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.api_key
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -242,7 +244,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -250,7 +252,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.seed_ratio
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
4
|
||||
);
|
||||
|
||||
@@ -263,7 +265,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -271,7 +273,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.seed_ratio
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -293,7 +295,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -301,7 +303,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.tags
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
4
|
||||
);
|
||||
|
||||
@@ -314,7 +316,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -322,13 +324,15 @@ mod tests {
|
||||
.unwrap()
|
||||
.tags
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
mod test_handle_left_right_action {
|
||||
use std::sync::atomic::Ordering;
|
||||
|
||||
use crate::app::App;
|
||||
use crate::models::servarr_data::radarr::modals::EditIndexerModal;
|
||||
use crate::models::servarr_data::radarr::radarr_data::{
|
||||
@@ -511,7 +515,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -519,7 +523,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.name
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
1
|
||||
);
|
||||
|
||||
@@ -532,7 +536,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -540,7 +544,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.name
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -562,7 +566,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -570,7 +574,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.url
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
1
|
||||
);
|
||||
|
||||
@@ -583,7 +587,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -591,7 +595,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.url
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -613,7 +617,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -621,7 +625,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.api_key
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
1
|
||||
);
|
||||
|
||||
@@ -634,7 +638,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -642,7 +646,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.api_key
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -664,7 +668,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -672,7 +676,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.seed_ratio
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
1
|
||||
);
|
||||
|
||||
@@ -685,7 +689,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -693,7 +697,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.seed_ratio
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -715,7 +719,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -723,7 +727,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.tags
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
1
|
||||
);
|
||||
|
||||
@@ -736,7 +740,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.edit_indexer_modal
|
||||
@@ -744,7 +748,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.tags
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -821,7 +825,7 @@ mod tests {
|
||||
assert!(app.should_refresh);
|
||||
assert_eq!(
|
||||
app.data.radarr_data.prompt_confirm_action,
|
||||
Some(RadarrEvent::EditIndexer)
|
||||
Some(RadarrEvent::EditIndexer(None))
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
|
||||
fn handle_scroll_up(&mut self) {
|
||||
let indexer_settings = self.app.data.radarr_data.indexer_settings.as_mut().unwrap();
|
||||
match self.active_radarr_block {
|
||||
ActiveRadarrBlock::IndexerSettingsPrompt => {
|
||||
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
|
||||
self.app.data.radarr_data.selected_block.previous();
|
||||
}
|
||||
ActiveRadarrBlock::IndexerSettingsMinimumAgeInput => {
|
||||
@@ -74,7 +74,9 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
|
||||
fn handle_scroll_down(&mut self) {
|
||||
let indexer_settings = self.app.data.radarr_data.indexer_settings.as_mut().unwrap();
|
||||
match self.active_radarr_block {
|
||||
ActiveRadarrBlock::IndexerSettingsPrompt => self.app.data.radarr_data.selected_block.next(),
|
||||
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
|
||||
self.app.data.radarr_data.selected_block.next()
|
||||
}
|
||||
ActiveRadarrBlock::IndexerSettingsMinimumAgeInput => {
|
||||
if indexer_settings.minimum_age > 0 {
|
||||
indexer_settings.minimum_age -= 1;
|
||||
@@ -134,7 +136,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
|
||||
|
||||
fn handle_left_right_action(&mut self) {
|
||||
match self.active_radarr_block {
|
||||
ActiveRadarrBlock::IndexerSettingsPrompt => {
|
||||
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
|
||||
if self.app.data.radarr_data.selected_block.get_active_block()
|
||||
== &ActiveRadarrBlock::IndexerSettingsConfirmPrompt
|
||||
{
|
||||
@@ -165,12 +167,12 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
|
||||
|
||||
fn handle_submit(&mut self) {
|
||||
match self.active_radarr_block {
|
||||
ActiveRadarrBlock::IndexerSettingsPrompt => {
|
||||
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
|
||||
match self.app.data.radarr_data.selected_block.get_active_block() {
|
||||
ActiveRadarrBlock::IndexerSettingsConfirmPrompt => {
|
||||
let radarr_data = &mut self.app.data.radarr_data;
|
||||
if radarr_data.prompt_confirm {
|
||||
radarr_data.prompt_confirm_action = Some(RadarrEvent::EditAllIndexerSettings);
|
||||
radarr_data.prompt_confirm_action = Some(RadarrEvent::EditAllIndexerSettings(None));
|
||||
self.app.should_refresh = true;
|
||||
} else {
|
||||
radarr_data.indexer_settings = None;
|
||||
@@ -225,7 +227,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexerSettingsHandl
|
||||
|
||||
fn handle_esc(&mut self) {
|
||||
match self.active_radarr_block {
|
||||
ActiveRadarrBlock::IndexerSettingsPrompt => {
|
||||
ActiveRadarrBlock::AllIndexerSettingsPrompt => {
|
||||
self.app.pop_navigation_stack();
|
||||
self.app.data.radarr_data.prompt_confirm = false;
|
||||
self.app.data.radarr_data.indexer_settings = None;
|
||||
|
||||
@@ -104,7 +104,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&key,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -136,7 +136,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&key,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -201,6 +201,8 @@ mod tests {
|
||||
}
|
||||
|
||||
mod test_handle_home_end {
|
||||
use std::sync::atomic::Ordering;
|
||||
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
use crate::models::radarr_models::IndexerSettings;
|
||||
@@ -224,7 +226,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.indexer_settings
|
||||
@@ -232,7 +234,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.whitelisted_hardcoded_subs
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
4
|
||||
);
|
||||
|
||||
@@ -245,7 +247,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.indexer_settings
|
||||
@@ -253,13 +255,15 @@ mod tests {
|
||||
.unwrap()
|
||||
.whitelisted_hardcoded_subs
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
mod test_handle_left_right_action {
|
||||
use std::sync::atomic::Ordering;
|
||||
|
||||
use crate::models::radarr_models::IndexerSettings;
|
||||
use crate::models::servarr_data::radarr::radarr_data::INDEXER_SETTINGS_SELECTION_BLOCKS;
|
||||
use crate::models::BlockSelectionState;
|
||||
@@ -278,7 +282,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&key,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -288,7 +292,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&key,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -336,7 +340,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&key,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -349,7 +353,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&key,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -377,7 +381,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.indexer_settings
|
||||
@@ -385,7 +389,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.whitelisted_hardcoded_subs
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
1
|
||||
);
|
||||
|
||||
@@ -398,7 +402,7 @@ mod tests {
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
*app
|
||||
app
|
||||
.data
|
||||
.radarr_data
|
||||
.indexer_settings
|
||||
@@ -406,7 +410,7 @@ mod tests {
|
||||
.unwrap()
|
||||
.whitelisted_hardcoded_subs
|
||||
.offset
|
||||
.borrow(),
|
||||
.load(Ordering::SeqCst),
|
||||
0
|
||||
);
|
||||
}
|
||||
@@ -432,7 +436,7 @@ mod tests {
|
||||
fn test_edit_indexer_settings_prompt_prompt_decline_submit() {
|
||||
let mut app = App::default();
|
||||
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
app.data.radarr_data.selected_block =
|
||||
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
app
|
||||
@@ -445,7 +449,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -460,7 +464,7 @@ mod tests {
|
||||
fn test_edit_indexer_settings_prompt_prompt_confirmation_submit() {
|
||||
let mut app = App::default();
|
||||
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
app.data.radarr_data.selected_block =
|
||||
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
app
|
||||
@@ -474,7 +478,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -482,7 +486,7 @@ mod tests {
|
||||
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
|
||||
assert_eq!(
|
||||
app.data.radarr_data.prompt_confirm_action,
|
||||
Some(RadarrEvent::EditAllIndexerSettings)
|
||||
Some(RadarrEvent::EditAllIndexerSettings(None))
|
||||
);
|
||||
assert!(app.data.radarr_data.indexer_settings.is_some());
|
||||
assert!(app.should_refresh);
|
||||
@@ -493,21 +497,21 @@ mod tests {
|
||||
let mut app = App::default();
|
||||
app.is_loading = true;
|
||||
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
|
||||
app.data.radarr_data.prompt_confirm = true;
|
||||
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
|
||||
);
|
||||
assert!(!app.should_refresh);
|
||||
}
|
||||
@@ -524,7 +528,7 @@ mod tests {
|
||||
) {
|
||||
let mut app = App::default();
|
||||
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
app.data.radarr_data.selected_block =
|
||||
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
app.data.radarr_data.selected_block.set_index(index);
|
||||
@@ -532,7 +536,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -547,7 +551,7 @@ mod tests {
|
||||
let mut app = App::default();
|
||||
app.is_loading = true;
|
||||
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
app.data.radarr_data.selected_block =
|
||||
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
app.data.radarr_data.selected_block.set_index(index);
|
||||
@@ -555,14 +559,14 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -570,7 +574,7 @@ mod tests {
|
||||
fn test_edit_indexer_settings_prompt_submit_whitelisted_subtitle_tags_input() {
|
||||
let mut app = App::default();
|
||||
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
app.data.radarr_data.selected_block =
|
||||
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
app.data.radarr_data.selected_block.set_index(7);
|
||||
@@ -578,7 +582,7 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -597,19 +601,19 @@ mod tests {
|
||||
app.data.radarr_data.selected_block =
|
||||
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
app.data.radarr_data.selected_block.set_index(3);
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
|
||||
);
|
||||
assert!(
|
||||
app
|
||||
@@ -624,14 +628,14 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
|
||||
);
|
||||
assert!(
|
||||
!app
|
||||
@@ -651,19 +655,19 @@ mod tests {
|
||||
app.data.radarr_data.selected_block =
|
||||
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
app.data.radarr_data.selected_block.set_index(8);
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
|
||||
);
|
||||
assert!(
|
||||
app
|
||||
@@ -678,14 +682,14 @@ mod tests {
|
||||
IndexerSettingsHandler::with(
|
||||
&SUBMIT_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
|
||||
);
|
||||
assert!(
|
||||
!app
|
||||
@@ -706,7 +710,7 @@ mod tests {
|
||||
whitelisted_hardcoded_subs: "Test tags".into(),
|
||||
..IndexerSettings::default()
|
||||
});
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(
|
||||
ActiveRadarrBlock::IndexerSettingsWhitelistedSubtitleTagsInput.into(),
|
||||
);
|
||||
@@ -731,7 +735,7 @@ mod tests {
|
||||
.is_empty());
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -748,14 +752,14 @@ mod tests {
|
||||
) {
|
||||
let mut app = App::default();
|
||||
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(active_radarr_block.into());
|
||||
|
||||
IndexerSettingsHandler::with(&SUBMIT_KEY, &mut app, &active_radarr_block, &None).handle();
|
||||
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -775,13 +779,13 @@ mod tests {
|
||||
let mut app = App::default();
|
||||
app.is_loading = is_ready;
|
||||
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
app.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
app.data.radarr_data.indexer_settings = Some(IndexerSettings::default());
|
||||
|
||||
IndexerSettingsHandler::with(
|
||||
&ESC_KEY,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
)
|
||||
.handle();
|
||||
@@ -926,7 +930,7 @@ mod tests {
|
||||
let handler = IndexerSettingsHandler::with(
|
||||
&DEFAULT_KEYBINDINGS.esc.key,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
);
|
||||
|
||||
@@ -941,7 +945,7 @@ mod tests {
|
||||
let handler = IndexerSettingsHandler::with(
|
||||
&DEFAULT_KEYBINDINGS.esc.key,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
);
|
||||
|
||||
@@ -957,7 +961,7 @@ mod tests {
|
||||
let handler = IndexerSettingsHandler::with(
|
||||
&DEFAULT_KEYBINDINGS.esc.key,
|
||||
&mut app,
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
&None,
|
||||
);
|
||||
|
||||
|
||||
@@ -375,7 +375,7 @@ mod tests {
|
||||
assert!(app.data.radarr_data.prompt_confirm);
|
||||
assert_eq!(
|
||||
app.data.radarr_data.prompt_confirm_action,
|
||||
Some(RadarrEvent::DeleteIndexer)
|
||||
Some(RadarrEvent::DeleteIndexer(None))
|
||||
);
|
||||
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
|
||||
}
|
||||
@@ -577,7 +577,7 @@ mod tests {
|
||||
|
||||
assert_eq!(
|
||||
app.get_current_route(),
|
||||
&ActiveRadarrBlock::IndexerSettingsPrompt.into()
|
||||
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
|
||||
);
|
||||
assert_eq!(
|
||||
app.data.radarr_data.selected_block.blocks,
|
||||
@@ -724,7 +724,7 @@ mod tests {
|
||||
#[rstest]
|
||||
fn test_delegates_indexer_settings_blocks_to_indexer_settings_handler(
|
||||
#[values(
|
||||
ActiveRadarrBlock::IndexerSettingsPrompt,
|
||||
ActiveRadarrBlock::AllIndexerSettingsPrompt,
|
||||
ActiveRadarrBlock::IndexerSettingsAvailabilityDelayInput,
|
||||
ActiveRadarrBlock::IndexerSettingsConfirmPrompt,
|
||||
ActiveRadarrBlock::IndexerSettingsMaximumSizeInput,
|
||||
|
||||
@@ -121,7 +121,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexersHandler<'a,
|
||||
ActiveRadarrBlock::DeleteIndexerPrompt => {
|
||||
let radarr_data = &mut self.app.data.radarr_data;
|
||||
if radarr_data.prompt_confirm {
|
||||
radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteIndexer);
|
||||
radarr_data.prompt_confirm_action = Some(RadarrEvent::DeleteIndexer(None));
|
||||
}
|
||||
|
||||
self.app.pop_navigation_stack();
|
||||
@@ -189,7 +189,7 @@ impl<'a, 'b> KeyEventHandler<'a, 'b, ActiveRadarrBlock> for IndexersHandler<'a,
|
||||
_ if *key == DEFAULT_KEYBINDINGS.settings.key => {
|
||||
self
|
||||
.app
|
||||
.push_navigation_stack(ActiveRadarrBlock::IndexerSettingsPrompt.into());
|
||||
.push_navigation_stack(ActiveRadarrBlock::AllIndexerSettingsPrompt.into());
|
||||
self.app.data.radarr_data.selected_block =
|
||||
BlockSelectionState::new(&INDEXER_SETTINGS_SELECTION_BLOCKS);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user