@@ -19,7 +19,7 @@ func assertSlicesEqual(t *testing.T, expected []interface{}, cb func() (interfac
19
19
require .EventuallyWithT (t , func (collect * assert.CollectT ) {
20
20
actual , err := cb ()
21
21
require .NoError (t , err )
22
- assert .EqualValues (t , expected , actual )
22
+ require .EqualValues (t , expected , actual )
23
23
}, 5 * time .Second , 200 * time .Millisecond )
24
24
}
25
25
@@ -157,7 +157,8 @@ func TestRouteWebSocketShouldWorkWithServer(t *testing.T) {
157
157
wsRouteChan := make (chan playwright.WebSocketRoute , 1 )
158
158
159
159
handleWS := func (ws playwright.WebSocketRoute ) {
160
- server , _ := ws .ConnectToServer ()
160
+ server , err := ws .ConnectToServer ()
161
+ require .NoError (t , err )
161
162
162
163
ws .OnMessage (func (message interface {}) {
163
164
msg := message .(string )
@@ -192,24 +193,23 @@ func TestRouteWebSocketShouldWorkWithServer(t *testing.T) {
192
193
wsRouteChan <- ws
193
194
}
194
195
195
- require .NoError (t , page .RouteWebSocket (regexp .MustCompile (".*" ), handleWS ))
196
-
197
- wsConnChan := server .WaitForWebSocketConnection ()
198
196
log := newSyncSlice [string ]()
199
197
200
- server .OnceWebSocketConnection (func (c * websocket.Conn , r * http.Request ) {
201
- server .OnWebSocketMessage (func (c * websocket.Conn , r * http.Request , msgType websocket.MessageType , msg []byte ) {
202
- log .Append (fmt .Sprintf ("message: %s" , msg ))
203
- })
204
- server .OnWebSocketClose (func (err * websocket.CloseError ) {
205
- log .Append (fmt .Sprintf ("close: code=%d reason=%s" , err .Code , err .Reason ))
206
- })
198
+ server .OnWebSocketMessage (func (c * websocket.Conn , r * http.Request , msgType websocket.MessageType , msg []byte ) {
199
+ log .Append (fmt .Sprintf ("message: %s" , msg ))
200
+ })
201
+ server .OnWebSocketClose (func (err * websocket.CloseError ) {
202
+ log .Append (fmt .Sprintf ("close: code=%d reason=%s" , err .Code , err .Reason ))
207
203
})
208
204
205
+ require .NoError (t , page .RouteWebSocket (regexp .MustCompile (".*" ), handleWS ))
206
+
207
+ wsConnChan := server .WaitForWebSocketConnection ()
208
+
209
209
setupWS (t , page , server .PORT , "blob" )
210
210
ws := <- wsConnChan
211
211
require .EventuallyWithT (t , func (collect * assert.CollectT ) {
212
- assert .EqualValues (t , []string {"message: fake" }, log .Get ())
212
+ require .EqualValues (t , []string {"message: fake" }, log .Get ())
213
213
}, 5 * time .Second , 200 * time .Millisecond )
214
214
215
215
ws .SendMessage (websocket .MessageText , []byte ("to-modify" ))
@@ -234,7 +234,7 @@ func TestRouteWebSocketShouldWorkWithServer(t *testing.T) {
234
234
require .NoError (t , err )
235
235
236
236
require .EventuallyWithT (t , func (collect * assert.CollectT ) {
237
- assert .EqualValues (t , []string {"message: fake" , "message: modified" , "message: pass-client" }, log .Get ())
237
+ require .EqualValues (t , []string {"message: fake" , "message: modified" , "message: pass-client" }, log .Get ())
238
238
}, 5 * time .Second , 200 * time .Millisecond )
239
239
240
240
assertSlicesEqual (t , []interface {}{
@@ -246,14 +246,26 @@ func TestRouteWebSocketShouldWorkWithServer(t *testing.T) {
246
246
return page .Evaluate (`window.log` )
247
247
})
248
248
249
+ route := <- wsRouteChan
250
+ route .Send ("another" )
251
+ assertSlicesEqual (t , []interface {}{
252
+ "open" ,
253
+ "message: data=modified origin=ws://localhost:" + server .PORT + " lastEventId=" ,
254
+ "message: data=pass-server origin=ws://localhost:" + server .PORT + " lastEventId=" ,
255
+ "message: data=response origin=ws://localhost:" + server .PORT + " lastEventId=" ,
256
+ "message: data=another origin=ws://localhost:" + server .PORT + " lastEventId=" ,
257
+ }, func () (interface {}, error ) {
258
+ return page .Evaluate (`window.log` )
259
+ })
260
+
249
261
_ , err = page .Evaluate (`
250
262
() => {
251
263
window.ws.send('pass-client-2');
252
264
}` )
253
265
require .NoError (t , err )
254
266
255
267
require .EventuallyWithT (t , func (collect * assert.CollectT ) {
256
- assert .EqualValues (t , []string {"message: fake" , "message: modified" , "message: pass-client" , "message: pass-client-2" }, log .Get ())
268
+ require .EqualValues (t , []string {"message: fake" , "message: modified" , "message: pass-client" , "message: pass-client-2" }, log .Get ())
257
269
}, 5 * time .Second , 200 * time .Millisecond )
258
270
259
271
_ , err = page .Evaluate (`
@@ -263,7 +275,7 @@ func TestRouteWebSocketShouldWorkWithServer(t *testing.T) {
263
275
require .NoError (t , err )
264
276
265
277
require .EventuallyWithT (t , func (collect * assert.CollectT ) {
266
- assert .EqualValues (t , []string {
278
+ require .EqualValues (t , []string {
267
279
"message: fake" ,
268
280
"message: modified" ,
269
281
"message: pass-client" ,
0 commit comments