runa/crates/runa-cli/tests/arguments.rs

56 lines
1.6 KiB
Rust
Raw Normal View History

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"));
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"],
] {
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")
);
}