summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorHermes Agent <hermes@localhost>2026-08-12 00:03:21 +0000
committerHermes Agent <hermes@localhost>2026-08-12 00:03:21 +0000
commit191e2b7429ff4547b5fdd0fbfcff943ce96c2d68 (patch)
treea7f989330ac0d2f2de13f67d4c897943391c5a55 /tests
parent25f39c857da591c665865b77483b79495caf5e00 (diff)
Add explicit image builder CLI commands
Diffstat (limited to 'tests')
-rw-r--r--tests/cli.rs71
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")
+ ));
+}