import tempfile
import unittest
from pathlib import Path

from agent_gui.sessions import SessionStore, new_session_id


class SessionStoreTests(unittest.TestCase):
    def test_append_and_read_events(self):
        with tempfile.TemporaryDirectory() as tmp:
            store = SessionStore(tmp)
            sid = new_session_id()
            store.append(sid, {"type": "user_message", "content": "salut"})
            events = store.read(sid)
            self.assertEqual(len(events), 1)
            self.assertEqual(events[0]["content"], "salut")
            self.assertEqual(events[0]["session_id"], sid)

    def test_list_sessions(self):
        with tempfile.TemporaryDirectory() as tmp:
            store = SessionStore(tmp)
            sid = "abc123"
            store.append(sid, {"type": "assistant_message", "content": "ok"})
            sessions = store.list_sessions()
            self.assertEqual(sessions[0]["session_id"], sid)
            self.assertEqual(sessions[0]["events"], 1)


if __name__ == "__main__":
    unittest.main()
