Refactored the UI module and the handlers module to do a more chain-of-responsibility method to manage the UI's and handlers for different key events. Also, initial work for indexer settings as well

This commit is contained in:
2023-08-08 10:50:07 -06:00
parent 718613d59f
commit cf11527fef
67 changed files with 5255 additions and 2216 deletions
@@ -0,0 +1,23 @@
#[cfg(test)]
mod tests {
use strum::IntoEnumIterator;
use crate::app::radarr::{ActiveRadarrBlock, SYSTEM_DETAILS_BLOCKS};
use crate::ui::radarr_ui::system::SystemUi;
use crate::ui::DrawUi;
#[test]
fn test_system_ui_accepts() {
let mut system_ui_blocks = Vec::new();
system_ui_blocks.push(ActiveRadarrBlock::System);
system_ui_blocks.extend(SYSTEM_DETAILS_BLOCKS);
ActiveRadarrBlock::iter().for_each(|active_radarr_block| {
if system_ui_blocks.contains(&active_radarr_block) {
assert!(SystemUi::accepts(active_radarr_block.into()));
} else {
assert!(!SystemUi::accepts(active_radarr_block.into()));
}
});
}
}