toBeInstanceOf(ShouldQueue::class); expect($mail->tries)->toBe(3); expect($mail->timeout)->toBe(30); expect($mail->backoff)->toBe([60, 300, 900]); }); it('registration email contains verification link expiry and support url', function () { config()->set('app.url', 'https://skinbase.example'); config()->set('app.name', 'Skinbase'); $mail = new RegistrationVerificationMail('abc-token'); $html = $mail->render(); expect($html)->toContain('Verify Email'); expect($html)->toContain('/verify/abc-token'); expect($html)->toContain('expires in 24 hours'); expect($html)->toContain('https://skinbase.example/support'); }); it('registration endpoint queues verification email job', function () { Queue::fake(); $this->post('/register', [ 'email' => 'mail-test@example.com', ])->assertRedirect('/register/notice'); Queue::assertPushed(SendVerificationEmailJob::class); $this->assertDatabaseHas('users', [ 'email' => 'mail-test@example.com', 'onboarding_step' => 'email', ]); });