mirror of
https://github.com/Alishahryar1/free-claude-code.git
synced 2026-07-03 14:05:26 +02:00
89 lines
2.7 KiB
Python
89 lines
2.7 KiB
Python
import pytest
|
|
from unittest.mock import MagicMock
|
|
from messaging.handler import ClaudeMessageHandler
|
|
|
|
|
|
@pytest.fixture
|
|
def handler():
|
|
platform = MagicMock()
|
|
cli = MagicMock()
|
|
store = MagicMock()
|
|
return ClaudeMessageHandler(platform, cli, store)
|
|
|
|
|
|
def test_build_message_structure(handler):
|
|
"""Verify the order of message components."""
|
|
components = {
|
|
"thinking": ["Thinking process..."],
|
|
"tools": ["list_files", "read_file"],
|
|
"subagents": ["Searching codebase...", "Analyzing dependencies..."],
|
|
"content": ["Here is the file content."],
|
|
"errors": ["Some error happened"],
|
|
}
|
|
status = "✅ **Complete**"
|
|
|
|
msg = handler._build_message(components, status)
|
|
|
|
print(f"Generated Message:\n{msg}")
|
|
|
|
# Check existence
|
|
assert "Thinking process..." in msg
|
|
assert "list_files" in msg
|
|
assert "read_file" in msg
|
|
assert "Searching codebase..." in msg
|
|
assert "Here is the file content." in msg
|
|
assert "Some error happened" in msg
|
|
assert "✅ **Complete**" in msg
|
|
|
|
# Check headers
|
|
assert "💭 **Thinking:**" in msg
|
|
assert "🛠 **Tools:**" in msg
|
|
assert "🤖 **Subagent:**" in msg
|
|
assert "⚠️ **Error:**" in msg
|
|
|
|
# Check Order: Thinking -> Tools -> Subagents -> Content -> Errors -> Status
|
|
p_thinking = msg.find("Thinking process...")
|
|
p_tools = msg.find("🛠 **Tools:**")
|
|
p_subagents = msg.find("🤖 **Subagent:**")
|
|
p_content = msg.find("Here is the file content.")
|
|
p_errors = msg.find("⚠️ **Error:**")
|
|
p_status = msg.find("✅ **Complete**")
|
|
|
|
assert p_thinking < p_tools, "Thinking should come before Tools"
|
|
assert p_tools < p_subagents, "Tools should come before Subagents"
|
|
assert p_subagents < p_content, "Subagents should come before Content"
|
|
assert p_content < p_errors, "Content should come before Errors"
|
|
assert p_errors < p_status, "Errors should come before Status"
|
|
|
|
|
|
def test_build_message_simple(handler):
|
|
"""Verify simple message with just content."""
|
|
components = {
|
|
"thinking": [],
|
|
"tools": [],
|
|
"subagents": [],
|
|
"content": ["Simple message."],
|
|
"errors": [],
|
|
}
|
|
msg = handler._build_message(components, "Ready")
|
|
|
|
assert "Simple message." in msg
|
|
assert "Ready" in msg
|
|
assert "💭" not in msg
|
|
assert "🛠" not in msg
|
|
|
|
|
|
def test_subagents_formatting(handler):
|
|
"""Verify subagents formatting."""
|
|
components = {
|
|
"thinking": [],
|
|
"tools": [],
|
|
"subagents": ["Task 1", "Task 2"],
|
|
"content": [],
|
|
"errors": [],
|
|
}
|
|
msg = handler._build_message(components)
|
|
|
|
assert "🤖 **Subagent:** `Task 1`" in msg
|
|
assert "🤖 **Subagent:** `Task 2`" in msg
|