From 798a6dc3a3111247d60bff987f84ba77b43c2229 Mon Sep 17 00:00:00 2001 From: alexion Date: Sat, 19 Sep 2026 14:45:23 -0400 Subject: [PATCH] test(xatu): organize lint fixtures --- src/xatu/BUILD | 4 +- src/xatu/testdata/clean.nix | 4 +- src/xatu/testdata/empty_inherit.nix | 3 -- src/xatu/testdata/invalid.nix | 4 ++ src/xatu/testdata/lint_findings.nix | 6 +++ src/xatu/testdata/lint_variants.nix | 5 ++ src/xatu/xatu_test.rs | 73 +++++++++++++++-------------- 7 files changed, 59 insertions(+), 40 deletions(-) delete mode 100644 src/xatu/testdata/empty_inherit.nix create mode 100644 src/xatu/testdata/invalid.nix create mode 100644 src/xatu/testdata/lint_findings.nix create mode 100644 src/xatu/testdata/lint_variants.nix diff --git a/src/xatu/BUILD b/src/xatu/BUILD index a1ed5a8..a23cb96 100644 --- a/src/xatu/BUILD +++ b/src/xatu/BUILD @@ -30,7 +30,9 @@ rust_test( srcs = ["xatu_test.rs"], data = [ "testdata/clean.nix", - "testdata/empty_inherit.nix", + "testdata/invalid.nix", + "testdata/lint_findings.nix", + "testdata/lint_variants.nix", ], deps = [ ":xatu_lib", diff --git a/src/xatu/testdata/clean.nix b/src/xatu/testdata/clean.nix index 596f5b2..1e4a786 100644 --- a/src/xatu/testdata/clean.nix +++ b/src/xatu/testdata/clean.nix @@ -1,4 +1,6 @@ +{ pkgs }: + { path = ./. + "/foo"; - inherit foo; + inherit pkgs; } diff --git a/src/xatu/testdata/empty_inherit.nix b/src/xatu/testdata/empty_inherit.nix deleted file mode 100644 index dc31afc..0000000 --- a/src/xatu/testdata/empty_inherit.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - inherit; -} diff --git a/src/xatu/testdata/invalid.nix b/src/xatu/testdata/invalid.nix new file mode 100644 index 0000000..bc29234 --- /dev/null +++ b/src/xatu/testdata/invalid.nix @@ -0,0 +1,4 @@ +{ pkgs }: + +{ + inherit pkgs; diff --git a/src/xatu/testdata/lint_findings.nix b/src/xatu/testdata/lint_findings.nix new file mode 100644 index 0000000..a177ee9 --- /dev/null +++ b/src/xatu/testdata/lint_findings.nix @@ -0,0 +1,6 @@ +{ src }: + +{ + inherit; + path = builtins.toPath src; +} diff --git a/src/xatu/testdata/lint_variants.nix b/src/xatu/testdata/lint_variants.nix new file mode 100644 index 0000000..4ff8b0d --- /dev/null +++ b/src/xatu/testdata/lint_variants.nix @@ -0,0 +1,5 @@ +{ src }: + +{ + path = toPath src; +} diff --git a/src/xatu/xatu_test.rs b/src/xatu/xatu_test.rs index 9fd446d..e7957ed 100644 --- a/src/xatu/xatu_test.rs +++ b/src/xatu/xatu_test.rs @@ -21,58 +21,61 @@ fn fixture_path(path: &str) -> PathBuf { runfiles.join(workspace).join("src/xatu").join(path) } +fn fixture_report(path: &str) -> xatu::Report { + xatu::future_sight(vec![fixture_source(path)]).expect("fixture should parse") +} + +fn has_finding(report: &xatu::Report, path: &str, rule_id: &str) -> bool { + report.diagnostics.iter().any(|diagnostic| { + report.files.get(diagnostic.file_id).path.as_path() == Path::new(path) + && diagnostic.finding.rule_id == rule_id + }) +} + #[test] fn future_sight_reports_clean_sources_as_clean() { - let report = xatu::future_sight(vec![fixture_source("testdata/clean.nix")]) - .expect("fixture should parse"); + let report = fixture_report("testdata/clean.nix"); assert!(report.is_clean()); } #[test] fn future_sight_rejects_parse_errors() { - let error = xatu::future_sight(vec![SourceFile { - path: PathBuf::from("invalid.nix"), - source: "{\n".to_owned(), - }]) - .expect_err("fixture should fail to parse"); + let error = xatu::future_sight(vec![fixture_source("testdata/invalid.nix")]) + .expect_err("fixture should fail to parse"); assert_eq!(error.code(), Code::FailedPrecondition); } #[test] -fn future_sight_reports_deprecated_to_path_findings() { - let report = xatu::future_sight(vec![ - SourceFile { - path: PathBuf::from("deprecated_to_path_ident.nix"), - source: "toPath x\n".to_owned(), - }, - SourceFile { - path: PathBuf::from("deprecated_to_path_select.nix"), - source: "builtins.toPath x\n".to_owned(), - }, - ]) - .expect("fixture should parse"); +fn future_sight_reports_deprecated_to_path_qualified_findings() { + let report = fixture_report("testdata/lint_findings.nix"); - assert!(report.diagnostics.iter().any(|diagnostic| { - report.files.get(diagnostic.file_id).path.as_path() - == Path::new("deprecated_to_path_ident.nix") - && diagnostic.finding.rule_id == "deprecated_to_path" - })); - assert!(report.diagnostics.iter().any(|diagnostic| { - report.files.get(diagnostic.file_id).path.as_path() - == Path::new("deprecated_to_path_select.nix") - && diagnostic.finding.rule_id == "deprecated_to_path" - })); + assert!(has_finding( + &report, + "testdata/lint_findings.nix", + "deprecated_to_path", + )); +} + +#[test] +fn future_sight_reports_deprecated_to_path_unqualified_findings() { + let report = fixture_report("testdata/lint_variants.nix"); + + assert!(has_finding( + &report, + "testdata/lint_variants.nix", + "deprecated_to_path", + )); } #[test] fn future_sight_reports_empty_inherit_findings() { - let report = xatu::future_sight(vec![fixture_source("testdata/empty_inherit.nix")]) - .expect("fixture should parse"); + let report = fixture_report("testdata/lint_findings.nix"); - assert!(report.diagnostics.iter().any(|diagnostic| { - report.files.get(diagnostic.file_id).path.as_path() == Path::new("testdata/empty_inherit.nix") - && diagnostic.finding.rule_id == "empty_inherit" - })); + assert!(has_finding( + &report, + "testdata/lint_findings.nix", + "empty_inherit", + )); }