rscheck-cli 0.1.0-alpha.3

CLI frontend for the rscheck policy engine.
Documentation
use crate::config::Level;
use crate::rules::PublicApiErrorsRule;
use crate::test_support::run_single_file_rule;

#[test]
fn flags_disallowed_public_error_type() {
    let findings = run_single_file_rule(
        &PublicApiErrorsRule,
        "design.public_api_errors",
        Level::Deny,
        toml::toml! {
            allowed_error_types = ["crate::Error"]
        },
        "pub fn run() -> Result<(), anyhow::Error> { Err(anyhow::Error::msg(\"boom\")) }\n",
    );
    assert_eq!(findings.len(), 1);
}

#[test]
fn does_not_treat_prefix_match_as_allowed() {
    let findings = run_single_file_rule(
        &PublicApiErrorsRule,
        "design.public_api_errors",
        Level::Deny,
        toml::toml! {
            allowed_error_types = ["crate::Error"]
        },
        r#"
pub fn run() -> Result<(), crate::Errorish> {
    panic!()
}
"#,
    );
    assert_eq!(findings.len(), 1);
}