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::{
        HackageCabalParser, HackageCabalProjectParser, HackageStackYamlParser, PackageParser,
    };

    #[test]
    fn test_golden_cabal_basic() {
        let test_file = PathBuf::from("testdata/hackage-golden/cabal-basic/example-hackage.cabal");
        let expected_file = PathBuf::from(
            "testdata/hackage-golden/cabal-basic/example-hackage.cabal.expected.json",
        );

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

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

    #[test]
    fn test_golden_cabal_project_basic() {
        let test_file = PathBuf::from("testdata/hackage-golden/project-basic/cabal.project");
        let expected_file =
            PathBuf::from("testdata/hackage-golden/project-basic/cabal.project.expected.json");

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

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

    #[test]
    fn test_golden_stack_yaml_basic() {
        let test_file = PathBuf::from("testdata/hackage-golden/stack-basic/stack.yaml");
        let expected_file =
            PathBuf::from("testdata/hackage-golden/stack-basic/stack.yaml.expected.json");

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

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