laravel-websockets/tests
Fabian @ Blax Software c169e418ca fix(shutdown): soft shutdown always stops the loop
The soft shutdown chained ->then() on Handler::onClose(), which returns
void. The error became a silently dropped promise rejection, loop->stop()
never ran, and the server kept accepting and closing every new socket
without connection_established until a hard restart. Clients queued their
sends forever in that window.

- Close connections directly (Ratchet runs onClose once per stream), stop
  the loop after a 1s grace, on a listing error, or at a 5s deadline.
- Websocket\ChannelManager::unsubscribeFromAllChannels returns early for a
  connection declined before it got an app, like LocalChannelManager. That
  was the "Attempt to read property id on null" flood in the log.
- Tests: SoftShutdownTest drives the shutdown on a fresh loop, StartServerTest
  fails on any error logged during a soft shutdown, ClosedBeforeOpenTest.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 14:20:46 +02:00
..
Apps A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
Cache A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
Commands fix(shutdown): soft shutdown always stops the loop 2026-09-28 14:20:46 +02:00
Handlers Renovation 2025-01-16 08:54:02 +01:00
Ipc A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
Mocks I stability 2026-03-21 12:56:50 +01:00
Models Renovation 2025-01-16 08:54:02 +01:00
Unit feat: integrate websocket routes into Laravel's route list; implement RouteListInjector for attribute-tagged methods and legacy controllers; add tests for route injection and collection 2026-04-29 09:26:53 +02:00
Websocket A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
database/factories Renovation 2025-01-16 08:54:02 +01:00
AsyncRedisQueueTest.php Renovation 2025-01-16 08:54:02 +01:00
ClosedBeforeOpenTest.php fix(shutdown): soft shutdown always stops the loop 2026-09-28 14:20:46 +02:00
ConnectionTest.php A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
ForkChildConnectionResetTest.php test(fork): extract fork-child connection reset into a tested method 2026-08-30 10:14:36 +02:00
HandlerLifecycleTest.php A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
HealthTest.php A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
HotReloadKeepsListenersTest.php fix(hot-reload): keep the event dispatcher in the message child 2026-09-25 12:56:37 +02:00
LocalPongRemovalTest.php Renovation 2025-01-16 08:54:02 +01:00
OpenPresenceChannelFeatureTest.php I open presence channel test 2026-04-21 16:52:44 +02:00
PingTest.php A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
PresenceChannelTest.php C linting 2026-04-02 12:44:31 +02:00
PrivateChannelTest.php C linting 2026-04-02 12:44:31 +02:00
PublicChannelTest.php C linting 2026-04-02 12:44:31 +02:00
RedisPongRemovalTest.php Renovation 2025-01-16 08:54:02 +01:00
ReplicationTest.php A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
TestCase.php A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
TestServiceProvider.php Renovation 2025-01-16 08:54:02 +01:00
WebsocketServiceTest.php A tests, documentation for helpers and lifecycle 2026-04-02 12:44:16 +02:00
bootstrap.php I performance, A testing & event-driven 2026-01-24 13:34:29 +01:00