40 lines
995 B
PHP
40 lines
995 B
PHP
<?php
|
|
|
|
use App\Enums\OutletStatus;
|
|
use App\Livewire\Studio\Master\Outlet\Index;
|
|
use App\Models\Outlet;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Livewire\Livewire;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
it('renders successfully', function () {
|
|
Livewire::test(Index::class)
|
|
->assertViewIs('livewire.studio.master.outlet.index')
|
|
->assertViewHas('pageTitle', 'Outlet');
|
|
});
|
|
|
|
it('displays all outlets', function () {
|
|
Outlet::factory()
|
|
->count(10)
|
|
->state(fn () => [
|
|
'status' => fake()->randomElement(OutletStatus::cases()),
|
|
])
|
|
->create();
|
|
|
|
$outlet = Outlet::first();
|
|
|
|
Livewire::test(Index::class)->assertSee($outlet->name);
|
|
});
|
|
|
|
it('can delete an outlet', function () {
|
|
$outlet = Outlet::factory()->operational()->create();
|
|
|
|
Livewire::test(Index::class)
|
|
->call('delete', $outlet)
|
|
->assertHasNoErrors()
|
|
->assertDispatched('refreshDatatable');
|
|
|
|
expect(Outlet::count())->toBe(0);
|
|
});
|