Expand TUI guidance and host detection coverage
This commit is contained in:
parent
3b037646d2
commit
8194d13734
20 changed files with 414 additions and 42 deletions
|
|
@ -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))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue