diff --git a/src/xatu/BUILD b/src/xatu/BUILD index 99e020f..ef781ff 100644 --- a/src/xatu/BUILD +++ b/src/xatu/BUILD @@ -30,8 +30,12 @@ rust_test( compile_data = [ "testdata/clean.nix", "testdata/empty_inherit.nix", + "testdata/invalid.nix", + ], + deps = [ + ":xatu_lib", + "//src/status:status", ], - deps = [":xatu_lib"], ) rust_binary( diff --git a/src/xatu/testdata/invalid.nix b/src/xatu/testdata/invalid.nix new file mode 100644 index 0000000..98232c6 --- /dev/null +++ b/src/xatu/testdata/invalid.nix @@ -0,0 +1 @@ +{ diff --git a/src/xatu/xatu_test.rs b/src/xatu/xatu_test.rs index c654611..e7e7615 100644 --- a/src/xatu/xatu_test.rs +++ b/src/xatu/xatu_test.rs @@ -1,5 +1,6 @@ use std::path::PathBuf; +use status::Code; use xatu::SourceFile; fn source_file(path: &str, source: &str) -> SourceFile { @@ -15,7 +16,7 @@ fn future_sight_reports_clean_sources_as_clean() { "clean.nix", include_str!("testdata/clean.nix"), )]) - .expect("source should parse"); + .expect("fixture should parse"); assert!(report.is_clean()); } @@ -26,7 +27,7 @@ fn future_sight_reports_empty_inherit_findings() { "empty_inherit.nix", include_str!("testdata/empty_inherit.nix"), )]) - .expect("source should parse"); + .expect("fixture should parse"); assert_eq!(1, report.diagnostics.len()); @@ -37,3 +38,14 @@ fn future_sight_reports_empty_inherit_findings() { ); assert_eq!("empty_inherit", diagnostic.finding.rule_id); } + +#[test] +fn future_sight_rejects_parse_errors() { + let error = xatu::future_sight(vec![source_file( + "invalid.nix", + include_str!("testdata/invalid.nix"), + )]) + .expect_err("fixture should fail to parse"); + + assert_eq!(Code::FailedPrecondition, error.code()); +}