diff options
| author | Hermes Agent <hermes@localhost> | 2026-08-12 00:03:21 +0000 |
|---|---|---|
| committer | Hermes Agent <hermes@localhost> | 2026-08-12 00:03:21 +0000 |
| commit | 191e2b7429ff4547b5fdd0fbfcff943ce96c2d68 (patch) | |
| tree | a7f989330ac0d2f2de13f67d4c897943391c5a55 /tests/cli.rs | |
| parent | 25f39c857da591c665865b77483b79495caf5e00 (diff) | |
Add explicit image builder CLI commands
Diffstat (limited to 'tests/cli.rs')
| -rw-r--r-- | tests/cli.rs | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/cli.rs b/tests/cli.rs new file mode 100644 index 0000000..b800e68 --- /dev/null +++ b/tests/cli.rs @@ -0,0 +1,71 @@ +use std::path::PathBuf; + +use alt_controller_image::cli::{Cli, Command}; +use clap::Parser; + +#[test] +fn parses_plan_with_an_explicit_spec_path() { + let cli = Cli::try_parse_from(["alt-controller-image", "plan", "--spec", "image.toml"]) + .expect("plan command parses"); + + assert!(matches!( + cli.command, + Command::Plan { spec } if spec == PathBuf::from("image.toml") + )); +} + +#[test] +fn parses_build_with_explicit_workspace_and_output_paths() { + let cli = Cli::try_parse_from([ + "alt-controller-image", + "build", + "--spec", + "image.toml", + "--workspace", + "work", + "--output", + "out/image.tar", + ]) + .expect("build command parses"); + + assert!(matches!( + cli.command, + Command::Build { + spec, + workspace, + output + } if spec == PathBuf::from("image.toml") + && workspace == PathBuf::from("work") + && output == PathBuf::from("out/image.tar") + )); +} + +#[test] +fn parses_inspect_with_an_explicit_artifact_path() { + let cli = Cli::try_parse_from(["alt-controller-image", "inspect", "--artifact", "out/image.tar"]) + .expect("inspect command parses"); + + assert!(matches!( + cli.command, + Command::Inspect { artifact } if artifact == PathBuf::from("out/image.tar") + )); +} + +#[test] +fn parses_compare_with_explicit_artifact_paths() { + let cli = Cli::try_parse_from([ + "alt-controller-image", + "compare", + "--left", + "legacy.tar", + "--right", + "native.tar", + ]) + .expect("compare command parses"); + + assert!(matches!( + cli.command, + Command::Compare { left, right } + if left == PathBuf::from("legacy.tar") && right == PathBuf::from("native.tar") + )); +} |