diff --git a/tests/guests.spec.ts b/tests/guests.spec.ts index 26c92b6..b956141 100644 --- a/tests/guests.spec.ts +++ b/tests/guests.spec.ts @@ -1,7 +1,7 @@ -import { test, expect } from '@playwright/test' +import { test, expect, Page } from '@playwright/test' -test('should display the list of guests', async ({ page }) => { - await page.route('*/**/api/guests.json', async route => { +const mockGuestsAPI = ({page}:{page: Page}) => { + page.route('*/**/api/guests.json', async route => { const json = { data: [ { @@ -31,8 +31,12 @@ test('should display the list of guests', async ({ page }) => { await route.fulfill({json}) }) +} - await page.goto('/dashboard/guests') +test('should display the list of guests', async ({ page }) => { + await mockGuestsAPI({page}); + + await page.goto('/dashboard/guests'); await expect(page.getByRole('tab', { name: 'Groups' })).toBeVisible(); await expect(page.getByRole('tab', { name: 'Guests' })).toBeVisible(); @@ -52,4 +56,19 @@ test('should display the list of guests', async ({ page }) => { await expect(page.getByRole('row').nth(2).getByRole('button', {name: 'Confirm'})).toBeVisible(); await expect(page.getByRole('row').nth(2).getByRole('button', {name: 'Tentative'})).toBeVisible(); await expect(page.getByRole('row').nth(2).getByRole('button', {name: 'Decline'})).toBeVisible(); -}) \ No newline at end of file +}); + +test('should allow changing the name of a guest', async ({page}) => { + await mockGuestsAPI({page}); + + await page.goto('/dashboard/guests'); + + await expect(page.getByRole('row').nth(1).getByRole('cell', {name: 'Kristofer Rohan DVM'})).toBeVisible(); + + await page.getByRole('row').nth(1).getByRole('cell', {name: 'Kristofer Rohan DVM'}).click(); + await page.getByRole('textbox').clear(); + await page.getByRole('textbox').pressSequentially('John Snow'); + await page.getByRole('textbox').evaluate(e => e.blur()); + + await expect(page.getByRole('row').nth(1).getByRole('cell', {name: 'John Snow'})).toBeVisible(); +}); \ No newline at end of file