diff --git a/packages/panels/src/Events/Auth/Registered.php b/packages/panels/src/Events/Auth/Registered.php new file mode 100644 index 0000000000..8f0215eea7 --- /dev/null +++ b/packages/panels/src/Events/Auth/Registered.php @@ -0,0 +1,28 @@ +user = $user; + } +} diff --git a/packages/panels/src/Pages/Auth/Register.php b/packages/panels/src/Pages/Auth/Register.php index 0929a2cbb9..fdb75e8a33 100644 --- a/packages/panels/src/Pages/Auth/Register.php +++ b/packages/panels/src/Pages/Auth/Register.php @@ -7,6 +7,7 @@ use DanHarrin\LivewireRateLimiting\WithRateLimiting; use Exception; use Filament\Actions\Action; use Filament\Actions\ActionGroup; +use Filament\Events\Auth\Registered; use Filament\Facades\Filament; use Filament\Forms\Components\Component; use Filament\Forms\Components\TextInput; @@ -77,6 +78,8 @@ class Register extends SimplePage $user = $this->getUserModel()::create($data); + event(new Registered($user)); + $this->sendEmailVerificationNotification($user); Filament::auth()->login($user); diff --git a/tests/src/Panels/Auth/RegisterTest.php b/tests/src/Panels/Auth/RegisterTest.php index 4dcb552dd4..23f1cab8e4 100644 --- a/tests/src/Panels/Auth/RegisterTest.php +++ b/tests/src/Panels/Auth/RegisterTest.php @@ -1,10 +1,12 @@ assertGuest(); @@ -37,6 +40,7 @@ it('can register', function () { ->assertRedirect(Filament::getUrl()); Notification::assertSentTimes(VerifyEmail::class, expectedCount: 1); + Event::assertDispatched(Registered::class); $this->assertAuthenticated(); @@ -48,6 +52,7 @@ it('can register', function () { it('can register and redirect user to their intended URL', function () { Notification::fake(); + Event::fake(); session()->put('url.intended', $intendedUrl = Str::random()); @@ -68,6 +73,7 @@ it('can register and redirect user to their intended URL', function () { it('can throttle registration attempts', function () { Notification::fake(); + Event::fake(); $this->assertGuest(); @@ -90,6 +96,7 @@ it('can throttle registration attempts', function () { } Notification::assertSentTimes(VerifyEmail::class, expectedCount: 2); + Event::assertDispatchedTimes(Registered::class, times: 2); livewire(Register::class) ->fillForm([ @@ -103,6 +110,7 @@ it('can throttle registration attempts', function () { ->assertNoRedirect(); Notification::assertSentTimes(VerifyEmail::class, expectedCount: 2); + Event::assertDispatchedTimes(Registered::class, times: 2); $this->assertGuest(); });