createOne(); Event::assertDispatched(UserCreated::class); } /** * When a User is deleted, a UserDeleted event shall be dispatched. * * @return void */ public function testUserDeletedEventDispatched(): void { Event::fake(); $user = User::factory()->createOne(); $user->delete(); Event::assertDispatched(UserDeleted::class); } /** * When a User is restored, a UserRestored event shall be dispatched. * * @return void */ public function testUserRestoredEventDispatched(): void { Event::fake(); $user = User::factory()->createOne(); $user->restore(); Event::assertDispatched(UserRestored::class); } /** * When a User is restored, a UserUpdated 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 testUserRestoresQuietly(): void { Event::fake(); $user = User::factory()->createOne(); $user->restore(); Event::assertNotDispatched(UserUpdated::class); } /** * When a User is updated, a UserUpdated event shall be dispatched. * * @return void */ public function testUserUpdatedEventDispatched(): void { Event::fake(); $user = User::factory()->createOne(); $changes = User::factory()->makeOne(); $user->fill($changes->getAttributes()); $user->save(); Event::assertDispatched(UserUpdated::class); } }