browse(function (Browser $browser) { $this->loginAndGoToUsers($browser); $browser->on(new UsersPage) ->assertSee('MANAGE USERS') ->assertSee('Add User'); }); } public function testCanOpenCreateUserModal(): void { $this->browse(function (Browser $browser) { $this->loginAndGoToUsers($browser); $browser->on(new UsersPage) ->openCreateModal() ->assertSee('Add New User') ->assertSee('Name') ->assertSee('Cancel') ->assertSee('Create User'); }); } public function testCreateUserFormValidation(): void { $this->browse(function (Browser $browser) { $this->loginAndGoToUsers($browser); $browser->on(new UsersPage) ->openCreateModal() ->press('Create User') ->pause(self::PAUSE_MEDIUM) ->assertSee('The name field is required'); }); } public function testCanCreateUser(): void { $this->browse(function (Browser $browser) { $userName = 'TestCreate_' . uniqid(); $this->loginAndGoToUsers($browser); $browser->on(new UsersPage) ->openCreateModal() ->type('input[wire\\:model="name"]', $userName) ->press('Create User') ->pause(self::PAUSE_MEDIUM) ->assertSee('User created successfully') ->assertSee($userName); }); } public function testCanCancelUserCreation(): void { $this->browse(function (Browser $browser) { $this->loginAndGoToUsers($browser); $browser->on(new UsersPage) ->openCreateModal() ->type('input[wire\\:model="name"]', 'Test Cancel User') ->press('Cancel') ->pause(self::PAUSE_SHORT) // Modal should be closed, we should be back on users page ->assertSee('MANAGE USERS') ->assertDontSee('Add New User'); }); } }