Skip to content

Commit 541cd83

Browse files
committed
simplify tests
1 parent 6737ab4 commit 541cd83

1 file changed

Lines changed: 24 additions & 18 deletions

File tree

pkg/foundation/grpcutil/websocket_test.go

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package grpcutil
1616

1717
import (
18+
"context"
1819
"io"
1920
"net/http"
2021
"net/http/httptest"
@@ -27,56 +28,61 @@ import (
2728
)
2829

2930
type testHandler struct {
30-
responses chan string
31+
is *is.I
32+
response string
3133
}
3234

33-
func newTestHandler() *testHandler {
34-
return &testHandler{responses: make(chan string, 1)}
35-
}
36-
37-
func (h *testHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
38-
select {
39-
case resp := <-h.responses:
40-
w.Write([]byte(resp))
41-
}
35+
func (h *testHandler) ServeHTTP(w http.ResponseWriter, _ *http.Request) {
36+
_, err := w.Write([]byte(h.response))
37+
h.is.NoErr(err)
4238
}
4339

4440
func TestWebSocket_NoUpgradeToWebSocket(t *testing.T) {
4541
is := is.New(t)
42+
ctx, cancel := context.WithCancel(context.Background())
43+
defer cancel()
4644

47-
h := newTestHandler()
45+
h := &testHandler{
46+
is: is,
47+
response: "hi there",
48+
}
4849
s := httptest.NewServer(newWebSocketProxy(h, log.Nop()))
4950
defer s.Close()
5051

51-
h.responses <- "hi there"
52-
resp, err := http.Get(s.URL)
52+
req, err := http.NewRequestWithContext(ctx, "GET", s.URL, nil)
53+
is.NoErr(err)
54+
55+
resp, err := http.DefaultClient.Do(req)
5356
is.NoErr(err)
5457
is.True(resp.Body != nil) // expected response to have a body
5558
defer resp.Body.Close()
5659

5760
bytes, err := io.ReadAll(resp.Body)
5861
is.NoErr(err)
59-
is.Equal("hi there", string(bytes))
62+
is.Equal(h.response, string(bytes))
6063
}
6164

6265
func TestWebSocket_UpgradeToWebSocket(t *testing.T) {
6366
is := is.New(t)
6467

65-
h := newTestHandler()
68+
h := &testHandler{
69+
is: is,
70+
response: "hi there",
71+
}
6672
s := httptest.NewServer(newWebSocketProxy(h, log.Nop()))
6773
defer s.Close()
6874

6975
// Convert http to ws
7076
wsURL := "ws" + strings.TrimPrefix(s.URL, "http")
7177

7278
// Connect to the server
73-
ws, _, err := websocket.DefaultDialer.Dial(wsURL, nil)
79+
ws, resp, err := websocket.DefaultDialer.Dial(wsURL, nil)
7480
is.NoErr(err)
7581
defer ws.Close()
82+
defer resp.Body.Close()
7683

77-
h.responses <- "hi there"
7884
msgType, bytes, err := ws.ReadMessage()
7985
is.NoErr(err)
80-
is.Equal("hi there", string(bytes))
86+
is.Equal(h.response, string(bytes))
8187
is.Equal(websocket.TextMessage, msgType)
8288
}

0 commit comments

Comments
 (0)