assertPathIs($this->url()) ->assertSee('MANAGE USERS'); } /** * Get the element shortcuts for the page. * * @return array */ public function elements(): array { return [ '@add-button' => 'button[wire\\:click="create"]', '@users-list' => '[wire\\:id]', // Livewire component '@no-users' => '*[text*="No users found"]', ]; } /** * Open the create user modal. */ public function openCreateModal(Browser $browser): void { $browser->waitFor('@add-button') ->click('@add-button') ->pause(1000); } /** * Click delete button for a user. */ public function clickDeleteForUser(Browser $browser, string $userName): void { $browser->within("tr:contains('{$userName}')", function ($row) { $row->click('button.bg-danger'); }); } /** * Click the first available delete button. */ public function clickFirstDeleteButton(Browser $browser): void { $browser->waitFor('button.bg-danger', 5) ->click('button.bg-danger') ->pause(1000); } /** * Assert a user is visible in the list. */ public function assertUserVisible(Browser $browser, string $userName): void { $browser->assertSee($userName); } /** * Assert a user is not visible in the list. */ public function assertUserNotVisible(Browser $browser, string $userName): void { $browser->assertDontSee($userName); } /** * Assert success message is shown. */ public function assertSuccessMessage(Browser $browser, string $message): void { $browser->assertSee($message); } }