createOne(); Feature::activate(FeatureConstants::ALLOW_DISCORD_NOTIFICATIONS); Bus::fake(SendDiscordNotificationJob::class); Event::fakeExcept(SynonymCreated::class); Synonym::factory()->forAnime()->createOne(); Bus::assertDispatched(SendDiscordNotificationJob::class); }); test('synonym deleted sends discord notification', function () { $synonym = Synonym::factory()->forAnime()->createOne(); Feature::activate(FeatureConstants::ALLOW_DISCORD_NOTIFICATIONS); Bus::fake(SendDiscordNotificationJob::class); Event::fakeExcept(SynonymDeleted::class); $synonym->delete(); Bus::assertDispatched(SendDiscordNotificationJob::class); }); test('synonym restored sends discord notification', function () { $synonym = Synonym::factory()->forAnime()->createOne(); Feature::activate(FeatureConstants::ALLOW_DISCORD_NOTIFICATIONS); Bus::fake(SendDiscordNotificationJob::class); Event::fakeExcept(SynonymRestored::class); $synonym->restore(); Bus::assertDispatched(SendDiscordNotificationJob::class); }); test('synonym updated sends discord notification', function () { $synonym = Synonym::factory()->forAnime()->createOne(); $changes = Synonym::factory()->forAnime()->makeOne(); Feature::activate(FeatureConstants::ALLOW_DISCORD_NOTIFICATIONS); Bus::fake(SendDiscordNotificationJob::class); Event::fakeExcept(SynonymUpdated::class); $synonym->fill($changes->getAttributes()); $synonym->save(); Bus::assertDispatched(SendDiscordNotificationJob::class); });