carman/tests/integration.rs

35 lines
1.1 KiB
Rust

// filename: tests/integration.rs
mod integration {
use regex::Regex;
use std::process::Command;
use std::process::Output;
static WITHOUT_ARGS_OUTPUT: &'static str = " USAGE:
carman [FLAGS] [OPTIONS] <URL>
For more information try --help
";
#[test]
fn calling_carman_without_args_returns_result() {
let output = Command::new("./target/debug/carman")
.output()
.expect("failed to execute process");
let re = Regex::new(r"^Hello").unwrap();
assert!(re.is_match(&String::from_utf8_lossy(&output.stdout)));
}
#[test]
fn calling_carman_with_help_returns_usage() {
let output = Command::new("./target/debug/carman")
.arg("--help")
.output()
.expect("failed to execute process");
let re = Regex::new(r"^carman").unwrap();
assert!(re.is_match(&String::from_utf8_lossy(&output.stdout)));
let re = Regex::new(r"--help").unwrap();
assert!(re.is_match(&String::from_utf8_lossy(&output.stdout)));
}
}