From 112b2ca449d285fc5762e789689ceacb2b1539ed Mon Sep 17 00:00:00 2001 From: Anders Eknert Date: Thu, 29 Aug 2024 14:13:54 +0200 Subject: [PATCH] Allow tests to be in 'test' package This is a Styra DAS convention, and while I'd say `_test` is preferred, I think it's OK to allow this single exception. Also update this rule to report end location. Signed-off-by: Anders Eknert --- .../test_outside_test_package.rego | 9 +++++++-- .../test_outside_test_package_test.rego | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/bundle/regal/rules/testing/test-outside-test-package/test_outside_test_package.rego b/bundle/regal/rules/testing/test-outside-test-package/test_outside_test_package.rego index 4c948694..58e360a9 100644 --- a/bundle/regal/rules/testing/test-outside-test-package/test_outside_test_package.rego +++ b/bundle/regal/rules/testing/test-outside-test-package/test_outside_test_package.rego @@ -8,9 +8,14 @@ import data.regal.ast import data.regal.result report contains violation if { - not endswith(ast.package_name, "_test") + not _is_test_package(ast.package_name) some rule in ast.tests - violation := result.fail(rego.metadata.chain(), result.location(rule.head)) + violation := result.fail(rego.metadata.chain(), result.ranged_location_from_text(rule.head)) } + +_is_test_package(package_name) if endswith(package_name, "_test") + +# Styra DAS convention considered OK +_is_test_package("test") diff --git a/bundle/regal/rules/testing/test-outside-test-package/test_outside_test_package_test.rego b/bundle/regal/rules/testing/test-outside-test-package/test_outside_test_package_test.rego index 8653de82..825e18a2 100644 --- a/bundle/regal/rules/testing/test-outside-test-package/test_outside_test_package_test.rego +++ b/bundle/regal/rules/testing/test-outside-test-package/test_outside_test_package_test.rego @@ -18,7 +18,13 @@ test_fail_test_outside_test_package if { "ref": config.docs.resolve_url("$baseUrl/$category/test-outside-test-package", "testing"), }], "title": "test-outside-test-package", - "location": {"col": 1, "file": "p_test.rego", "row": 5, "text": `test_foo if { false }`}, + "location": { + "col": 1, + "file": "p_test.rego", + "row": 5, + "end": {"col": 9, "row": 5}, + "text": `test_foo if { false }`, + }, "level": "error", }} }