mod common;
#[test]
fn strict_excluded_short_flag_w_rejected() {
let assert = common::rusty_pdfgrep_cmd()
.arg("--strict")
.arg("-w")
.arg("term")
.assert()
.code(2);
let stderr = String::from_utf8_lossy(&assert.get_output().stderr);
assert!(
stderr.contains("invalid option") && stderr.contains("'w'"),
"got: {stderr:?}"
);
}
#[test]
fn strict_excluded_short_flag_a_rejected() {
let assert = common::rusty_pdfgrep_cmd()
.arg("--strict")
.arg("-A")
.assert()
.code(2);
let stderr = String::from_utf8_lossy(&assert.get_output().stderr);
assert!(stderr.contains("invalid option"), "got: {stderr:?}");
}
#[test]
fn strict_excluded_long_flag_cache_rejected() {
let assert = common::rusty_pdfgrep_cmd()
.arg("--strict")
.arg("--cache")
.arg("term")
.assert()
.code(2);
let stderr = String::from_utf8_lossy(&assert.get_output().stderr);
assert!(
stderr.contains("unrecognized option") && stderr.contains("--cache"),
"got: {stderr:?}"
);
}
#[test]
fn strict_excluded_long_flag_password_list_rejected() {
let assert = common::rusty_pdfgrep_cmd()
.arg("--strict")
.arg("--password-list")
.arg("/tmp/list.txt")
.arg("term")
.assert()
.code(2);
let stderr = String::from_utf8_lossy(&assert.get_output().stderr);
assert!(
stderr.contains("unrecognized option") && stderr.contains("--password-list"),
"got: {stderr:?}"
);
}
#[test]
fn strict_activates_via_env_var() {
let assert = common::rusty_pdfgrep_cmd()
.env("RUSTY_PDFGREP_STRICT", "1")
.arg("-w")
.arg("term")
.assert()
.code(2);
let stderr = String::from_utf8_lossy(&assert.get_output().stderr);
assert!(
stderr.contains("invalid option") && stderr.contains("'w'"),
"env-var strict should reject -w; got: {stderr:?}"
);
}
#[test]
fn no_strict_overrides_env_var() {
let assert = common::rusty_pdfgrep_cmd()
.env("RUSTY_PDFGREP_STRICT", "1")
.arg("--no-strict")
.arg("-w")
.arg("term")
.assert()
.failure();
let stderr = String::from_utf8_lossy(&assert.get_output().stderr);
assert!(
!stderr.contains("invalid option -- 'w'") || stderr.contains("Usage"),
"default-mode rejection should NOT use the upstream getopt format verbatim; got: {stderr:?}"
);
}