diff options
Diffstat (limited to 'relay_test.go')
| -rw-r--r-- | relay_test.go | 51 |
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) |
