diff --git a/src/timmy/cli.py b/src/timmy/cli.py index 958325f..6d195e1 100644 --- a/src/timmy/cli.py +++ b/src/timmy/cli.py @@ -1,6 +1,7 @@ import typer from timmy.agent import create_timmy +from timmy.prompts import TIMMY_STATUS_PROMPT app = typer.Typer(help="Timmy — sovereign AI agent") @@ -23,7 +24,7 @@ def chat(message: str = typer.Argument(..., help="Message to send")): def status(): """Print Timmy's operational status.""" timmy = create_timmy() - timmy.print_response("Brief status report — one sentence.", stream=False) + timmy.print_response(TIMMY_STATUS_PROMPT, stream=False) def main(): diff --git a/tests/test_cli.py b/tests/test_cli.py new file mode 100644 index 0000000..e649fd4 --- /dev/null +++ b/tests/test_cli.py @@ -0,0 +1,29 @@ +from unittest.mock import MagicMock, patch + +from typer.testing import CliRunner + +from timmy.cli import app +from timmy.prompts import TIMMY_STATUS_PROMPT + +runner = CliRunner() + + +def test_status_uses_status_prompt(): + """status command must pass TIMMY_STATUS_PROMPT to the agent.""" + mock_timmy = MagicMock() + + with patch("timmy.cli.create_timmy", return_value=mock_timmy): + runner.invoke(app, ["status"]) + + mock_timmy.print_response.assert_called_once_with(TIMMY_STATUS_PROMPT, stream=False) + + +def test_status_does_not_use_inline_string(): + """status command must not pass the old inline hardcoded string.""" + mock_timmy = MagicMock() + + with patch("timmy.cli.create_timmy", return_value=mock_timmy): + runner.invoke(app, ["status"]) + + call_args = mock_timmy.print_response.call_args + assert call_args[0][0] != "Brief status report — one sentence."