This commit is contained in:
Mateusz Gruszczyński
2026-08-15 23:43:58 +02:00
parent 71b6c0d86f
commit e8e5515e24
27 changed files with 861 additions and 64 deletions
+28
View File
@@ -54,6 +54,24 @@ class WebUITests(unittest.TestCase):
def test_intelligence_stages_column_has_dedicated_width_hook(self):
self.assertIn('<th class="stages-col">Stages</th>', DASHBOARD)
def test_security_uses_compact_internal_tabs(self):
for tab in ("incidents", "analytics", "telemetry"):
self.assertIn(f'data-subtab-group="security" data-subtab="{tab}"', DASHBOARD)
self.assertIn(f'data-subtab-panel="security:{tab}"', DASHBOARD)
def test_intelligence_uses_compact_internal_tabs(self):
for tab in ("incidents", "assets", "threat-intel", "forensics"):
self.assertIn(f'data-subtab-group="intelligence" data-subtab="{tab}"', DASHBOARD)
self.assertIn(f'data-subtab-panel="intelligence:{tab}"', DASHBOARD)
self.assertIn("Asset intelligence", DASHBOARD)
self.assertIn("Threat intelligence repository", DASHBOARD)
self.assertIn("Forensic PCAP ring", DASHBOARD)
def test_system_has_dedicated_redis_status_panel(self):
self.assertIn('<h2>Redis</h2>', DASHBOARD)
self.assertIn('id="redisStateBadge"', DASHBOARD)
self.assertIn('id="redisStatus"', DASHBOARD)
def test_live_stream_is_opt_in_and_bounded(self):
self.assertIn('Continuous streaming is off by default', DASHBOARD)
self.assertIn('id="toggleLive"', DASHBOARD)
@@ -76,9 +94,19 @@ class WebUITests(unittest.TestCase):
"clearSourceSelection",
"queueSelectedSources",
"sourceQueueStatus",
"feedRuleCount",
"ruleUpdateSchedule",
):
self.assertIn(f'id="{element_id}"', DASHBOARD)
def test_merged_rules_ui_has_explicit_counters(self):
self.assertIn('id="mergedRuleCount"', DASHBOARD)
self.assertIn('id="mergedRuleMatchCount"', DASHBOARD)
def test_merged_rules_panel_is_collapsed_by_default(self):
self.assertIn('<details id="mergedRulesPanel" class="panel mt-4 collapsible-panel">', DASHBOARD)
self.assertNotIn('<details id="mergedRulesPanel" class="panel mt-4 collapsible-panel" open', DASHBOARD)
def test_autonomous_ids_operations_are_exposed_in_ui(self):
for element_id in (
"ruleIntelRows", "ruleSnapshotRows", "createRuleSnapshot",