refactor: Refactored all cli tests to use purpose-built assertions

This commit is contained in:
2025-12-08 17:07:31 -07:00
parent ee1bee22eb
commit b807904c6c
22 changed files with 786 additions and 596 deletions
+180 -48
View File
@@ -1,30 +1,69 @@
#[cfg(test)]
mod test {
use crate::app::context_clues::{
ContextClueProvider, ServarrContextClueProvider, BARE_POPUP_CONTEXT_CLUES,
BLOCKLIST_CONTEXT_CLUES, CONFIRMATION_PROMPT_CONTEXT_CLUES, DOWNLOADS_CONTEXT_CLUES,
INDEXERS_CONTEXT_CLUES, ROOT_FOLDERS_CONTEXT_CLUES, SERVARR_CONTEXT_CLUES,
SYSTEM_CONTEXT_CLUES,
};
use crate::app::{key_binding::DEFAULT_KEYBINDINGS, App};
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock;
use crate::models::servarr_data::ActiveKeybindingBlock;
use crate::app::context_clues::{
BARE_POPUP_CONTEXT_CLUES, BLOCKLIST_CONTEXT_CLUES, CONFIRMATION_PROMPT_CONTEXT_CLUES,
ContextClueProvider, DOWNLOADS_CONTEXT_CLUES, INDEXERS_CONTEXT_CLUES,
ROOT_FOLDERS_CONTEXT_CLUES, SERVARR_CONTEXT_CLUES, SYSTEM_CONTEXT_CLUES,
ServarrContextClueProvider,
};
use crate::app::{App, key_binding::DEFAULT_KEYBINDINGS};
use crate::models::servarr_data::ActiveKeybindingBlock;
use crate::models::servarr_data::radarr::radarr_data::ActiveRadarrBlock;
use crate::models::servarr_data::sonarr::sonarr_data::ActiveSonarrBlock;
#[test]
#[test]
fn test_servarr_context_clues() {
let mut servarr_context_clues_iter = SERVARR_CONTEXT_CLUES.iter();
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.up, "scroll up"));
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.down, "scroll down"));
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.left, "previous tab"));
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.right, "next tab"));
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.pg_up, DEFAULT_KEYBINDINGS.pg_up.desc));
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.pg_down, DEFAULT_KEYBINDINGS.pg_down.desc));
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.next_servarr, DEFAULT_KEYBINDINGS.next_servarr.desc));
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.previous_servarr, DEFAULT_KEYBINDINGS.previous_servarr.desc));
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.quit, DEFAULT_KEYBINDINGS.quit.desc));
assert_some_eq_x!(servarr_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.help, DEFAULT_KEYBINDINGS.help.desc));
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.up, "scroll up")
);
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.down, "scroll down")
);
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.left, "previous tab")
);
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.right, "next tab")
);
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.pg_up, DEFAULT_KEYBINDINGS.pg_up.desc)
);
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(
DEFAULT_KEYBINDINGS.pg_down,
DEFAULT_KEYBINDINGS.pg_down.desc
)
);
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(
DEFAULT_KEYBINDINGS.next_servarr,
DEFAULT_KEYBINDINGS.next_servarr.desc
)
);
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(
DEFAULT_KEYBINDINGS.previous_servarr,
DEFAULT_KEYBINDINGS.previous_servarr.desc
)
);
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.quit, DEFAULT_KEYBINDINGS.quit.desc)
);
assert_some_eq_x!(
servarr_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.help, DEFAULT_KEYBINDINGS.help.desc)
);
assert_none!(servarr_context_clues_iter.next());
}
@@ -32,7 +71,10 @@ mod test {
fn test_bare_popup_context_clues() {
let mut bare_popup_context_clues_iter = BARE_POPUP_CONTEXT_CLUES.iter();
assert_some_eq_x!(bare_popup_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.esc, DEFAULT_KEYBINDINGS.esc.desc));
assert_some_eq_x!(
bare_popup_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.esc, DEFAULT_KEYBINDINGS.esc.desc)
);
assert_none!(bare_popup_context_clues_iter.next());
}
@@ -40,9 +82,21 @@ mod test {
fn test_downloads_context_clues() {
let mut downloads_context_clues_iter = DOWNLOADS_CONTEXT_CLUES.iter();
assert_some_eq_x!(downloads_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.refresh, DEFAULT_KEYBINDINGS.refresh.desc));
assert_some_eq_x!(downloads_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc));
assert_some_eq_x!(downloads_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.update, "update downloads"));
assert_some_eq_x!(
downloads_context_clues_iter.next(),
&(
DEFAULT_KEYBINDINGS.refresh,
DEFAULT_KEYBINDINGS.refresh.desc
)
);
assert_some_eq_x!(
downloads_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc)
);
assert_some_eq_x!(
downloads_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.update, "update downloads")
);
assert_none!(downloads_context_clues_iter.next());
}
@@ -50,11 +104,29 @@ mod test {
fn test_blocklist_context_clues() {
let mut blocklist_context_clues_iter = BLOCKLIST_CONTEXT_CLUES.iter();
assert_some_eq_x!(blocklist_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.refresh, DEFAULT_KEYBINDINGS.refresh.desc));
assert_some_eq_x!(blocklist_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.sort, DEFAULT_KEYBINDINGS.sort.desc));
assert_some_eq_x!(blocklist_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.submit, "details"));
assert_some_eq_x!(blocklist_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc));
assert_some_eq_x!(blocklist_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.clear, "clear blocklist"));
assert_some_eq_x!(
blocklist_context_clues_iter.next(),
&(
DEFAULT_KEYBINDINGS.refresh,
DEFAULT_KEYBINDINGS.refresh.desc
)
);
assert_some_eq_x!(
blocklist_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.sort, DEFAULT_KEYBINDINGS.sort.desc)
);
assert_some_eq_x!(
blocklist_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.submit, "details")
);
assert_some_eq_x!(
blocklist_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc)
);
assert_some_eq_x!(
blocklist_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.clear, "clear blocklist")
);
assert_none!(blocklist_context_clues_iter.next());
}
@@ -62,8 +134,14 @@ mod test {
fn test_confirmation_prompt_context_clues() {
let mut confirmation_prompt_context_clues_iter = CONFIRMATION_PROMPT_CONTEXT_CLUES.iter();
assert_some_eq_x!(confirmation_prompt_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.confirm, "submit"));
assert_some_eq_x!(confirmation_prompt_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.esc, "cancel"));
assert_some_eq_x!(
confirmation_prompt_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.confirm, "submit")
);
assert_some_eq_x!(
confirmation_prompt_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.esc, "cancel")
);
assert_none!(confirmation_prompt_context_clues_iter.next());
}
@@ -71,9 +149,21 @@ mod test {
fn test_root_folders_context_clues() {
let mut root_folders_context_clues_iter = ROOT_FOLDERS_CONTEXT_CLUES.iter();
assert_some_eq_x!(root_folders_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.add, DEFAULT_KEYBINDINGS.add.desc));
assert_some_eq_x!(root_folders_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc));
assert_some_eq_x!(root_folders_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.refresh, DEFAULT_KEYBINDINGS.refresh.desc));
assert_some_eq_x!(
root_folders_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.add, DEFAULT_KEYBINDINGS.add.desc)
);
assert_some_eq_x!(
root_folders_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc)
);
assert_some_eq_x!(
root_folders_context_clues_iter.next(),
&(
DEFAULT_KEYBINDINGS.refresh,
DEFAULT_KEYBINDINGS.refresh.desc
)
);
assert_none!(root_folders_context_clues_iter.next());
}
@@ -81,12 +171,36 @@ mod test {
fn test_indexers_context_clues() {
let mut indexers_context_clues_iter = INDEXERS_CONTEXT_CLUES.iter();
assert_some_eq_x!(indexers_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.submit, "edit indexer"));
assert_some_eq_x!(indexers_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.settings, DEFAULT_KEYBINDINGS.settings.desc));
assert_some_eq_x!(indexers_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc));
assert_some_eq_x!(indexers_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.test, "test indexer"));
assert_some_eq_x!(indexers_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.test_all, "test all indexers"));
assert_some_eq_x!(indexers_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.refresh, DEFAULT_KEYBINDINGS.refresh.desc));
assert_some_eq_x!(
indexers_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.submit, "edit indexer")
);
assert_some_eq_x!(
indexers_context_clues_iter.next(),
&(
DEFAULT_KEYBINDINGS.settings,
DEFAULT_KEYBINDINGS.settings.desc
)
);
assert_some_eq_x!(
indexers_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.delete, DEFAULT_KEYBINDINGS.delete.desc)
);
assert_some_eq_x!(
indexers_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.test, "test indexer")
);
assert_some_eq_x!(
indexers_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.test_all, "test all indexers")
);
assert_some_eq_x!(
indexers_context_clues_iter.next(),
&(
DEFAULT_KEYBINDINGS.refresh,
DEFAULT_KEYBINDINGS.refresh.desc
)
);
assert_none!(indexers_context_clues_iter.next());
}
@@ -94,11 +208,29 @@ mod test {
fn test_system_context_clues() {
let mut system_context_clues_iter = SYSTEM_CONTEXT_CLUES.iter();
assert_some_eq_x!(system_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.tasks, "open tasks"));
assert_some_eq_x!(system_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.events, "open events"));
assert_some_eq_x!(system_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.logs, "open logs"));
assert_some_eq_x!(system_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.update, "open updates"));
assert_some_eq_x!(system_context_clues_iter.next(), &(DEFAULT_KEYBINDINGS.refresh, DEFAULT_KEYBINDINGS.refresh.desc));
assert_some_eq_x!(
system_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.tasks, "open tasks")
);
assert_some_eq_x!(
system_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.events, "open events")
);
assert_some_eq_x!(
system_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.logs, "open logs")
);
assert_some_eq_x!(
system_context_clues_iter.next(),
&(DEFAULT_KEYBINDINGS.update, "open updates")
);
assert_some_eq_x!(
system_context_clues_iter.next(),
&(
DEFAULT_KEYBINDINGS.refresh,
DEFAULT_KEYBINDINGS.refresh.desc
)
);
assert_none!(system_context_clues_iter.next());
}
@@ -110,7 +242,7 @@ mod test {
let context_clues = ServarrContextClueProvider::get_context_clues(&mut app);
assert_some_eq_x!(
context_clues,
context_clues,
&crate::app::radarr::radarr_context_clues::SYSTEM_TASKS_CONTEXT_CLUES,
);
}
@@ -123,7 +255,7 @@ mod test {
let context_clues = ServarrContextClueProvider::get_context_clues(&mut app);
assert_some_eq_x!(
context_clues,
context_clues,
&crate::app::sonarr::sonarr_context_clues::SYSTEM_TASKS_CONTEXT_CLUES,
);
}