provenant-cli 0.0.8

Provenant is a high-performance Rust scanner for licenses, packages, and source provenance.
Documentation
#[cfg(all(test, feature = "golden-tests"))]
mod golden_tests {
    use std::path::PathBuf;

    use crate::parsers::golden_test_utils::compare_package_data_parser_only;
    use crate::parsers::{DenoLockParser, DenoParser, PackageParser};

    #[test]
    fn test_parse_deno_json_golden() {
        let test_file = PathBuf::from("testdata/deno/golden/deno_json/deno.json");
        let expected_file = PathBuf::from("testdata/deno/golden/deno_json/deno.json-expected.json");

        let package_data = DenoParser::extract_first_package(&test_file);

        assert_eq!(package_data.namespace.as_deref(), Some("@provenant"));
        assert_eq!(package_data.name.as_deref(), Some("deno-sample"));
        assert_eq!(package_data.dependencies.len(), 3);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_parse_deno_jsonc_golden() {
        let test_file = PathBuf::from("testdata/deno/golden/deno_jsonc/deno.jsonc");
        let expected_file =
            PathBuf::from("testdata/deno/golden/deno_jsonc/deno.jsonc-expected.json");

        let package_data = DenoParser::extract_first_package(&test_file);

        assert_eq!(package_data.namespace.as_deref(), Some("@std"));
        assert_eq!(package_data.name.as_deref(), Some("jsonc"));
        assert_eq!(package_data.dependencies.len(), 1);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }

    #[test]
    fn test_parse_deno_lock_golden() {
        let test_file = PathBuf::from("testdata/deno/golden/deno_lock/deno.lock");
        let expected_file = PathBuf::from("testdata/deno/golden/deno_lock/deno.lock-expected.json");

        let package_data = DenoLockParser::extract_first_package(&test_file);

        assert_eq!(package_data.dependencies.len(), 4);

        match compare_package_data_parser_only(&package_data, &expected_file) {
            Ok(_) => (),
            Err(e) => panic!("Golden test failed: {}", e),
        }
    }
}