feat: CLI Support for multiple Servarr instances
This commit is contained in:
+33
-1
@@ -303,7 +303,39 @@ impl TabState {
|
||||
|
||||
&self.tabs[self.index].config
|
||||
}
|
||||
|
||||
|
||||
pub fn select_tab_by_title(&mut self, name: &str) -> bool {
|
||||
if !self.tabs.is_empty() {
|
||||
let mut found = false;
|
||||
self.tabs.iter().enumerate().for_each(|(idx, tab)| {
|
||||
if tab.title == name {
|
||||
self.index = idx;
|
||||
found = true;
|
||||
}
|
||||
});
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
false
|
||||
}
|
||||
|
||||
pub fn select_tab_by_config(&mut self, config: &ServarrConfig) -> bool {
|
||||
if !self.tabs.is_empty() {
|
||||
let mut found = false;
|
||||
self.tabs.iter().enumerate().for_each(|(idx, tab)| {
|
||||
if tab.config == Some(config.clone()) {
|
||||
self.index = idx;
|
||||
found = true;
|
||||
}
|
||||
});
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
false
|
||||
}
|
||||
|
||||
pub fn get_active_tab_help(&self) -> &str {
|
||||
&self.tabs[self.index].help
|
||||
}
|
||||
|
||||
@@ -537,6 +537,78 @@ mod tests {
|
||||
|
||||
assert!(active_config.is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_select_tab_by_title() {
|
||||
let tabs = create_test_tab_routes();
|
||||
let mut tab_state = TabState { tabs, index: 0 };
|
||||
|
||||
let result = tab_state.select_tab_by_title("Test 2");
|
||||
|
||||
assert!(result);
|
||||
assert_eq!(tab_state.index, 1);
|
||||
|
||||
let result = tab_state.select_tab_by_title("Not real");
|
||||
|
||||
assert!(!result);
|
||||
assert_eq!(tab_state.index, 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_select_tab_by_title_empty_tabs_returns_false() {
|
||||
let mut tab_state = TabState { tabs: vec![], index: 0 };
|
||||
|
||||
let result = tab_state.select_tab_by_title("Test 2");
|
||||
|
||||
assert!(!result);
|
||||
assert_eq!(tab_state.index, 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_select_tab_by_config() {
|
||||
let mut tabs = create_test_tab_routes();
|
||||
tabs[0].config = Some(ServarrConfig {
|
||||
name: Some("Test 1".to_owned()),
|
||||
..ServarrConfig::default()
|
||||
});
|
||||
tabs[1].config = Some(ServarrConfig {
|
||||
host: Some("http://localhost".to_owned()),
|
||||
port: Some(7878),
|
||||
..ServarrConfig::default()
|
||||
});
|
||||
let mut tab_state = TabState { tabs, index: 0 };
|
||||
|
||||
let result = tab_state.select_tab_by_config(&ServarrConfig {
|
||||
host: Some("http://localhost".to_owned()),
|
||||
port: Some(7878),
|
||||
..ServarrConfig::default()
|
||||
});
|
||||
|
||||
assert!(result);
|
||||
assert_eq!(tab_state.index, 1);
|
||||
|
||||
let result = tab_state.select_tab_by_config(&ServarrConfig {
|
||||
name: Some("Not real".to_owned()),
|
||||
..ServarrConfig::default()
|
||||
});
|
||||
|
||||
assert!(!result);
|
||||
assert_eq!(tab_state.index, 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_select_tab_by_config_empty_tabs_returns_false() {
|
||||
let mut tab_state = TabState { tabs: vec![], index: 0 };
|
||||
|
||||
let result = tab_state.select_tab_by_config(&ServarrConfig {
|
||||
host: Some("http://localhost".to_owned()),
|
||||
port: Some(7878),
|
||||
..ServarrConfig::default()
|
||||
});
|
||||
|
||||
assert!(!result);
|
||||
assert_eq!(tab_state.index, 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_tab_state_get_active_tab_help() {
|
||||
|
||||
Reference in New Issue
Block a user