Only send events to clients who need it

- User events (star, rating, plays) only sent to same user
- Don't send to the client (browser window) that originated the event
This commit is contained in:
Deluan
2021-06-15 18:35:08 -04:00
parent 5f6f74ff2d
commit b65e76293a
13 changed files with 197 additions and 63 deletions
+10 -10
View File
@@ -21,20 +21,20 @@ var _ = Describe("diode", func() {
})
It("enqueues the data correctly", func() {
diode.set(message{Data: "1"})
diode.set(message{Data: "2"})
Expect(diode.next()).To(Equal(&message{Data: "1"}))
Expect(diode.next()).To(Equal(&message{Data: "2"}))
diode.put(message{data: "1"})
diode.put(message{data: "2"})
Expect(diode.next()).To(Equal(&message{data: "1"}))
Expect(diode.next()).To(Equal(&message{data: "2"}))
Expect(missed).To(BeZero())
})
It("drops messages when diode is full", func() {
diode.set(message{Data: "1"})
diode.set(message{Data: "2"})
diode.set(message{Data: "3"})
diode.put(message{data: "1"})
diode.put(message{data: "2"})
diode.put(message{data: "3"})
next, ok := diode.tryNext()
Expect(ok).To(BeTrue())
Expect(next).To(Equal(&message{Data: "3"}))
Expect(next).To(Equal(&message{data: "3"}))
_, ok = diode.tryNext()
Expect(ok).To(BeFalse())
@@ -43,9 +43,9 @@ var _ = Describe("diode", func() {
})
It("returns nil when diode is empty and the context is canceled", func() {
diode.set(message{Data: "1"})
diode.put(message{data: "1"})
ctxCancel()
Expect(diode.next()).To(Equal(&message{Data: "1"}))
Expect(diode.next()).To(Equal(&message{data: "1"}))
Expect(diode.next()).To(BeNil())
})
})