feat(app): Dispatch support for all relevant Sonarr blocks

This commit is contained in:
2024-11-27 17:06:20 -07:00
parent 73a4129000
commit f139db07d9
86 changed files with 4075 additions and 3005 deletions
@@ -47,14 +47,14 @@ mod tests {
.indexers
.set_items(simple_stateful_iterable_vec!(Indexer, String, protocol));
IndexersHandler::with(&key, &mut app, &ActiveRadarrBlock::Indexers, &None).handle();
IndexersHandler::with(key, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_str_eq!(
app.data.radarr_data.indexers.current_selection().protocol,
"Test 1"
);
IndexersHandler::with(&key, &mut app, &ActiveRadarrBlock::Indexers, &None).handle();
IndexersHandler::with(key, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_str_eq!(
app.data.radarr_data.indexers.current_selection().protocol,
@@ -89,10 +89,10 @@ mod tests {
.set_items(extended_stateful_iterable_vec!(Indexer, String, protocol));
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.end.key,
DEFAULT_KEYBINDINGS.end.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
@@ -102,10 +102,10 @@ mod tests {
);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.home.key,
DEFAULT_KEYBINDINGS.home.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
@@ -132,11 +132,11 @@ mod tests {
.indexers
.set_items(vec![Indexer::default()]);
IndexersHandler::with(&DELETE_KEY, &mut app, &ActiveRadarrBlock::Indexers, &None).handle();
IndexersHandler::with(DELETE_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::DeleteIndexerPrompt.into()
ActiveRadarrBlock::DeleteIndexerPrompt.into()
);
}
@@ -151,9 +151,9 @@ mod tests {
.indexers
.set_items(vec![Indexer::default()]);
IndexersHandler::with(&DELETE_KEY, &mut app, &ActiveRadarrBlock::Indexers, &None).handle();
IndexersHandler::with(DELETE_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
}
}
@@ -170,20 +170,20 @@ mod tests {
app.data.radarr_data.main_tabs.set_index(5);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.left.key,
DEFAULT_KEYBINDINGS.left.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(
app.data.radarr_data.main_tabs.get_active_route(),
&ActiveRadarrBlock::RootFolders.into()
ActiveRadarrBlock::RootFolders.into()
);
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::RootFolders.into()
ActiveRadarrBlock::RootFolders.into()
);
}
@@ -194,18 +194,18 @@ mod tests {
app.data.radarr_data.main_tabs.set_index(5);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.right.key,
DEFAULT_KEYBINDINGS.right.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(
app.data.radarr_data.main_tabs.get_active_route(),
&ActiveRadarrBlock::System.into()
ActiveRadarrBlock::System.into()
);
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::System.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::System.into());
}
#[rstest]
@@ -214,23 +214,11 @@ mod tests {
) {
let mut app = App::default();
IndexersHandler::with(
&key,
&mut app,
&ActiveRadarrBlock::DeleteIndexerPrompt,
&None,
)
.handle();
IndexersHandler::with(key, &mut app, ActiveRadarrBlock::DeleteIndexerPrompt, None).handle();
assert!(app.data.radarr_data.prompt_confirm);
IndexersHandler::with(
&key,
&mut app,
&ActiveRadarrBlock::DeleteIndexerPrompt,
&None,
)
.handle();
IndexersHandler::with(key, &mut app, ActiveRadarrBlock::DeleteIndexerPrompt, None).handle();
assert!(!app.data.radarr_data.prompt_confirm);
}
@@ -306,11 +294,11 @@ mod tests {
radarr_data.indexers.set_items(vec![indexer]);
app.data.radarr_data = radarr_data;
IndexersHandler::with(&SUBMIT_KEY, &mut app, &ActiveRadarrBlock::Indexers, &None).handle();
IndexersHandler::with(SUBMIT_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::EditIndexerPrompt.into()
ActiveRadarrBlock::EditIndexerPrompt.into()
);
assert_eq!(
app.data.radarr_data.edit_indexer_modal,
@@ -344,9 +332,9 @@ mod tests {
.indexers
.set_items(vec![Indexer::default()]);
IndexersHandler::with(&SUBMIT_KEY, &mut app, &ActiveRadarrBlock::Indexers, &None).handle();
IndexersHandler::with(SUBMIT_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_eq!(app.data.radarr_data.edit_indexer_modal, None);
}
@@ -363,10 +351,10 @@ mod tests {
app.push_navigation_stack(ActiveRadarrBlock::DeleteIndexerPrompt.into());
IndexersHandler::with(
&SUBMIT_KEY,
SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::DeleteIndexerPrompt,
&None,
ActiveRadarrBlock::DeleteIndexerPrompt,
None,
)
.handle();
@@ -375,7 +363,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteIndexer(None))
);
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
}
#[test]
@@ -390,16 +378,16 @@ mod tests {
app.push_navigation_stack(ActiveRadarrBlock::DeleteIndexerPrompt.into());
IndexersHandler::with(
&SUBMIT_KEY,
SUBMIT_KEY,
&mut app,
&ActiveRadarrBlock::DeleteIndexerPrompt,
&None,
ActiveRadarrBlock::DeleteIndexerPrompt,
None,
)
.handle();
assert!(!app.data.radarr_data.prompt_confirm);
assert_eq!(app.data.radarr_data.prompt_confirm_action, None);
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
}
}
@@ -419,14 +407,14 @@ mod tests {
app.data.radarr_data.prompt_confirm = true;
IndexersHandler::with(
&ESC_KEY,
ESC_KEY,
&mut app,
&ActiveRadarrBlock::DeleteIndexerPrompt,
&None,
ActiveRadarrBlock::DeleteIndexerPrompt,
None,
)
.handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert!(!app.data.radarr_data.prompt_confirm);
}
@@ -438,9 +426,9 @@ mod tests {
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
app.push_navigation_stack(ActiveRadarrBlock::TestIndexer.into());
IndexersHandler::with(&ESC_KEY, &mut app, &ActiveRadarrBlock::TestIndexer, &None).handle();
IndexersHandler::with(ESC_KEY, &mut app, ActiveRadarrBlock::TestIndexer, None).handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert_eq!(app.data.radarr_data.indexer_test_error, None);
}
@@ -452,9 +440,9 @@ mod tests {
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
IndexersHandler::with(&ESC_KEY, &mut app, &ActiveRadarrBlock::Indexers, &None).handle();
IndexersHandler::with(ESC_KEY, &mut app, ActiveRadarrBlock::Indexers, None).handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert!(app.error.text.is_empty());
}
}
@@ -479,16 +467,16 @@ mod tests {
.set_items(vec![Indexer::default()]);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.add.key,
DEFAULT_KEYBINDINGS.add.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::AddIndexer.into()
ActiveRadarrBlock::AddIndexer.into()
);
}
@@ -504,14 +492,14 @@ mod tests {
.set_items(vec![Indexer::default()]);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.add.key,
DEFAULT_KEYBINDINGS.add.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
}
#[test]
@@ -525,14 +513,14 @@ mod tests {
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.refresh.key,
DEFAULT_KEYBINDINGS.refresh.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert!(app.should_refresh);
}
@@ -548,14 +536,14 @@ mod tests {
app.push_navigation_stack(ActiveRadarrBlock::Indexers.into());
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.refresh.key,
DEFAULT_KEYBINDINGS.refresh.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
assert!(!app.should_refresh);
}
@@ -569,16 +557,16 @@ mod tests {
.set_items(vec![Indexer::default()]);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.settings.key,
DEFAULT_KEYBINDINGS.settings.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
ActiveRadarrBlock::AllIndexerSettingsPrompt.into()
);
assert_eq!(
app.data.radarr_data.selected_block.blocks,
@@ -598,14 +586,14 @@ mod tests {
.set_items(vec![Indexer::default()]);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.settings.key,
DEFAULT_KEYBINDINGS.settings.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
}
#[test]
@@ -618,16 +606,16 @@ mod tests {
.set_items(vec![Indexer::default()]);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.test.key,
DEFAULT_KEYBINDINGS.test.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::TestIndexer.into()
ActiveRadarrBlock::TestIndexer.into()
);
}
@@ -643,14 +631,14 @@ mod tests {
.set_items(vec![Indexer::default()]);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.test.key,
DEFAULT_KEYBINDINGS.test.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
}
#[test]
@@ -663,16 +651,16 @@ mod tests {
.set_items(vec![Indexer::default()]);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.test_all.key,
DEFAULT_KEYBINDINGS.test_all.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(
app.get_current_route(),
&ActiveRadarrBlock::TestAllIndexers.into()
ActiveRadarrBlock::TestAllIndexers.into()
);
}
@@ -688,14 +676,14 @@ mod tests {
.set_items(vec![Indexer::default()]);
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.test_all.key,
DEFAULT_KEYBINDINGS.test_all.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
)
.handle();
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
}
#[test]
@@ -710,10 +698,10 @@ mod tests {
app.push_navigation_stack(ActiveRadarrBlock::DeleteIndexerPrompt.into());
IndexersHandler::with(
&DEFAULT_KEYBINDINGS.confirm.key,
DEFAULT_KEYBINDINGS.confirm.key,
&mut app,
&ActiveRadarrBlock::DeleteIndexerPrompt,
&None,
ActiveRadarrBlock::DeleteIndexerPrompt,
None,
)
.handle();
@@ -722,7 +710,7 @@ mod tests {
app.data.radarr_data.prompt_confirm_action,
Some(RadarrEvent::DeleteIndexer(None))
);
assert_eq!(app.get_current_route(), &ActiveRadarrBlock::Indexers.into());
assert_eq!(app.get_current_route(), ActiveRadarrBlock::Indexers.into());
}
}
@@ -791,9 +779,9 @@ mod tests {
ActiveRadarrBlock::iter().for_each(|active_radarr_block| {
if indexers_blocks.contains(&active_radarr_block) {
assert!(IndexersHandler::accepts(&active_radarr_block));
assert!(IndexersHandler::accepts(active_radarr_block));
} else {
assert!(!IndexersHandler::accepts(&active_radarr_block));
assert!(!IndexersHandler::accepts(active_radarr_block));
}
})
}
@@ -804,10 +792,10 @@ mod tests {
app.is_loading = true;
let handler = IndexersHandler::with(
&DEFAULT_KEYBINDINGS.esc.key,
DEFAULT_KEYBINDINGS.esc.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
);
assert!(!handler.is_ready());
@@ -819,10 +807,10 @@ mod tests {
app.is_loading = false;
let handler = IndexersHandler::with(
&DEFAULT_KEYBINDINGS.esc.key,
DEFAULT_KEYBINDINGS.esc.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
);
assert!(!handler.is_ready());
@@ -839,10 +827,10 @@ mod tests {
.set_items(vec![Indexer::default()]);
let handler = IndexersHandler::with(
&DEFAULT_KEYBINDINGS.esc.key,
DEFAULT_KEYBINDINGS.esc.key,
&mut app,
&ActiveRadarrBlock::Indexers,
&None,
ActiveRadarrBlock::Indexers,
None,
);
assert!(handler.is_ready());