feat: bot and you entity schemas with projector handlers
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
from chat.db.migrate import apply_migrations
|
||||
from chat.db.connection import open_db
|
||||
from chat.eventlog.log import append_event
|
||||
from chat.eventlog.projector import project
|
||||
from chat.state.entities import get_bot, list_bots, get_you
|
||||
import chat.state.entities # registers handlers
|
||||
|
||||
|
||||
def test_bot_authored_creates_bot_row(tmp_path):
|
||||
db = tmp_path / "t.db"
|
||||
apply_migrations(db)
|
||||
with open_db(db) as conn:
|
||||
append_event(conn, kind="bot_authored", payload={
|
||||
"id": "bot_a", "name": "BotA",
|
||||
"persona": "...", "voice_samples": ["sample"], "traits": ["shy"],
|
||||
"backstory": "...",
|
||||
"initial_relationship_to_you": "coworker",
|
||||
"kickoff_prose": "you stay late",
|
||||
})
|
||||
project(conn)
|
||||
bot = get_bot(conn, "bot_a")
|
||||
assert bot is not None
|
||||
assert bot["name"] == "BotA"
|
||||
assert bot["traits"] == ["shy"]
|
||||
assert "bot_a" in [b["id"] for b in list_bots(conn)]
|
||||
|
||||
|
||||
def test_you_authored_creates_you_singleton(tmp_path):
|
||||
db = tmp_path / "t.db"
|
||||
apply_migrations(db)
|
||||
with open_db(db) as conn:
|
||||
append_event(conn, kind="you_authored", payload={
|
||||
"name": "Me", "pronouns": "they/them", "persona": "engineer",
|
||||
})
|
||||
project(conn)
|
||||
you = get_you(conn)
|
||||
assert you is not None
|
||||
assert you["name"] == "Me"
|
||||
Reference in New Issue
Block a user