use assert_cmd::Command;
use predicates::prelude::*;
fn lawkit() -> Command {
Command::cargo_bin("lawkit").unwrap()
}
#[test]
fn test_exit_code_0_for_low_risk() {
let mut cmd = lawkit();
cmd.args(["benf"])
.write_stdin("123\n234\n345\n456\n567\n678\n789\n891\n912\n");
cmd.assert().code(predicate::in_iter([0, 10, 11])); }
#[test]
fn test_exit_code_1_for_general_error() {
let mut cmd = lawkit();
cmd.args(["benf", "/nonexistent/file.txt"]);
cmd.assert().code(1);
}
#[test]
fn test_exit_code_2_for_argument_error() {
let mut cmd = lawkit();
cmd.args(["--invalid-option"]);
cmd.assert().code(2);
}
#[test]
fn test_exit_code_with_quiet_mode() {
let mut cmd = lawkit();
cmd.args(["benf", "--quiet"])
.write_stdin("1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n");
cmd.assert().code(predicate::in_iter([0, 10, 11]));
}
#[test]
fn test_validate_returns_exit_code() {
let mut cmd = lawkit();
cmd.args(["validate"])
.write_stdin("1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n");
cmd.assert().code(predicate::in_iter([0, 10, 11]));
}
#[test]
fn test_analyze_returns_exit_code() {
let mut cmd = lawkit();
cmd.args(["analyze"])
.write_stdin("1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n");
cmd.assert().code(predicate::in_iter([0, 10, 11]));
}