From 0455fcd8da1586ec0b43531d0332392e25346fbd Mon Sep 17 00:00:00 2001 From: Manuel Bustillo Date: Sun, 1 Jun 2025 23:13:05 +0200 Subject: [PATCH] Enhance the specs for groups --- tests/guests.spec.ts | 67 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 53 insertions(+), 14 deletions(-) diff --git a/tests/guests.spec.ts b/tests/guests.spec.ts index ca63543..81ddb12 100644 --- a/tests/guests.spec.ts +++ b/tests/guests.spec.ts @@ -34,27 +34,31 @@ const mockGroupsAPI = ({ page }: { page: Page }) => { "id": "ee44ffb9-1147-4842-a378-9eaeb0f0871a", "name": "Pam's family", "icon": "pi pi-users", - "parent_id": "cd9645e1-02c6-4fb9-bba6-1a960754b01c", + "parent_id": null, "color": "#ff0000", - "total": 3, - "considered": 2, - "invited": 1, - "confirmed": 0, - "declined": 0, - "tentative": 0 + "attendance": { + "total": 3, + "considered": 2, + "invited": 1, + "confirmed": 0, + "declined": 0, + "tentative": 0 + } }, { "id": "c8bda6ca-d8af-4bb8-b2bf-e6ec1c21b1e6", "name": "Pam's work", "icon": "pi pi-desktop", - "parent_id": "cd9645e1-02c6-4fb9-bba6-1a960754b01c", + "parent_id": null, "color": "#00ff00", - "total": 2, - "considered": 0, - "invited": 0, - "confirmed": 0, - "declined": 0, - "tentative": 2 + "attendance": { + "total": 2, + "considered": 0, + "invited": 0, + "confirmed": 0, + "declined": 0, + "tentative": 2 + } }, ]; @@ -93,4 +97,39 @@ test('should display the list of groups', async ({ page }) => { await page.goto('/default/dashboard/guests'); await page.getByRole('tab', { name: 'Groups' }).click(); + + await expect(page.getByRole('button', { name: 'Add new' })).toBeVisible(); + await expect(page.getByRole('button', { name: 'Reset affinities' })).toBeVisible(); + + await expect(page.getByRole('row')).toHaveCount(3); // 1 header row + 2 data rows + + await expect(page.getByRole('row').nth(0).getByRole('columnheader').nth(0)).toHaveText('Name'); + await expect(page.getByRole('row').nth(0).getByRole('columnheader').nth(1)).toHaveText('Color'); + await expect(page.getByRole('row').nth(0).getByRole('columnheader').nth(2)).toHaveText('Confirmed'); + await expect(page.getByRole('row').nth(0).getByRole('columnheader').nth(3)).toHaveText('Tentative'); + await expect(page.getByRole('row').nth(0).getByRole('columnheader').nth(4)).toHaveText('Pending'); + await expect(page.getByRole('row').nth(0).getByRole('columnheader').nth(5)).toHaveText('Declined'); + await expect(page.getByRole('row').nth(0).getByRole('columnheader').nth(6)).toHaveText('Considered'); + await expect(page.getByRole('row').nth(0).getByRole('columnheader').nth(7)).toHaveText('Total'); + await expect(page.getByRole('row').nth(0).getByRole('columnheader').nth(8)).toHaveText('Actions'); + + await expect(page.getByRole('row').nth(1).getByRole('cell').nth(0)).toContainText('Pam\'s family'); + await expect(page.getByRole('row').nth(1).getByRole('cell').nth(2)).toHaveText('0'); + await expect(page.getByRole('row').nth(1).getByRole('cell').nth(3)).toHaveText('0'); + await expect(page.getByRole('row').nth(1).getByRole('cell').nth(4)).toHaveText('1'); + await expect(page.getByRole('row').nth(1).getByRole('cell').nth(5)).toHaveText('0'); + await expect(page.getByRole('row').nth(1).getByRole('cell').nth(6)).toHaveText('2'); + await expect(page.getByRole('row').nth(1).getByRole('cell').nth(7)).toHaveText('3'); + await expect(page.getByRole('row').nth(1).locator('svg:visible')).toHaveCount(3); + + + await expect(page.getByRole('row').nth(2).getByRole('cell').nth(0)).toContainText('Pam\'s work'); + await expect(page.getByRole('row').nth(2).getByRole('cell').nth(2)).toHaveText('0'); + await expect(page.getByRole('row').nth(2).getByRole('cell').nth(3)).toHaveText('2'); + await expect(page.getByRole('row').nth(2).getByRole('cell').nth(4)).toHaveText('0'); + await expect(page.getByRole('row').nth(2).getByRole('cell').nth(5)).toHaveText('0'); + await expect(page.getByRole('row').nth(2).getByRole('cell').nth(6)).toHaveText('0'); + await expect(page.getByRole('row').nth(2).getByRole('cell').nth(7)).toHaveText('2'); + await expect(page.getByRole('row').nth(2).locator('svg:visible')).toHaveCount(3); + }); \ No newline at end of file