Skip to content

Commit 6c729ef

Browse files
committedApr 2, 2024
add test to close websocket peer
1 parent ea2a2b1 commit 6c729ef

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
 

‎transport/websocketpeer_test.go

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package transport_test
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"testing"
7+
8+
"github.com/stretchr/testify/require"
9+
10+
"github.com/gammazero/nexus/v3/router"
11+
"github.com/gammazero/nexus/v3/transport"
12+
"github.com/gammazero/nexus/v3/transport/serialize"
13+
"github.com/gammazero/nexus/v3/wamp"
14+
)
15+
16+
func TestCloseWebsocketPeer(t *testing.T) {
17+
routerConfig := &router.Config{
18+
RealmConfigs: []*router.RealmConfig{
19+
{
20+
URI: wamp.URI("nexus.test.realm"),
21+
},
22+
},
23+
}
24+
r, err := router.NewRouter(routerConfig, nil)
25+
require.NoError(t, err)
26+
defer r.Close()
27+
28+
const wsAddr = "127.0.0.1:8000"
29+
closer, err := router.NewWebsocketServer(r).ListenAndServe(wsAddr)
30+
require.NoError(t, err)
31+
defer closer.Close()
32+
33+
client, err := transport.ConnectWebsocketPeer(
34+
context.Background(), fmt.Sprintf("ws://%s/", wsAddr), serialize.JSON, nil, r.Logger(), nil)
35+
require.NoError(t, err)
36+
37+
// Close the client connection.
38+
client.Close()
39+
40+
// Try closing the client connection again. It should not cause an error.
41+
client.Close()
42+
}

0 commit comments

Comments
 (0)