feat(store): add publishes claim_written + activity_recorded events

This commit is contained in:
Tyler
2026-06-20 15:42:56 -06:00
parent 5a712e5afd
commit ac7f3283d6
2 changed files with 130 additions and 1 deletions
+33
View File
@@ -90,6 +90,39 @@ def test_module_singleton():
assert isinstance(store, CycloneStore)
@pytest.mark.asyncio
async def test_add_837_publishes_claim_written_and_activity_recorded_events():
"""store.add() with event_bus= should publish one claim_written event
per inserted claim and one activity_recorded event per activity row."""
from cyclone.pubsub import EventBus
bus = EventBus()
claim_q = bus.subscribe(["claim_written"])
activity_q = bus.subscribe(["activity_recorded"])
s = CycloneStore()
rec = _make_batch_record()
s.add(rec, event_bus=bus)
# Two claims + two claim_submitted activity events expected.
import asyncio
claims = []
for _ in range(2):
claims.append(await asyncio.wait_for(claim_q.__anext__(), timeout=0.5))
activities = []
for _ in range(2):
activities.append(await asyncio.wait_for(activity_q.__anext__(), timeout=0.5))
# Each event has _kind and a payload with the expected shape.
for ev in claims:
assert ev["_kind"] == "claim_written"
assert "id" in ev
for ev in activities:
assert ev["_kind"] == "activity_recorded"
assert ev["kind"] == "claim_submitted"
assert "claimId" in ev
def test_add_837_persists_batch_and_claims():
s = CycloneStore()
rec = _make_batch_record()