app/tests/Browser/CreateDishTest.php
myrmidex 77817bca14 feature - 8 - Trim down fields from user form
+ move auth forms from livewire to blade
2025-12-29 02:57:25 +01:00

73 lines
No EOL
2.4 KiB
PHP

<?php
namespace Tests\Browser;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;
class CreateDishTest extends DuskTestCase
{
use LoginHelpers;
public function testCanAccessDishesPage(): void
{
$this->browse(function (Browser $browser) {
$this->loginAndGoToDishes($browser)
->assertPathIs('/dishes')
->assertSee('MANAGE DISHES')
->assertSee('Add Dish');
});
}
public function testCanOpenCreateDishModal(): void
{
$this->browse(function (Browser $browser) {
$this->loginAndGoToDishes($browser)
->waitFor('button[wire\\:click="create"]', 5)
->click('button[wire\\:click="create"]')
->pause(1000)
->assertSee('Add New Dish')
->assertSee('Dish Name')
->assertSee('Create Dish')
->assertSee('Cancel');
// Check if users exist or show "no users" message
try {
$browser->assertSee('No users available to assign');
$browser->assertSee('Add users');
} catch (\Exception $e) {
// If "No users" text not found, check for user assignment section
$browser->assertSee('Assign to Users');
}
});
}
public function testCreateDishFormValidation(): void
{
$this->browse(function (Browser $browser) {
$this->loginAndGoToDishes($browser)
->waitFor('button[wire\\:click="create"]', 5)
->click('button[wire\\:click="create"]')
->pause(1000)
->waitFor('input[wire\\:model="name"]', 5)
->clear('input[wire\\:model="name"]')
->press('Create Dish')
->pause(2000)
->assertSee('required');
});
}
public function testCanCancelDishCreation(): void
{
$this->browse(function (Browser $browser) {
$this->loginAndGoToDishes($browser)
->waitFor('button[wire\\:click="create"]', 5)
->click('button[wire\\:click="create"]')
->pause(1000)
->assertSee('Add New Dish')
->press('Cancel')
->pause(1000)
->assertDontSee('Add New Dish');
});
}
}