createOne(); Event::assertDispatched(SongStaffCreated::class); }); test('song staff deleted event dispatched', function (): void { $staff = SongStaff::factory()->createOne(); $staff->delete(); Event::assertDispatched(SongStaffDeleted::class); }); test('song staff restored event dispatched', function (): void { $staff = SongStaff::factory()->createOne(); $staff->restore(); Event::assertDispatched(SongStaffRestored::class); }); test('song staff restores quietly', function (): void { $staff = SongStaff::factory()->createOne(); $staff->restore(); Event::assertNotDispatched(SongStaffUpdated::class); }); test('song staff updated event dispatched', function (): void { $staff = SongStaff::factory()->createOne(); $changes = SongStaff::factory()->makeOne(); $staff->fill($changes->getAttributes()); $staff->save(); Event::assertDispatched(SongStaffUpdated::class); }); test('song staff updated event embed fields', function (): void { $staff = SongStaff::factory()->createOne(); $changes = SongStaff::factory()->makeOne(); $staff->fill($changes->getAttributes()); $staff->save(); Event::assertDispatched(SongStaffUpdated::class, function (SongStaffUpdated $event): bool { $message = $event->getDiscordMessage(); return filled(Arr::get($message->embed, 'fields')); }); });