test: NoticeHandler observer notified
This commit is contained in:
@@ -60,11 +60,16 @@ func (h *NoticeHandler) route() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
now := time.Now()
|
||||||
h.notices <- Notice{
|
h.notices <- Notice{
|
||||||
PeerID: msg.ID,
|
PeerID: msg.ID,
|
||||||
Message: message,
|
Message: message,
|
||||||
Timestamp: time.Now(),
|
Timestamp: now,
|
||||||
}
|
}
|
||||||
|
h.envoy.Observer().Record(msg.ID, NoticeReceived{
|
||||||
|
Message: message,
|
||||||
|
At: now,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-3
@@ -48,9 +48,17 @@ func TestNoticeHandler(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("observer notified", func(t *testing.T) {
|
t.Run("observer notified", func(t *testing.T) {
|
||||||
// wire mockObserver via envoy (requires constructor option or mock envoy)
|
obs := &mockObserver{}
|
||||||
// p.receive(envelope.EncloseNotice("hello"))
|
p, envoy := newMockEnvoy(t, WithEmbassyObserver(obs))
|
||||||
// Eventually: mockObserver recorded NoticeReceived{Message: "hello"}
|
h := NewNoticeHandler(envoy)
|
||||||
|
t.Cleanup(h.Close)
|
||||||
|
|
||||||
|
p.receive([]byte(envelope.EncloseNotice("hello")))
|
||||||
|
|
||||||
|
Eventually(t, func() bool {
|
||||||
|
events := EventsOf[NoticeReceived](obs)
|
||||||
|
return len(events) == 1 && events[0].Message == "hello"
|
||||||
|
}, "NoticeReceived observable not recorded")
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("close cleans up", func(t *testing.T) {
|
t.Run("close cleans up", func(t *testing.T) {
|
||||||
|
|||||||
Reference in New Issue
Block a user