@@ -402,4 +402,32 @@ public function testPusherException4200AutoRetry()
402402 [1000 , '{"event":"pusher:unsubscribe","data":{"channel":"test"}} ' ],
403403 ], $ webSocket ->getSentMessages ());
404404 }
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+ }
405433}
0 commit comments