comparison stubs/default/pest-tests/Feature/Auth/EmailVerificationTest.php @ 0:90e38de8f2ba

Initial Commit
author luka
date Wed, 13 Aug 2025 22:17:20 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:90e38de8f2ba
1 <?php
2
3 use App\Models\User;
4 use Illuminate\Auth\Events\Verified;
5 use Illuminate\Support\Facades\Event;
6 use Illuminate\Support\Facades\URL;
7
8 test('email verification screen can be rendered', function () {
9 $user = User::factory()->unverified()->create();
10
11 $response = $this->actingAs($user)->get('/verify-email');
12
13 $response->assertStatus(200);
14 });
15
16 test('email can be verified', function () {
17 $user = User::factory()->unverified()->create();
18
19 Event::fake();
20
21 $verificationUrl = URL::temporarySignedRoute(
22 'verification.verify',
23 now()->addMinutes(60),
24 ['id' => $user->id, 'hash' => sha1($user->email)]
25 );
26
27 $response = $this->actingAs($user)->get($verificationUrl);
28
29 Event::assertDispatched(Verified::class);
30 expect($user->fresh()->hasVerifiedEmail())->toBeTrue();
31 $response->assertRedirect(route('dashboard', absolute: false).'?verified=1');
32 });
33
34 test('email is not verified with invalid hash', function () {
35 $user = User::factory()->unverified()->create();
36
37 $verificationUrl = URL::temporarySignedRoute(
38 'verification.verify',
39 now()->addMinutes(60),
40 ['id' => $user->id, 'hash' => sha1('wrong-email')]
41 );
42
43 $this->actingAs($user)->get($verificationUrl);
44
45 expect($user->fresh()->hasVerifiedEmail())->toBeFalse();
46 });