Expand TUI guidance and host detection coverage

This commit is contained in:
Luna 2026-07-09 19:16:27 -07:00
parent 3b037646d2
commit 8194d13734
20 changed files with 414 additions and 42 deletions

View file

@ -52,6 +52,19 @@ class TestTuiCore(unittest.TestCase):
run_tui_command(state, "quit")
self.assertTrue(state.should_quit)
def test_beginner_workflow_commands(self):
state = TuiState()
run_tui_command(state, "next")
self.assertEqual(state.view, "incidents")
run_tui_command(state, "next")
self.assertEqual(state.view, "timeline")
run_tui_command(state, "back")
self.assertEqual(state.view, "incidents")
run_tui_command(state, "home")
self.assertEqual(state.view, "status")
run_tui_command(state, "guide")
self.assertEqual(state.view, "help")
def test_collect_model_contains_dashboard_parity_sections(self):
model = collect_model(self.cfg)
for key in (
@ -64,6 +77,8 @@ class TestTuiCore(unittest.TestCase):
lines = render_lines(state, width=80)
self.assertTrue(any("Daemon:" in line for line in lines))
self.assertTrue(any("Heartbeat:" in line for line in lines))
self.assertTrue(any("Plain language:" in line for line in lines))
self.assertTrue(any("fresh heartbeat" in line for line in lines))
def test_render_alerts_and_filter(self):
(self.tmp / "alert-1.json").write_text(json.dumps({
@ -161,10 +176,13 @@ class TestTuiCore(unittest.TestCase):
self.assertTrue(any("Overall:" in line for line in integrity))
self.assertTrue(any("ttl expired" in line for line in integrity))
events = render_lines(TuiState(view="events", model=model), width=100)
self.assertEqual(events, ["2026-07-09T01:02:03 event happened"])
self.assertTrue(any("technical logs" in line for line in events))
self.assertTrue(any("2026-07-09T01:02:03 event happened" in line
for line in events))
response = render_lines(TuiState(view="response", model=model), width=100)
self.assertTrue(any("inc-1" in line for line in response))
self.assertTrue(any("tar -czf /tmp/evidence.tgz" in line for line in response))
self.assertTrue(any("not executed" in line for line in response))
def test_cli_completion_outputs_scripts(self):
for shell in ("bash", "zsh"):
@ -182,6 +200,9 @@ class TestTuiCore(unittest.TestCase):
help_lines = render_lines(TuiState(view="help"), width=100)
for command in TUI_COMMANDS:
self.assertTrue(any(command in line for line in help_lines), command)
self.assertTrue(any("New User Workflow" in line for line in help_lines))
self.assertTrue(any("read-only" in line for line in help_lines))
self.assertTrue(any("n/b" in line for line in help_lines))
def test_header_scales_to_terminal_width(self):
state = TuiState(view="integrity")
@ -189,7 +210,7 @@ class TestTuiCore(unittest.TestCase):
with self.subTest(width=width):
header = _header_text(state, width)
self.assertLessEqual(len(header), width - 1)
self.assertIn("view=integrity", _header_text(state, 60))
self.assertIn("Integrity", _header_text(state, 60))
self.assertIn("6 Int", _header_text(state, 100))
self.assertIn("6 Integrity", _header_text(state, 180))