Skip to content

Commit 1e1f81b

Browse files
Add unit test for protected prebuilt-rules
1 parent b9b8e24 commit 1e1f81b

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

tests/test_all_rules.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1112,6 +1112,32 @@ def test_ml_integration_jobs_exist(self):
11121112
f"The following ({len(failures)}) rules are missing a valid `machine_learning_job_id`:\n{err_msg}"
11131113
)
11141114

1115+
def test_preserve_upstream_protected_rule_id_name(self):
1116+
"""
1117+
Ensure upstream referenced rule IDs and rule names remain unchanged
1118+
"""
1119+
protected_rules = {"9a1a2dae-0b5f-4c3d-8305-a268d404c306": "Endpoint Security (Elastic Defend)"}
1120+
1121+
# map current rules by id and name for quick lookup
1122+
current_rules = {rule.contents.data.get("rule_id"): rule.contents.data.get("name") for rule in self.all_rules}
1123+
failures = []
1124+
for rule_id, rule_name in protected_rules.items():
1125+
if rule_id in current_rules:
1126+
if rule_name != current_rules.get(rule_id):
1127+
failures.append(
1128+
f"Protected rule_id {rule_id} name modified from '{rule_name}' to '{current_rules.get(rule_id)}' - review upstream impact"
1129+
)
1130+
else:
1131+
failures.append(
1132+
f"Protected rule: {rule_name} rule_id: {rule_id} missing/modified - review upstream impact"
1133+
)
1134+
1135+
if failures:
1136+
fail_msg = """
1137+
The following protected prebuilt rules have missing/modified rule IDs or names \n
1138+
"""
1139+
self.fail(fail_msg + "\n".join(failures))
1140+
11151141

11161142
class TestRuleTiming(BaseRuleTest):
11171143
"""Test rule timing and timestamps."""

0 commit comments

Comments
 (0)