2026-11-03 14:49:35 +00:00
|
|
|
use std::process::Command;
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn cli_help_and_version_are_available_without_connecting() {
|
|
|
|
|
let output = Command::new(env!("CARGO_BIN_EXE_runa-cli"))
|
|
|
|
|
.arg("--help")
|
|
|
|
|
.env_remove("RUNA_CONNECT")
|
|
|
|
|
.output()
|
|
|
|
|
.unwrap();
|
|
|
|
|
assert!(output.status.success());
|
|
|
|
|
let help = String::from_utf8(output.stdout).unwrap();
|
|
|
|
|
assert!(help.contains("runa-cli"));
|
|
|
|
|
assert!(help.contains("--connect"));
|
|
|
|
|
assert!(help.contains("RUNA_CONNECT"));
|
|
|
|
|
assert!(help.contains("127.0.0.1:3737"));
|
2026-11-03 16:13:15 +00:00
|
|
|
for subcommand in [
|
2026-11-03 17:26:21 +00:00
|
|
|
"repl",
|
|
|
|
|
"ps",
|
|
|
|
|
"sources",
|
|
|
|
|
"spawn",
|
|
|
|
|
"send",
|
|
|
|
|
"tick",
|
|
|
|
|
"inspect",
|
|
|
|
|
"events",
|
|
|
|
|
"write",
|
|
|
|
|
"commit",
|
|
|
|
|
"history",
|
|
|
|
|
"rollback",
|
|
|
|
|
"stop",
|
|
|
|
|
"kill",
|
|
|
|
|
"restart",
|
|
|
|
|
"pause",
|
|
|
|
|
"resume",
|
|
|
|
|
"reload",
|
|
|
|
|
"become",
|
2026-11-03 16:13:15 +00:00
|
|
|
"quit",
|
2026-11-03 17:26:21 +00:00
|
|
|
"set-state",
|
|
|
|
|
"set-messages",
|
|
|
|
|
"log-level",
|
|
|
|
|
"logs",
|
2026-11-03 16:13:15 +00:00
|
|
|
] {
|
|
|
|
|
let output = Command::new(env!("CARGO_BIN_EXE_runa-cli"))
|
|
|
|
|
.args([subcommand, "--help"])
|
|
|
|
|
.env_remove("RUNA_CONNECT")
|
|
|
|
|
.output()
|
|
|
|
|
.unwrap();
|
|
|
|
|
assert!(output.status.success(), "{subcommand}");
|
|
|
|
|
assert!(String::from_utf8(output.stdout).unwrap().contains("Usage:"));
|
|
|
|
|
}
|
2026-11-03 14:49:35 +00:00
|
|
|
|
|
|
|
|
let output = Command::new(env!("CARGO_BIN_EXE_runa-cli"))
|
|
|
|
|
.arg("--version")
|
|
|
|
|
.output()
|
|
|
|
|
.unwrap();
|
|
|
|
|
assert!(output.status.success());
|
|
|
|
|
assert_eq!(
|
|
|
|
|
String::from_utf8(output.stdout).unwrap().trim(),
|
|
|
|
|
"runa-cli 0.0.0"
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn clap_rejects_bad_flags_addresses_and_environment_values() {
|
|
|
|
|
for args in [
|
|
|
|
|
vec!["--connect"],
|
|
|
|
|
vec!["--connect", "invalid"],
|
|
|
|
|
vec!["--listen", "127.0.0.1:3737"],
|
|
|
|
|
vec!["extra"],
|
2026-11-03 16:13:15 +00:00
|
|
|
vec!["actors"],
|
|
|
|
|
vec!["cancel", "actor"],
|
|
|
|
|
vec!["spawn", "actors/counter"],
|
|
|
|
|
vec!["tick", "1", "0"],
|
|
|
|
|
vec![],
|
2026-11-03 14:49:35 +00:00
|
|
|
] {
|
|
|
|
|
let output = Command::new(env!("CARGO_BIN_EXE_runa-cli"))
|
|
|
|
|
.args(args)
|
|
|
|
|
.env_remove("RUNA_CONNECT")
|
|
|
|
|
.output()
|
|
|
|
|
.unwrap();
|
|
|
|
|
assert_eq!(output.status.code(), Some(2));
|
|
|
|
|
assert!(!output.stderr.is_empty());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let output = Command::new(env!("CARGO_BIN_EXE_runa-cli"))
|
|
|
|
|
.env("RUNA_CONNECT", "invalid")
|
|
|
|
|
.output()
|
|
|
|
|
.unwrap();
|
|
|
|
|
assert_eq!(output.status.code(), Some(2));
|
|
|
|
|
assert!(
|
|
|
|
|
String::from_utf8(output.stderr)
|
|
|
|
|
.unwrap()
|
|
|
|
|
.contains("--connect")
|
|
|
|
|
);
|
|
|
|
|
}
|