createOne(); Event::assertDispatched(SeriesCreated::class); } /** * When a Series is deleted, a SeriesDeleted event shall be dispatched. * * @return void */ public function testSeriesDeletedEventDispatched(): void { $series = Series::factory()->createOne(); $series->delete(); Event::assertDispatched(SeriesDeleted::class); } /** * When a Series is restored, a SeriesRestored event shall be dispatched. * * @return void */ public function testSeriesRestoredEventDispatched(): void { $series = Series::factory()->createOne(); $series->restore(); Event::assertDispatched(SeriesRestored::class); } /** * When a Series is restored, a SeriesUpdated event shall not be dispatched. * Note: This is a customization that overrides default framework behavior. * An updated event is fired on restore. * * @return void */ public function testSeriesRestoresQuietly(): void { $series = Series::factory()->createOne(); $series->restore(); Event::assertNotDispatched(SeriesUpdated::class); } /** * When a Series is updated, a SeriesUpdated event shall be dispatched. * * @return void */ public function testSeriesUpdatedEventDispatched(): void { $series = Series::factory()->createOne(); $changes = Series::factory()->makeOne(); $series->fill($changes->getAttributes()); $series->save(); Event::assertDispatched(SeriesUpdated::class); } /** * The SeriesUpdated event shall contain embed fields. * * @return void */ public function testSeriesUpdatedEventEmbedFields(): void { $series = Series::factory()->createOne(); $changes = Series::factory()->makeOne(); $series->fill($changes->getAttributes()); $series->save(); Event::assertDispatched(SeriesUpdated::class, function (SeriesUpdated $event) { $message = $event->getDiscordMessage(); return ! empty(Arr::get($message->embed, 'fields')); }); } }