166 lines
5.3 KiB
Rust
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
|
|
);
|
|
});
|
|
});
|
|
}
|