changed subscription.Message.Data to []byte and added client.Send(m) helper

This commit is contained in:
Gani Georgiev
2023-07-20 16:32:21 +03:00
parent 50d7df45eb
commit ac52befb5b
6 changed files with 76 additions and 22 deletions
+43
View File
@@ -2,6 +2,7 @@ package subscriptions_test
import (
"testing"
"time"
"github.com/pocketbase/pocketbase/tools/subscriptions"
)
@@ -143,3 +144,45 @@ func TestDiscard(t *testing.T) {
t.Fatal("Expected true, got false")
}
}
func TestSend(t *testing.T) {
c := subscriptions.NewDefaultClient()
received := []string{}
go func() {
for {
select {
case m, ok := <-c.Channel():
if !ok {
return
}
received = append(received, m.Name)
}
}
}()
c.Send(subscriptions.Message{Name: "m1"})
c.Send(subscriptions.Message{Name: "m2"})
c.Discard()
c.Send(subscriptions.Message{Name: "m3"})
c.Send(subscriptions.Message{Name: "m4"})
time.Sleep(5 * time.Millisecond)
expected := []string{"m1", "m2"}
if len(received) != len(expected) {
t.Fatalf("Expected %d messages, got %d", len(expected), len(received))
}
for _, name := range expected {
var exists bool
for _, n := range received {
if n == name {
exists = true
break
}
}
if !exists {
t.Fatalf("Missing expected %q message, got %v", name, received)
}
}
}