56 lines
1.6 KiB
Rust
56 lines
1.6 KiB
Rust
|
|
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")
|
||
|
|
);
|
||
|
|
}
|