use assert_cmd::prelude::*;
use std::process::Command;
use std::process::Stdio;
#[test]
fn code_0_on_success() {
Command::cargo_bin("net-mesh")
.unwrap()
.arg("version")
.assert()
.code(0);
}
#[test]
fn code_1_on_generic_error_missing_identity_file() {
let dir = tempfile::tempdir().unwrap();
let missing = dir.path().join("definitely-does-not-exist.toml");
Command::cargo_bin("net-mesh")
.unwrap()
.args(["identity", "show"])
.arg(&missing)
.assert()
.code(1);
}
#[test]
fn code_2_on_invalid_args_unknown_flag() {
Command::cargo_bin("net-mesh")
.unwrap()
.args(["snapshot", "get", "--this-flag-does-not-exist"])
.assert()
.code(2);
}
#[test]
fn code_2_on_invalid_args_unknown_subcommand() {
Command::cargo_bin("net-mesh")
.unwrap()
.arg("this-subcommand-does-not-exist")
.assert()
.code(2);
}
#[test]
fn code_2_on_invalid_log_level() {
Command::cargo_bin("net-mesh")
.unwrap()
.args(["log", "tail", "--min-level", "no-such-level"])
.assert()
.code(2);
}
#[test]
fn code_8_on_ice_confirmation_refused_non_tty() {
let dir = tempfile::tempdir().unwrap();
let identity = dir.path().join("op.toml");
Command::cargo_bin("net-mesh")
.unwrap()
.args(["identity", "generate", "--out"])
.arg(&identity)
.assert()
.success();
Command::cargo_bin("net-mesh")
.unwrap()
.args(["ice", "freeze-cluster", "--ttl", "5m", "--identity"])
.arg(&identity)
.stdin(Stdio::null())
.assert()
.code(8);
}