Как протестировать отправку уведомления пользователю после регистрации?
Laravel 8.9, в стандартном EventServiceProvider зарегистрирован слушатель, отправляющий уведомление пользователю после регистрации. Как написать тест phpunit на основе этого?
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class
]
];
Пробую следующее, но не срабатывает:
class RegistrationTest extends TestCase { use DatabaseMigrations;
public function testSendNotificationToUserOnRegistration()
{
Notification::fake();
Notification::assertNothingSent();
$user = User::factory()->make(['email_verified_at' => null]);
Notification::assertSentTo($user, SendEmailVerificationNotification::class);
}
Ответы (1 шт):
Автор решения: Brainbao
→ Ссылка
Нашел 2 способа решения. Вместо последней строчки использовать:
1:
$user->sendEmailVerificationNotification();
Notification::assertSentTo($user, VerifyEmail::class);
2:
$event = new Registered($user);
(new SendEmailVerificationNotification())->handle($event);
Notification::assertSentTo($user, VerifyEmail::class);