Kleine post hoe je kan testen of er verificatie e-mail uitgaat na het registeren in laravel 8.
<?php
namespace Tests\Feature;
use App\Models\User;
use Illuminate\Auth\Notifications\VerifyEmail;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Notification;
use Tests\TestCase;
class testRegistrationEmailNotification extends TestCase
{
use DatabaseMigrations, RefreshDatabase;
/**
* @test
*/
public function after_registration_a_confirmation_email_will_be_send_to_confirm_your_account() {
$newUser = User::factory()->make()->toArray();
Notification::fake();
Notification::assertNothingSent();
$this->post('/register', $newUser);
$user = User::firstWhere('email', $newUser['email']);
Notification::assertSentTo($user, VerifyEmail::class);
}
}
Wat doet de test
- Regel 22: we maken een nieuwe gebruiker aan maar registeren deze nog niet
- Regel 24: we zeggen dat we geen echte notificaties willen verturen
- Regel 35: we doen een aanname/test of er geen notificaties zijn verstuurd
- Regel 37: we registeren de nieuwe gebruiker
- Regel 29: we halen de nieuwe gebruiker op van de database
- Regel 30: we doen een aanname/test of deze gebruiker een e-mail verificatie notificatie heeft gekregen