feat(smoke): assert-lifecycle-event-lands-in-Valkey-stream hook (deploy-C §5.6, deploy-B smoke harness)

Signed-off-by: Aaron D. Lee <himself@adlee.work>
This commit is contained in:
2026-07-06 03:17:04 -04:00
parent e6dc6fda14
commit 2217c7bf7a

View File

@@ -1912,15 +1912,16 @@ curl --cacert /tmp/rutster-smoke-root.pem -fsS https://localhost/readyz \
|| { echo "[compose_smoke] FAIL: /readyz never returned ok"; docker compose logs; exit 1; }
echo "[compose_smoke] /readyz ok"
# TODO slice-C: assert lifecycle event in Valkey stream.
# Slice C lands ValkeyEventSink (spec §5.6) + the assert-event-lands-in-
# Valkey-stream smoke addition. The hook here documents the contract:
# Once slice C lands, this smoke runs:
# docker compose exec valkey valkey-cli XLEN rutster:events
# and asserts > 0 after a sim call completes (an EventSink::on_event
# call writes via XADD MAXLEN ~). Until then, the valkey service is dark
# (no consumers) — counting the stream length would always be 0.
# Leaving the named hook so slice C's plan can grep for it.
# Assert lifecycle event lands in the Valkey stream (deploy-C §5.6).
# The all-in-one smoke simulated a session lifecycle (register + delete);
# ValkeyEventSink should have XADD-ed SessionRegistered + SessionEnded.
EVENT_COUNT=$(docker compose exec -T valkey valkey-cli XLEN rutster:events)
if [ "$EVENT_COUNT" -lt 2 ]; then
echo "[compose_smoke] FAIL: expected >= 2 events in rutster:events, got $EVENT_COUNT" >&2
docker compose logs
exit 1
fi
echo "[compose_smoke] rutster:events has $EVENT_COUNT lifecycle event(s)"
echo "[compose_smoke] PASS: T2 compose boots + /healthz + /readyz verified"
# Cleanup (compose down; volumes left for warm cache on re-run).