@@ -402,4 +402,32 @@ public function testPusherException4200AutoRetry()
402
402
[1000 , '{"event":"pusher:unsubscribe","data":{"channel":"test"}} ' ],
403
403
], $ webSocket ->getSentMessages ());
404
404
}
405
+
406
+ public function testPusherExceptionOther ()
407
+ {
408
+ $ observable = $ this ->createColdObservable ([
409
+ onNext (320 , '{"event":"pusher:connection_established","data":"{\"socket_id\":\"218656.9503498\",\"activity_timeout\":120}"} ' ),
410
+ onNext (340 , '{"event":"pusher_internal:subscription_succeeded","data":"{}","channel":"test"} ' ),
411
+ onNext (350 , '{"event":"new-listing","data":["test1"],"channel":"test"} ' ),
412
+ onError (370 , new \Exception ()),
413
+ ]);
414
+
415
+ $ webSocket = new TestWebSocketSubject ($ observable , $ this ->scheduler );
416
+
417
+ $ results = $ this ->scheduler ->startWithDispose (function () use ($ webSocket ) {
418
+ return (new AsyncClient ($ webSocket ))->channel ('test ' );
419
+ }, 1000 );
420
+
421
+ $ this ->assertMessages ([
422
+ onNext (550 , Event::createFromMessage (json_decode ('{"event":"new-listing","data":["test1"],"channel":"test"} ' , true ))),
423
+ onError (570 , new \Exception ()),
424
+ ], $ results ->getMessages ());
425
+
426
+ $ this ->assertSubscriptions ([subscribe (200 , 570 )], $ observable ->getSubscriptions ());
427
+
428
+ $ this ->assertEquals ([
429
+ [520 , '{"event":"pusher:subscribe","data":{"channel":"test"}} ' ],
430
+ [570 , '{"event":"pusher:unsubscribe","data":{"channel":"test"}} ' ],
431
+ ], $ webSocket ->getSentMessages ());
432
+ }
405
433
}
0 commit comments