2025-12-28 21:01:44 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Tests\Browser;
|
|
|
|
|
|
|
|
|
|
use Laravel\Dusk\Browser;
|
|
|
|
|
use Tests\DuskTestCase;
|
|
|
|
|
|
|
|
|
|
class CreateDishTest extends DuskTestCase
|
|
|
|
|
{
|
2025-12-29 02:57:25 +01:00
|
|
|
use LoginHelpers;
|
|
|
|
|
|
2025-12-28 21:01:44 +01:00
|
|
|
public function testCanAccessDishesPage(): void
|
|
|
|
|
{
|
|
|
|
|
$this->browse(function (Browser $browser) {
|
2025-12-29 02:57:25 +01:00
|
|
|
$this->loginAndGoToDishes($browser)
|
|
|
|
|
->assertPathIs('/dishes')
|
|
|
|
|
->assertSee('MANAGE DISHES')
|
|
|
|
|
->assertSee('Add Dish');
|
2025-12-28 21:01:44 +01:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testCanOpenCreateDishModal(): void
|
|
|
|
|
{
|
|
|
|
|
$this->browse(function (Browser $browser) {
|
2025-12-29 02:57:25 +01:00
|
|
|
$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');
|
|
|
|
|
}
|
2025-12-28 21:01:44 +01:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testCreateDishFormValidation(): void
|
|
|
|
|
{
|
|
|
|
|
$this->browse(function (Browser $browser) {
|
2025-12-29 02:57:25 +01:00
|
|
|
$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');
|
2025-12-28 21:01:44 +01:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testCanCancelDishCreation(): void
|
|
|
|
|
{
|
|
|
|
|
$this->browse(function (Browser $browser) {
|
2025-12-29 02:57:25 +01:00
|
|
|
$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');
|
2025-12-28 21:01:44 +01:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|