multi-agent-lab / tests /test_engine.py
agharsallah
feat: Implement audience-only secret badge for Twenty Sprouts game
f6566bb
Raw
History Blame Contribute Delete
1.03 kB
from src.core.conductor import Conductor
from src.core.events import Event
from src.core.ledger import Ledger
from src.core.projections import rebuild_stage
from src.scenarios.thousand_token_wood import build_scenario
def test_ledger_dedupes_by_event_id() -> None:
ledger = Ledger()
event = Event(run_id="run", turn=0, kind="world.observed", actor="test", payload={"text": "hello"})
ledger.append(event)
ledger.append(event)
assert len(ledger.events) == 1
def test_projection_rebuilds_from_events() -> None:
event = Event(run_id="run", turn=0, kind="user.injected", actor="visitor", payload={"text": "a brass moon"})
projection = rebuild_stage((event,))
assert projection.user_artifacts == ["a brass moon"]
def test_conductor_runs_vertical_slice() -> None:
conductor = Conductor(build_scenario())
conductor.reset("a test clearing")
conductor.step()
assert len(conductor.ledger.events) >= 3
assert conductor.projection.current_scene != "The curtain has not risen."