parfum/tests/Feature/Livewire/Studio/Master/Outlet/IndexTest.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);
});