feat(natu): lint direct listToAttrs maps
This commit was merged in pull request #109.
This commit is contained in:
@@ -77,6 +77,63 @@ fn natu_preserves_suppressed_bindings() -> googletest::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[gtest]
|
||||
fn natu_reports_select_dependency_order() -> googletest::Result<()> {
|
||||
let report = natu::future_sight(vec![SourceFile {
|
||||
path: PathBuf::from("testdata/select_dependencies.nix"),
|
||||
source: r#"
|
||||
let
|
||||
dependency = { value = 1; };
|
||||
entry = dependency.value;
|
||||
in
|
||||
entry
|
||||
"#
|
||||
.into(),
|
||||
}])
|
||||
.or_fail()?;
|
||||
|
||||
let count = report
|
||||
.diagnostics
|
||||
.iter()
|
||||
.filter(|diagnostic| diagnostic.finding.rule_id == "let_order")
|
||||
.count();
|
||||
expect_that!(count, eq(1));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[gtest]
|
||||
fn natu_reports_list_to_attrs_after_map() -> googletest::Result<()> {
|
||||
let report = natu::future_sight(vec![SourceFile {
|
||||
path: PathBuf::from("testdata/list_to_attrs.nix"),
|
||||
source: r#"
|
||||
let
|
||||
generated = lib.listToAttrs (
|
||||
map (item: lib.nameValuePair item item) items
|
||||
);
|
||||
generated_pairs = lib.listToAttrs (
|
||||
concatLists (
|
||||
mapAttrsToList (name: _: lib.nameValuePair name name) attrs
|
||||
)
|
||||
);
|
||||
precomputed = lib.listToAttrs pairs;
|
||||
in
|
||||
{
|
||||
inherit generated generated_pairs precomputed;
|
||||
}
|
||||
"#
|
||||
.into(),
|
||||
}])
|
||||
.or_fail()?;
|
||||
|
||||
let count = report
|
||||
.diagnostics
|
||||
.iter()
|
||||
.filter(|diagnostic| diagnostic.finding.rule_id == "list_to_attrs_map")
|
||||
.count();
|
||||
expect_that!(count, eq(1));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[gtest]
|
||||
fn natu_reports_unquoted_uri() -> googletest::Result<()> {
|
||||
let report = natu::future_sight(vec![fixture_source("testdata/lint_findings.nix")?]).or_fail()?;
|
||||
|
||||
Reference in New Issue
Block a user