From afb20f1f568c4ddd75066f4f9455a73ee764f6e6 Mon Sep 17 00:00:00 2001 From: Jason Staack Date: Sun, 15 Mar 2026 20:08:26 -0500 Subject: [PATCH] test: verify default wireless alert rules are seeded on tenant creation Co-Authored-By: Claude Sonnet 4.6 --- .../integration/test_default_alert_rules.py | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 backend/tests/integration/test_default_alert_rules.py diff --git a/backend/tests/integration/test_default_alert_rules.py b/backend/tests/integration/test_default_alert_rules.py new file mode 100644 index 0000000..2953eac --- /dev/null +++ b/backend/tests/integration/test_default_alert_rules.py @@ -0,0 +1,47 @@ +""" +Integration test that default alert rules include wireless metrics. +""" + +import pytest + +pytestmark = pytest.mark.integration + + +class TestDefaultAlertRules: + """Verify default alert rules are seeded on tenant creation.""" + + async def test_tenant_creation_seeds_wireless_rules( + self, + client, + auth_headers_factory, + admin_session, + ): + """Creating a tenant via API seeds default rules including wireless.""" + auth = await auth_headers_factory(admin_session, role="super_admin") + + # Create a new tenant + resp = await client.post( + "/api/tenants", + json={"name": f"test-wireless-rules-{__import__('uuid').uuid4().hex[:8]}"}, + headers=auth["headers"], + ) + assert resp.status_code in (200, 201) + tenant_id = resp.json()["id"] + + # Get alert rules for the new tenant + rules_resp = await client.get( + f"/api/tenants/{tenant_id}/alert-rules", + headers=auth["headers"], + ) + assert rules_resp.status_code == 200 + rules = rules_resp.json() + + rule_metrics = {r["metric"] for r in rules} + + # Should have the standard health rules + assert "cpu_load" in rule_metrics + assert "memory_used_pct" in rule_metrics + + # Should have wireless rules + assert "signal_strength" in rule_metrics, "Missing default wireless signal rule" + assert "ccq" in rule_metrics, "Missing default wireless CCQ rule"