"""Tests for UI helper functions.""" from __future__ import annotations from cheddahbot.ui import _messages_to_chatbot class TestMessagesToChatbot: """_messages_to_chatbot converts DB messages to Gradio chatbot format.""" def test_converts_user_and_assistant(self): messages = [ {"role": "user", "content": "Hello"}, {"role": "assistant", "content": "Hi there"}, ] result = _messages_to_chatbot(messages) assert result == [ {"role": "user", "content": "Hello"}, {"role": "assistant", "content": "Hi there"}, ] def test_skips_tool_messages(self): messages = [ {"role": "user", "content": "Search for X"}, {"role": "assistant", "content": "Let me search..."}, {"role": "tool", "content": '{"results": []}'}, {"role": "assistant", "content": "Here are the results."}, ] result = _messages_to_chatbot(messages) assert len(result) == 3 assert all(m["role"] in ("user", "assistant") for m in result) def test_skips_empty_content(self): messages = [ {"role": "user", "content": "Hi"}, {"role": "assistant", "content": ""}, {"role": "assistant", "content": "Real response"}, ] result = _messages_to_chatbot(messages) assert len(result) == 2 assert result[1]["content"] == "Real response" def test_empty_input(self): assert _messages_to_chatbot([]) == [] def test_skips_system_messages(self): messages = [ {"role": "system", "content": "You are a bot"}, {"role": "user", "content": "Hi"}, ] result = _messages_to_chatbot(messages) assert len(result) == 1 assert result[0]["role"] == "user"