From d2d549b657f3b348e2011bce84b4b683b066c8b7 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Wed, 27 May 2020 16:37:55 +0800 Subject: [PATCH] send verification email after registering --- app/Listeners/SendEmailVerification.php | 24 ++++++++++++++ app/Providers/EventServiceProvider.php | 3 ++ .../SendEmailVerificationTest.php | 31 +++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 app/Listeners/SendEmailVerification.php create mode 100644 tests/ListenersTest/SendEmailVerificationTest.php diff --git a/app/Listeners/SendEmailVerification.php b/app/Listeners/SendEmailVerification.php new file mode 100644 index 00000000..577c2700 --- /dev/null +++ b/app/Listeners/SendEmailVerification.php @@ -0,0 +1,24 @@ + $user->uid], null, false); + + try { + Mail::to($user->email)->send(new EmailVerification(url($url))); + } catch (\Exception $e) { + report($e); + } + } + } +} diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 7dbabcf5..c15c18a9 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -36,5 +36,8 @@ class EventServiceProvider extends ServiceProvider 'player.name.updated' => [ Listeners\SinglePlayer\UpdateOwnerNickName::class, ], + 'auth.registration.completed' => [ + Listeners\SendEmailVerification::class, + ], ]; } diff --git a/tests/ListenersTest/SendEmailVerificationTest.php b/tests/ListenersTest/SendEmailVerificationTest.php new file mode 100644 index 00000000..430e7448 --- /dev/null +++ b/tests/ListenersTest/SendEmailVerificationTest.php @@ -0,0 +1,31 @@ + true]); + + $user = factory(User::class)->create(['verified' => false]); + Event::dispatch('auth.registration.completed', [$user]); + Mail::assertSent(EmailVerification::class, function ($mail) use ($user) { + return $mail->hasTo($user->email); + }); + + Mail::shouldReceive('to') + ->once() + ->andThrow(new \Mockery\Exception('A fake exception.')); + Event::dispatch('auth.registration.completed', [$user]); + } +}