"""Tests for user-visible definition-of-done status formatting.""" from loader.cli.rendering import ( format_dod_status, format_permission_mode, format_workflow_mode, ) from loader.runtime.events import AgentEvent from loader.ui.status_helpers import ( format_capability_part, format_definition_of_done_parts, format_permission_mode_part, format_runtime_owner_part, format_session_part, format_turn_phase_part, format_workflow_mode_part, ) def test_status_helper_formats_definition_of_done_parts() -> None: parts = format_definition_of_done_parts("verifying", 1, "failed", "attempt 2") assert parts == [ "[yellow]DoD: verifying[/yellow]", "[dim]1 pending[/dim]", "[red]verify failed (attempt 2)[/red]", ] def test_status_helper_omits_definition_of_done_when_absent() -> None: assert format_definition_of_done_parts("", 0, "") == [] def test_cli_dod_status_format_includes_pending_and_verification() -> None: event = AgentEvent( type="dod_status", dod_status="fixing", pending_items_count=2, last_verification_result="failed", ) formatted = format_dod_status(event) assert formatted == "DoD: fixing | 2 pending | last verify: failed" def test_permission_mode_helpers_use_expected_colors() -> None: assert format_permission_mode_part("read-only") == "[green]perm read-only[/green]" assert format_permission_mode("danger-full-access") == "[red]danger-full-access[/red]" assert format_permission_mode_part("prompt") == "[magenta]perm prompt[/magenta]" assert format_permission_mode("allow") == "[cyan]allow[/cyan]" def test_workflow_mode_helpers_use_expected_colors() -> None: assert format_workflow_mode_part("plan") == "[cyan]flow plan[/cyan]" assert format_workflow_mode("verify") == "[green]verify[/green]" def test_turn_phase_helpers_use_expected_colors() -> None: assert format_turn_phase_part("repair") == "[magenta]phase repair[/magenta]" assert format_turn_phase_part("completion") == "[green]phase completion[/green]" def test_status_helpers_format_capability_and_session_parts() -> None: assert format_capability_part("native/strict") == "[dim]cap native/strict[/dim]" assert format_session_part("20260406T120000Z-abcdef01") == "[dim]session abcdef01[/dim]" assert format_runtime_owner_part("runtime-handle") == "[dim]owner runtime-handle[/dim]"