create(); Event::assertDispatched(AnnouncementCreated::class); }); test('announcement deleted event dispatched', function (): void { $announcement = Announcement::factory()->create(); $announcement->delete(); Event::assertDispatched(AnnouncementDeleted::class); }); test('announcement updated event dispatched', function (): void { $announcement = Announcement::factory()->createOne(); $changes = Announcement::factory()->makeOne(); $announcement->fill($changes->getAttributes()); $announcement->save(); Event::assertDispatched(AnnouncementUpdated::class); }); test('announcement updated event embed fields', function (): void { $announcement = Announcement::factory()->createOne(); $changes = Announcement::factory()->makeOne(); $announcement->fill($changes->getAttributes()); $announcement->save(); Event::assertDispatched(AnnouncementUpdated::class, function (AnnouncementUpdated $event): bool { $message = $event->getDiscordMessage(); return filled(Arr::get($message->embed, 'fields')); }); });