summaryrefslogtreecommitdiffstats
path: root/relay_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'relay_test.go')
-rw-r--r--relay_test.go51
1 files changed, 22 insertions, 29 deletions
diff --git a/relay_test.go b/relay_test.go
index 4ace956..b39aa06 100644
--- a/relay_test.go
+++ b/relay_test.go
@@ -76,9 +76,16 @@ func TestRelaySendReceive(t *testing.T) {
76 url := "ws" + strings.TrimPrefix(server.URL, "http") 76 url := "ws" + strings.TrimPrefix(server.URL, "http")
77 ctx := context.Background() 77 ctx := context.Background()
78 78
79 relay, err := Connect(ctx, url) 79 // Create relay without auto-Listen to test Send/Receive directly
80 conn, _, err := websocket.Dial(ctx, url, nil)
80 if err != nil { 81 if err != nil {
81 t.Fatalf("Connect() error = %v", err) 82 t.Fatalf("Dial() error = %v", err)
83 }
84 relay := &Relay{
85 URL: url,
86 conn: conn,
87 subscriptions: make(map[string]*Subscription),
88 okChannels: make(map[string]chan *OKEnvelope),
82 } 89 }
83 defer relay.Close() 90 defer relay.Close()
84 91
@@ -234,7 +241,8 @@ func TestRelaySubscribe(t *testing.T) {
234 defer server.Close() 241 defer server.Close()
235 242
236 url := "ws" + strings.TrimPrefix(server.URL, "http") 243 url := "ws" + strings.TrimPrefix(server.URL, "http")
237 ctx := context.Background() 244 ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
245 defer cancel()
238 246
239 relay, err := Connect(ctx, url) 247 relay, err := Connect(ctx, url)
240 if err != nil { 248 if err != nil {
@@ -242,30 +250,18 @@ func TestRelaySubscribe(t *testing.T) {
242 } 250 }
243 defer relay.Close() 251 defer relay.Close()
244 252
245 sub, err := relay.Subscribe(ctx, "sub1", Filter{Kinds: []int{1}}) 253 sub := relay.Fetch(ctx, Filter{Kinds: []int{1}})
246 if err != nil {
247 t.Fatalf("Subscribe() error = %v", err)
248 }
249 254
250 // Start listening in background
251 go relay.Listen(ctx)
252
253 // Collect events
254 eventCount := 0 255 eventCount := 0
255 timeout := time.After(2 * time.Second) 256 for range sub.Events {
256 257 eventCount++
257 for { 258 }
258 select { 259
259 case <-sub.Events: 260 if eventCount != 3 {
260 eventCount++ 261 t.Errorf("Received %d events, want 3", eventCount)
261 case <-sub.EOSE: 262 }
262 if eventCount != 3 { 263 if sub.Err != nil {
263 t.Errorf("Received %d events, want 3", eventCount) 264 t.Errorf("Subscription.Err = %v, want nil", sub.Err)
264 }
265 return
266 case <-timeout:
267 t.Fatal("Timeout waiting for events")
268 }
269 } 265 }
270} 266}
271 267
@@ -322,10 +318,7 @@ func TestSubscriptionClose(t *testing.T) {
322 } 318 }
323 defer relay.Close() 319 defer relay.Close()
324 320
325 sub, err := relay.Subscribe(ctx, "sub1", Filter{Kinds: []int{1}}) 321 sub := relay.Subscribe(ctx, Filter{Kinds: []int{1}})
326 if err != nil {
327 t.Fatalf("Subscribe() error = %v", err)
328 }
329 322
330 if err := sub.Close(ctx); err != nil { 323 if err := sub.Close(ctx); err != nil {
331 t.Errorf("Subscription.Close() error = %v", err) 324 t.Errorf("Subscription.Close() error = %v", err)