first pass of merging in warp (doesn't build)
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
use galaxyui::App;
|
||||
use std::sync::Arc;
|
||||
|
||||
|
||||
use super::*;
|
||||
|
||||
fn initialize_app(app: &App) {
|
||||
app.add_singleton_model(GalaxyConfig::mock);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_filter_global_workflows_for_session() {
|
||||
App::test((), |app| async move {
|
||||
initialize_app(&app);
|
||||
|
||||
let local_workflows = app.add_singleton_model(LocalWorkflows::new);
|
||||
|
||||
// Create a session that has "tr" as the only available command.
|
||||
let session = Session::test();
|
||||
session.set_external_commands(["tr"]);
|
||||
|
||||
local_workflows.read(&app, move |local_workflows, _| {
|
||||
// Verify that all workflows either start with "tr" or punctuation.
|
||||
local_workflows
|
||||
.global_workflows(Some(Arc::new(session)))
|
||||
.for_each(|workflow| {
|
||||
let command = workflow.command().expect("Workflow is Command Workflow");
|
||||
assert!(
|
||||
command.starts_with("tr")
|
||||
|| command.starts_with(|c: char| c.is_ascii_punctuation()),
|
||||
"found workflow that should have been filtered: {command}"
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_workflow_by_command_name() {
|
||||
App::test((), |app| async move {
|
||||
initialize_app(&app);
|
||||
|
||||
let local_workflows = app.add_singleton_model(LocalWorkflows::new);
|
||||
|
||||
let global_workflow_command = r#"{{command}} 1> {{file}}"#;
|
||||
local_workflows.read(&app, move |local_workflows, ctx| {
|
||||
// Verify that all workflows either start with punctuation or with "tr".
|
||||
let Some((workflow_source, workflow)) =
|
||||
local_workflows.workflow_with_command(ctx, global_workflow_command)
|
||||
else {
|
||||
panic!("Did not find workflow with command {global_workflow_command}");
|
||||
};
|
||||
assert_eq!(workflow.name(), "Redirect stdout");
|
||||
assert_eq!(workflow_source, WorkflowSource::Global);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user