From aba8e8c12bf30c7dd4198a66fa212e2a97a6a177 Mon Sep 17 00:00:00 2001 From: Amir Alizadeh Date: Wed, 14 May 2025 19:29:29 +0330 Subject: [PATCH] Add the `PasswordResetLinkSent` event dispatch to the request password reset page --- .../src/Pages/Auth/PasswordReset/RequestPasswordReset.php | 5 +++++ .../Panels/Auth/PasswordReset/RequestPasswordResetTest.php | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/packages/panels/src/Pages/Auth/PasswordReset/RequestPasswordReset.php b/packages/panels/src/Pages/Auth/PasswordReset/RequestPasswordReset.php index dbb6b6403e..05b0b38175 100644 --- a/packages/panels/src/Pages/Auth/PasswordReset/RequestPasswordReset.php +++ b/packages/panels/src/Pages/Auth/PasswordReset/RequestPasswordReset.php @@ -17,6 +17,7 @@ use Filament\Notifications\Notification; use Filament\Pages\Concerns\InteractsWithFormActions; use Filament\Pages\SimplePage; use Filament\Support\Facades\FilamentIcon; +use Illuminate\Auth\Events\PasswordResetLinkSent; use Illuminate\Contracts\Auth\CanResetPassword; use Illuminate\Contracts\Support\Htmlable; use Illuminate\Support\Facades\Password; @@ -80,6 +81,10 @@ class RequestPasswordReset extends SimplePage $notification->url = Filament::getResetPasswordUrl($token, $user); $user->notify($notification); + + if (class_exists(PasswordResetLinkSent::class)) { + event(new PasswordResetLinkSent($user)); + } }, ); diff --git a/tests/src/Panels/Auth/PasswordReset/RequestPasswordResetTest.php b/tests/src/Panels/Auth/PasswordReset/RequestPasswordResetTest.php index a5c9f07015..f80f6714de 100644 --- a/tests/src/Panels/Auth/PasswordReset/RequestPasswordResetTest.php +++ b/tests/src/Panels/Auth/PasswordReset/RequestPasswordResetTest.php @@ -6,6 +6,8 @@ use Filament\Notifications\Notification as FilamentNotification; use Filament\Pages\Auth\PasswordReset\RequestPasswordReset; use Filament\Tests\Models\User; use Filament\Tests\TestCase; +use Illuminate\Auth\Events\PasswordResetLinkSent; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Notification; use function Filament\Tests\livewire; @@ -30,6 +32,7 @@ it('can render page with a custom slug', function () { it('can request password reset', function () { Notification::fake(); + Event::fake(); $this->assertGuest(); @@ -48,6 +51,7 @@ it('can request password reset', function () { ); Notification::assertSentTo($userToResetPassword, ResetPassword::class); + Event::assertDispatched(PasswordResetLinkSent::class, fn (PasswordResetLinkSent $event) => $event->user->is($userToResetPassword)); }); it('cannot request password reset without panel access', function () {