Skip to content

Commit 956dbd8

Browse files
committed
Add closeError test
1 parent 3149225 commit 956dbd8

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

websocket_test.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,50 @@ func TestHandshake(t *testing.T) {
7474
return nil
7575
},
7676
},
77+
{
78+
name: "closeError",
79+
server: func(w http.ResponseWriter, r *http.Request) error {
80+
c, err := websocket.Accept(w, r, websocket.AcceptOptions{})
81+
if err != nil {
82+
return err
83+
}
84+
defer c.Close(websocket.StatusInternalError, "")
85+
86+
err = wsjson.Write(r.Context(), c, "hello")
87+
if err != nil {
88+
return err
89+
}
90+
91+
return nil
92+
},
93+
client: func(ctx context.Context, u string) error {
94+
c, _, err := websocket.Dial(ctx, u, websocket.DialOptions{
95+
Subprotocols: []string{"meow"},
96+
})
97+
if err != nil {
98+
return err
99+
}
100+
defer c.Close(websocket.StatusInternalError, "")
101+
102+
var m string
103+
err = wsjson.Read(ctx, c, &m)
104+
if err != nil {
105+
return err
106+
}
107+
108+
if m != "hello" {
109+
return xerrors.Errorf("recieved unexpected msg but expected hello: %+v", m)
110+
}
111+
112+
_, _, err = c.Reader(ctx)
113+
var cerr websocket.CloseError
114+
if !xerrors.As(err, &cerr) || cerr.Code != websocket.StatusInternalError {
115+
return xerrors.Errorf("unexpected error: %+v", err)
116+
}
117+
118+
return nil
119+
},
120+
},
77121
{
78122
name: "defaultSubprotocol",
79123
server: func(w http.ResponseWriter, r *http.Request) error {

0 commit comments

Comments
 (0)