MrBoec/utils/staking-miner/tests/cli.rs

37 lines
1.2 KiB
Rust
Raw Normal View History

use assert_cmd::{cargo::cargo_bin, Command};
use serde_json::{Result, Value};
#[test]
fn cli_version_works() {
let crate_name = env!("CARGO_PKG_NAME");
let output = Command::new(cargo_bin(crate_name))
.arg("--version")
.output()
.unwrap();
assert!(output.status.success(), "command returned with non-success exit code");
let version = String::from_utf8_lossy(&output.stdout).trim().to_owned();
assert_eq!(version, format!("{} {}", crate_name, env!("CARGO_PKG_VERSION")));
}
#[test]
fn cli_info_works() {
let crate_name = env!("CARGO_PKG_NAME");
let output = Command::new(cargo_bin(crate_name))
.arg("info")
.arg("--json")
.env("RUST_LOG", "none")
.output()
.unwrap();
assert!(output.status.success(), "command returned with non-success exit code");
let info = String::from_utf8_lossy(&output.stdout).trim().to_owned();
let v: Result<Value> = serde_json::from_str(&info);
let v = v.unwrap();
assert!(!v["builtin"].to_string().is_empty());
assert!(!v["builtin"]["spec_name"].to_string().is_empty());
assert!(!v["builtin"]["spec_version"].to_string().is_empty());
assert!(!v["remote"].to_string().is_empty());
}