diff --git a/tests/Feature/Auth/EmailVerificationTest.php b/tests/Feature/Auth/EmailVerificationTest.php index 7e4af24e..c520cc54 100644 --- a/tests/Feature/Auth/EmailVerificationTest.php +++ b/tests/Feature/Auth/EmailVerificationTest.php @@ -7,6 +7,8 @@ use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\URL; +use Livewire\Livewire; +use Livewire\Volt\Volt; use Tests\TestCase; class EmailVerificationTest extends TestCase @@ -56,4 +58,25 @@ public function test_email_is_not_verified_with_invalid_hash(): void $this->assertFalse($user->fresh()->hasVerifiedEmail()); } + + public function test_already_verified_user_visiting_verification_link_is_redirected_without_firing_event_again(): void + { + $user = User::factory()->create([ + 'email_verified_at' => now(), + ]); + + Event::fake(); + + $verificationUrl = URL::temporarySignedRoute( + 'verification.verify', + now()->addMinutes(60), + ['id' => $user->id, 'hash' => sha1($user->email)] + ); + + $this->actingAs($user)->get($verificationUrl) + ->assertRedirect(route('dashboard', absolute: false).'?verified=1'); + + $this->assertTrue($user->fresh()->hasVerifiedEmail()); + Event::assertNotDispatched(Verified::class); + } }