diff --git a/crates/cli/src/commands/apply_migration.rs b/crates/cli/src/commands/apply_migration.rs index 0097b3977..48b58b838 100644 --- a/crates/cli/src/commands/apply_migration.rs +++ b/crates/cli/src/commands/apply_migration.rs @@ -38,6 +38,9 @@ pub struct ApplyMigrationArgs { /// Print verbose output #[clap(long)] pub(crate) verbose: bool, + // Capture remaining arguments + #[arg(trailing_var_arg = true, allow_hyphen_values = true, index = 2)] + pub(crate) inputs: Vec, } impl ApplyMigrationArgs { @@ -104,3 +107,27 @@ pub(crate) async fn run_apply_migration( Ok(workflow_status.clone()) } + +#[cfg(test)] +mod tests { + use super::*; + use anyhow::Result; + use clap::{Arg, ArgAction, Command, FromArgMatches}; + + #[test] + fn test_arg_parsing() -> Result<()> { + let args = ApplyMigrationArgs::augment_args(Command::new("test")); + + let matches = + args.get_matches_from(vec!["test", "--watch", "--test", "bob", "--suzy=queue"]); + + let apply_args = ApplyMigrationArgs::from_arg_matches(&matches)?; + + println!("{:?}", apply_args); + + // assert_eq!(payload.get("test").unwrap().as_str().unwrap(), "bob"); + // assert_eq!(payload.get("suzy").unwrap().as_str().unwrap(), "queue"); + + Ok(()) + } +} diff --git a/crates/cli/src/commands/plumbing.rs b/crates/cli/src/commands/plumbing.rs index 163a22131..73c549cbd 100644 --- a/crates/cli/src/commands/plumbing.rs +++ b/crates/cli/src/commands/plumbing.rs @@ -372,6 +372,7 @@ pub(crate) async fn run_plumbing( workflow_id: None, verbose: true, watch: false, + inputs: vec![], }, emitter, execution_id.clone(),