diff --git a/src/PulseServiceProvider.php b/src/PulseServiceProvider.php index 4b25295d..c19d33fb 100644 --- a/src/PulseServiceProvider.php +++ b/src/PulseServiceProvider.php @@ -119,6 +119,10 @@ protected function listenForEvents(): void $this->app->booted(function () { $this->callAfterResolving(Dispatcher::class, function (Dispatcher $event, Application $app) { $event->listen(function (Logout $event) use ($app) { + if ($event->user === null) { + return; + } + $pulse = $app->make(Pulse::class); $pulse->rescue(fn () => $pulse->rememberUser($event->user)); diff --git a/tests/Feature/PulseTest.php b/tests/Feature/PulseTest.php index 7821c46d..fa1e39a1 100644 --- a/tests/Feature/PulseTest.php +++ b/tests/Feature/PulseTest.php @@ -1,10 +1,12 @@ not->toContain(MyTestMiddleware::class.':admin'); }); +it('handles logout events when there is no user', function () { + // This will throw a type error when unhandled... + Event::dispatch(new Logout('session', user: null)); + + expect(true)->toBe(true); +}); + class MyTestMiddleware { //