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'); }); } }