test(store): 835 batch publishes remittance_written + activity_recorded

This commit is contained in:
Tyler
2026-06-20 15:47:35 -06:00
parent ac7f3283d6
commit 8d02ed3204
+46
View File
@@ -123,6 +123,52 @@ async def test_add_837_publishes_claim_written_and_activity_recorded_events():
assert "claimId" in ev
def test_add_835_publishes_remittance_written_and_activity_recorded_events():
"""835 batches publish remittance_written events (one per remit) and
activity_recorded events (one per activity row)."""
import asyncio
from cyclone.pubsub import EventBus
from cyclone.store import BatchRecord835
# Reuse the 835 result helper from test_store_reconcile.py.
from test_store_reconcile import _make_835_result, _make_remit_with_cas
bus = EventBus()
remit_q = bus.subscribe(["remittance_written"])
activity_q = bus.subscribe(["activity_recorded"])
cp = _make_remit_with_cas(remit_id="CLP-PUB", pcn="PCN-PUB")
rec = BatchRecord835(
id="b-835-1", kind="835", input_filename="test835.txt",
parsed_at=datetime(2026, 6, 19, 12, 0, tzinfo=timezone.utc),
result=_make_835_result([cp]),
)
CycloneStore().add(rec, event_bus=bus)
loop = asyncio.new_event_loop()
try:
remits = []
for _ in range(1):
remits.append(loop.run_until_complete(
asyncio.wait_for(remit_q.__anext__(), timeout=0.5)
))
activities = []
for _ in range(1):
activities.append(loop.run_until_complete(
asyncio.wait_for(activity_q.__anext__(), timeout=0.5)
))
finally:
loop.close()
for ev in remits:
assert ev["_kind"] == "remittance_written"
assert ev["id"] == "PCN-PUB"
for ev in activities:
assert ev["_kind"] == "activity_recorded"
assert ev["kind"] == "remit_received"
assert ev["remittanceId"] == "PCN-PUB"
def test_add_837_persists_batch_and_claims():
s = CycloneStore()
rec = _make_batch_record()