From 191e2b7429ff4547b5fdd0fbfcff943ce96c2d68 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 12 Aug 2026 00:03:21 +0000 Subject: Add explicit image builder CLI commands --- tests/cli.rs | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 tests/cli.rs (limited to 'tests') 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") + )); +} -- cgit v1.2.3