MCPcopy Create free account
hub / github.com/Mnexa-AI/e2a / newTestWSPair

Function newTestWSPair

internal/ws/hub_test.go:16–48  ·  view source on GitHub ↗

newTestWSPair creates a connected client/server websocket pair.

(t *testing.T)

Source from the content-addressed store, hash-verified

14
15// newTestWSPair creates a connected client/server websocket pair.
16func newTestWSPair(t *testing.T) (*websocket.Conn, *websocket.Conn) {
17 t.Helper()
18 var serverConn *websocket.Conn
19 ready := make(chan struct{})
20
21 srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
22 var err error
23 serverConn, err = websocket.Accept(w, r, nil)
24 if err != nil {
25 t.Fatalf("accept: %v", err)
26 }
27 close(ready)
28 // Keep open until test closes it
29 select {}
30 }))
31 t.Cleanup(srv.Close)
32
33 ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
34 defer cancel()
35
36 clientConn, _, err := websocket.Dial(ctx, "ws"+strings.TrimPrefix(srv.URL, "http"), nil)
37 if err != nil {
38 t.Fatalf("dial: %v", err)
39 }
40
41 select {
42 case <-ready:
43 case <-ctx.Done():
44 t.Fatal("timeout waiting for server accept")
45 }
46
47 return clientConn, serverConn
48}
49
50func TestHubRegisterAndIsConnected(t *testing.T) {
51 hub := NewHub()

Callers 7

TestHubSendFunction · 0.85
TestHubCloseFunction · 0.85
TestHubConcurrencyFunction · 0.85

Calls 2

makeFunction · 0.85
CleanupMethod · 0.80

Tested by

no test coverage detected