From e6f23759bcf18ba756fd589b0f6e9a93fb87cb1f Mon Sep 17 00:00:00 2001 From: Jay Date: Wed, 3 Jun 2026 18:10:43 -0400 Subject: [PATCH] test: EventPublisher publish rejected --- publish_test.go | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/publish_test.go b/publish_test.go index 7658cb4..0d4be8c 100644 --- a/publish_test.go +++ b/publish_test.go @@ -53,8 +53,47 @@ func TestEventPublisher(t *testing.T) { }) t.Run("publish rejected", func(t *testing.T) { - // same setup; feed EncloseOK(id, false, "blocked: not on allowlist") - // assert accepted==false, msg=="blocked: not on allowlist", err==nil + p, envoy := newMockEnvoy(t) + p.connect() + + pub := NewEventPublisher(envoy) + t.Cleanup(pub.Close) + + const id = "bbbb2222" + eventJSON := []byte(`{"id":"bbbb2222","kind":1}`) + + type result struct { + accepted bool + message string + err error + } + ch := make(chan result, 1) + go func() { + accepted, msg, err := pub.Publish(id, eventJSON, TestTimeout) + ch <- result{accepted, msg, err} + }() + + Eventually(t, func() bool { + select { + case <-p.sent: + return true + default: + return false + } + }, "EVENT envelope not sent") + + p.receive([]byte(envelope.EncloseOK(id, false, "rejected: not on whitelist"))) + + Eventually(t, func() bool { + select { + case r := <-ch: + return !r.accepted && + r.message == "rejected: not on whitelist" && + r.err == nil + default: + return false + } + }, "Publish did not return rejected result") }) t.Run("publish timeout", func(t *testing.T) {