create(); Event::assertDispatched(FeatureCreated::class); } /** * When a Feature is deleted, a FeatureDeleted event shall be dispatched. * * @return void */ public function testFeatureDeletedEventDispatched(): void { $feature = Feature::factory()->create(); $feature->delete(); Event::assertDispatched(FeatureDeleted::class); } /** * When a Feature is updated, a FeatureUpdated event shall be dispatched. * * @return void */ public function testFeatureUpdatedEventDispatched(): void { $feature = Feature::factory()->createOne(); $feature->update([ Feature::ATTRIBUTE_VALUE => ! $feature->value, ]); Event::assertDispatched(FeatureUpdated::class); } /** * The FeatureUpdated event shall contain embed fields. * * @return void */ public function testFeatureUpdatedEventEmbedFields(): void { $feature = Feature::factory()->createOne(); $feature->update([ Feature::ATTRIBUTE_VALUE => ! $feature->value, ]); Event::assertDispatched(FeatureUpdated::class, function (FeatureUpdated $event) { $message = $event->getDiscordMessage(); return ! empty(Arr::get($message->embed, 'fields')); }); } }