"""C1:聊天消息存储 + pending_intent 测试(store.py 扩展)。""" from __future__ import annotations from genesis.server.store import SessionStore def test_add_and_list_messages(tmp_path): store = SessionStore(db_path=str(tmp_path / "s.db")) sid = store.create_session("u1").session_id store.add_message(sid, "user", "生成概要设计书", action="generate") store.add_message(sid, "assistant", "影响调查完成,请确认", action=None) msgs = store.list_messages(sid) assert len(msgs) == 2 assert msgs[0]["role"] == "user" assert msgs[0]["content"] == "生成概要设计书" assert msgs[0]["action"] == "generate" assert msgs[1]["role"] == "assistant" def test_messages_isolated_per_session(tmp_path): store = SessionStore(db_path=str(tmp_path / "s.db")) a = store.create_session("u1").session_id b = store.create_session("u1").session_id store.add_message(a, "user", "msg-a") store.add_message(b, "user", "msg-b") assert [m["content"] for m in store.list_messages(a)] == ["msg-a"] assert [m["content"] for m in store.list_messages(b)] == ["msg-b"] def test_pending_intent_persisted(tmp_path): store = SessionStore(db_path=str(tmp_path / "s.db")) sid = store.create_session("u1").session_id assert store.get_session(sid).pending_intent == "" store.update_session(sid, pending_intent="generate") assert store.get_session(sid).pending_intent == "generate" # 重开 db 仍在 store2 = SessionStore(db_path=str(tmp_path / "s.db")) assert store2.get_session(sid).pending_intent == "generate"