#![deny(warnings, missing_docs, clippy::all)]
mod cli {
use std::ffi::OsStr;
use std::process::{Command, Output};
fn run_cargo_mdcat<I, S>(args: I) -> Output
where
I: IntoIterator<Item = S>,
S: AsRef<OsStr>,
{
Command::new("cargo")
.arg("run")
.arg("-q")
.arg("--")
.args(args)
.output()
.unwrap()
}
#[test]
fn show_help() {
let output = run_cargo_mdcat(&["--help"]);
let stdout = std::str::from_utf8(&output.stdout).unwrap();
assert!(
output.status.success(),
"non-zero exit code: {:?}",
output.status,
);
assert!(output.stderr.is_empty());
assert!(stdout.contains("mdcat uses the standardized CommonMark dialect"));
}
#[test]
fn file_list_fail_late() {
let output = run_cargo_mdcat(&["does-not-exist", "sample/common-mark.md"]);
let stderr = std::str::from_utf8(&output.stderr).unwrap();
let stdout = std::str::from_utf8(&output.stdout).unwrap();
assert!(!output.status.success());
assert!(
stderr.contains("Error: does-not-exist:") && stderr.contains("(os error 2)"),
"Stderr: {}",
stderr
);
assert!(stdout.contains("CommonMark sample document"));
}
#[test]
fn file_list_fail_fast() {
let output = run_cargo_mdcat(&["--fail", "does-not-exist", "sample/common-mark.md"]);
let stderr = std::str::from_utf8(&output.stderr).unwrap();
assert!(!output.status.success());
assert!(
stderr.contains("Error: does-not-exist:") && stderr.contains("(os error 2)"),
"Stderr: {}",
stderr
);
assert!(output.stdout.is_empty());
}
}