From 8d53590e95e647bcfdff06bb7559c01d764f77fb Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Mon, 15 Jun 2026 21:37:44 +0200 Subject: [PATCH] Add unit tests for chat history cleanup logic --- backend/tests/test_agent_chat_tool.py | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 backend/tests/test_agent_chat_tool.py diff --git a/backend/tests/test_agent_chat_tool.py b/backend/tests/test_agent_chat_tool.py new file mode 100644 index 0000000..b5ef659 --- /dev/null +++ b/backend/tests/test_agent_chat_tool.py @@ -0,0 +1,28 @@ +import unittest +from types import SimpleNamespace + +from backend.agent.tools.chat import _drop_superseded_trailing_user_rows + + +class ChatToolTests(unittest.TestCase): + def test_drops_unanswered_trailing_user_messages_except_latest(self): + rows = [ + SimpleNamespace(role="user", content="first question"), + SimpleNamespace(role="assistant", content="first answer"), + SimpleNamespace(role="user", content="interrupted follow-up"), + SimpleNamespace(role="user", content="latest prompt"), + ] + + result = _drop_superseded_trailing_user_rows(rows) + + self.assertEqual([row.content for row in result], ["first question", "first answer", "latest prompt"]) + + def test_keeps_normal_alternating_history(self): + rows = [ + SimpleNamespace(role="user", content="first question"), + SimpleNamespace(role="assistant", content="first answer"), + SimpleNamespace(role="user", content="latest prompt"), + ] + + self.assertIs(_drop_superseded_trailing_user_rows(rows), rows) +