feat(store): add publishes claim_written + activity_recorded events
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user