mirror of
https://github.com/Sea-Haven-Industries/open-swe.git
synced 2026-09-30 16:13:15 +00:00
72 lines
2.1 KiB
Python
72 lines
2.1 KiB
Python
|
|
"""Tests for LangGraph message → dashboard UI adapter."""
|
||
|
|
|
||
|
|
from agent.dashboard.message_adapter import state_messages_to_ui
|
||
|
|
|
||
|
|
|
||
|
|
def test_state_messages_to_ui_maps_user_and_tool_calls() -> None:
|
||
|
|
messages = [
|
||
|
|
{"type": "human", "id": "u1", "content": "Fix the bug"},
|
||
|
|
{
|
||
|
|
"type": "ai",
|
||
|
|
"id": "a1",
|
||
|
|
"content": "I'll read the file first.",
|
||
|
|
"tool_calls": [
|
||
|
|
{
|
||
|
|
"id": "call-1",
|
||
|
|
"name": "read_file",
|
||
|
|
"args": {"path": "app.py"},
|
||
|
|
}
|
||
|
|
],
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"type": "tool",
|
||
|
|
"tool_call_id": "call-1",
|
||
|
|
"name": "read_file",
|
||
|
|
"content": "print('hi')",
|
||
|
|
},
|
||
|
|
]
|
||
|
|
|
||
|
|
ui = state_messages_to_ui(messages)
|
||
|
|
|
||
|
|
assert len(ui) == 2
|
||
|
|
assert ui[0]["author"] == "user"
|
||
|
|
assert ui[0]["chunks"][0]["text"] == "Fix the bug"
|
||
|
|
assert ui[1]["author"] == "agent"
|
||
|
|
tool_chunk = ui[1]["chunks"][-1]
|
||
|
|
assert tool_chunk["kind"] == "tool-execution"
|
||
|
|
assert tool_chunk["toolCallId"] == "call-1"
|
||
|
|
assert tool_chunk["status"] == "completed"
|
||
|
|
assert tool_chunk["output"] == "print('hi')"
|
||
|
|
|
||
|
|
|
||
|
|
def test_state_messages_to_ui_merges_agent_turn_and_hides_internal_tools() -> None:
|
||
|
|
messages = [
|
||
|
|
{"type": "human", "id": "u1", "content": "hello"},
|
||
|
|
{
|
||
|
|
"type": "ai",
|
||
|
|
"id": "a1",
|
||
|
|
"content": "Hi! What would you like me to work on?",
|
||
|
|
"tool_calls": [{"id": "call-cc", "name": "confirming_completion", "args": {}}],
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"type": "tool",
|
||
|
|
"tool_call_id": "call-cc",
|
||
|
|
"name": "confirming_completion",
|
||
|
|
"content": "Confirming task completion.",
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"type": "ai",
|
||
|
|
"id": "a2",
|
||
|
|
"content": "Hi! What would you like me to work on? Let me know the task.",
|
||
|
|
},
|
||
|
|
]
|
||
|
|
|
||
|
|
ui = state_messages_to_ui(messages)
|
||
|
|
|
||
|
|
assert len(ui) == 2
|
||
|
|
assert ui[0]["author"] == "user"
|
||
|
|
assert len(ui[1]["chunks"]) == 1
|
||
|
|
assert (
|
||
|
|
ui[1]["chunks"][0]["text"] == "Hi! What would you like me to work on? Let me know the task."
|
||
|
|
)
|