extend(Tests\TestCase::class) ->use(Illuminate\Foundation\Testing\RefreshDatabase::class) ->in('Feature'); /* |-------------------------------------------------------------------------- | Expectations |-------------------------------------------------------------------------- | | When you're writing tests, you often need to check that values meet certain conditions. The | "expect()" function gives you access to a set of "expectations" methods that you can use | to assert different things. Of course, you may extend the Expectation API at any time. | |*/ expect()->extend('toBeOne', function () { return $this->toBe(1); }); /* |-------------------------------------------------------------------------- | Functions & Traits |-------------------------------------------------------------------------- | | While Pest is very powerful out-of-the-box, you may have some testing code specific to your | project that you don't want to repeat in every file. Here you can also expose helpers as | global functions or traits to help you to reduce the number of lines of code in your test files. | |*/ trait HasUserSetup { public function setupUser(array $overrides = []): void { $this->user = \App\Models\User::factory()->create($overrides); $this->employee = \App\Models\Employee::factory() ->for($this->user) ->create(); $this->outlet = \App\Models\Outlet::factory()->create(); $this->user->outlets()->attach($this->outlet); $this->openingHours = \App\Models\OpeningHour::factory() ->count(3) ->for($this->outlet) ->create(); } public function createFullOutlet(array $overrides = []): \App\Models\Outlet { $outlet = \App\Models\Outlet::factory()->create(array_merge([ 'landmark' => 'Dekat Patung', 'maps_url' => 'https://goo.gl/maps/test', ], $overrides)); foreach (\App\Enums\Day::cases() as $day) { \App\Models\OpeningHour::factory()->create([ 'outlet_id' => $outlet->id, 'day' => $day->value, 'open_time' => '08:00', 'close_time' => '22:00', ]); } $outlet->facilities()->create(['name' => 'Wifi']); $featured = \Illuminate\Http\UploadedFile::fake()->image('featured.jpg'); $outlet->addMedia($featured->getPathname())->preservingOriginal()->toMediaCollection('featured_image'); $gallery = \Illuminate\Http\UploadedFile::fake()->image('gallery.jpg'); $outlet->addMedia($gallery->getPathname())->preservingOriginal()->toMediaCollection('images'); return $outlet; } } pest()->use(HasUserSetup::class)->in('Feature');