Files
galaxy/app/src/workflows/aliases_test.rs
T

166 lines
5.3 KiB
Rust

use crate::settings::init_and_register_user_preferences;
use super::*;
use settings::manager::SettingsManager;
#[test]
fn test_set_aliases() {
let workflow_1: SyncId = SyncId::ServerId(1.into());
let workflow_2: SyncId = SyncId::ServerId(2.into());
let alias_1: WorkflowAlias = WorkflowAlias {
alias: "alias1".to_string(),
workflow_id: workflow_1,
arguments: None,
env_vars: None,
};
let alias_2: WorkflowAlias = WorkflowAlias {
alias: "alias2".to_string(),
workflow_id: workflow_1,
arguments: None,
env_vars: None,
};
let alias_3: WorkflowAlias = WorkflowAlias {
alias: "alias3".to_string(),
workflow_id: workflow_2,
arguments: None,
env_vars: None,
};
warpui::App::test((), |mut app| async move {
app.update(init_and_register_user_preferences);
app.add_singleton_model(|_| SettingsManager::default());
WorkflowAliases::register(&mut app);
app.update(|app| {
let aliases = WorkflowAliases::as_ref(app).get_all_aliases();
assert_eq!(0, aliases.len());
});
app.update(|app| {
WorkflowAliases::handle(app).update(app, |aliases, ctx| {
let _ = aliases.set_aliases(vec![alias_1.clone(), alias_2.clone()], ctx);
});
let aliases = WorkflowAliases::as_ref(app).get_all_aliases();
assert_eq!(2, aliases.len());
});
app.update(|app| {
WorkflowAliases::handle(app).update(app, |aliases, ctx| {
let _ = aliases.set_aliases(vec![alias_3.clone()], ctx);
});
assert_eq!(WorkflowAliases::as_ref(app).get_all_aliases().len(), 3);
assert_eq!(
WorkflowAliases::as_ref(app)
.get_aliases_for_workflow(workflow_1)
.len(),
2
);
assert_eq!(
WorkflowAliases::as_ref(app)
.get_aliases_for_workflow(workflow_2)
.len(),
1
);
});
});
}
#[test]
fn test_set_aliases_replacement() {
// Test that replacing aliases works correctly.
let workflow_1: SyncId = SyncId::ServerId(1.into());
let alias_1: WorkflowAlias = WorkflowAlias {
alias: "alias1".to_string(),
workflow_id: workflow_1,
arguments: None,
env_vars: None,
};
warpui::App::test((), |mut app| async move {
app.update(init_and_register_user_preferences);
app.add_singleton_model(|_| SettingsManager::default());
WorkflowAliases::register(&mut app);
app.update(|app| {
let aliases = WorkflowAliases::as_ref(app).get_all_aliases();
assert_eq!(0, aliases.len());
});
app.update(|app| {
WorkflowAliases::handle(app).update(app, |aliases, ctx| {
let _ = aliases.set_aliases(vec![alias_1.clone()], ctx);
});
let aliases = WorkflowAliases::as_ref(app).get_all_aliases();
assert_eq!(1, aliases.len());
});
app.update(|app| {
WorkflowAliases::handle(app).update(app, |aliases, ctx| {
let _ = aliases.set_aliases(vec![alias_1.clone()], ctx);
});
assert_eq!(WorkflowAliases::as_ref(app).get_all_aliases().len(), 1);
});
});
}
#[test]
fn test_remove_aliases() {
let workflow_1: SyncId = SyncId::ServerId(1.into());
let workflow_2: SyncId = SyncId::ServerId(2.into());
let alias_1: WorkflowAlias = WorkflowAlias {
alias: "alias1".to_string(),
workflow_id: workflow_1,
arguments: None,
env_vars: None,
};
let alias_2: WorkflowAlias = WorkflowAlias {
alias: "alias2".to_string(),
workflow_id: workflow_1,
arguments: None,
env_vars: None,
};
let alias_3: WorkflowAlias = WorkflowAlias {
alias: "alias3".to_string(),
workflow_id: workflow_2,
arguments: None,
env_vars: None,
};
warpui::App::test((), |mut app| async move {
app.update(init_and_register_user_preferences);
app.add_singleton_model(|_| SettingsManager::default());
WorkflowAliases::register(&mut app);
app.update(|app| {
WorkflowAliases::handle(app).update(app, |aliases, ctx| {
let _ = aliases
.set_aliases(vec![alias_1.clone(), alias_2.clone(), alias_3.clone()], ctx);
});
let aliases = WorkflowAliases::as_ref(app).get_all_aliases();
assert_eq!(3, aliases.len());
});
app.update(|app| {
WorkflowAliases::handle(app).update(app, |aliases, ctx| {
let _ = aliases.remove_aliases(vec![alias_3.alias.clone()], ctx);
});
assert_eq!(WorkflowAliases::as_ref(app).get_all_aliases().len(), 2);
assert_eq!(
WorkflowAliases::as_ref(app)
.get_aliases_for_workflow(workflow_1)
.len(),
2
);
assert_eq!(
WorkflowAliases::as_ref(app)
.get_aliases_for_workflow(workflow_2)
.len(),
0
);
});
});
}