create(); SendSubscriptionCancelledEmailJob::dispatchSync($user); Mail::assertQueued(SubscriptionCancelledEmail::class, function ($mail) use ($user) { return $mail->hasTo($user->email); }); $this->assertDatabaseHas('user_mail_logs', [ 'user_id' => $user->id, 'email_type' => DripEmailType::SubscriptionCancelled->value, ]); }); test('subscription cancelled email is not sent if already received', function () { $user = User::factory()->create(); UserMailLog::factory()->for($user)->subscriptionCancelled()->create(); SendSubscriptionCancelledEmailJob::dispatchSync($user); Mail::assertNotQueued(SubscriptionCancelledEmail::class); });