From 132da0837f8bb0f25e798321c58719c6e0e39e66 Mon Sep 17 00:00:00 2001 From: Anthony LC Date: Tue, 9 Jul 2024 13:57:14 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B(e2e)=20sync=20doc=20grid=20sorting?= =?UTF-8?q?=20check?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The sorting check was not the same between what django provide and what the e2e test check, it was giving some flakiness. Django seems to ignore the punctuation (space) in its sorting. We improve other test to be more robust as well. --- .../apps/e2e/__tests__/app-impress/common.ts | 8 +++++--- .../e2e/__tests__/app-impress/doc-create.spec.ts | 2 ++ .../apps/e2e/__tests__/app-impress/doc-grid.spec.ts | 12 ++++++++---- .../__tests__/app-impress/doc-member-grid.spec.ts | 2 ++ .../apps/e2e/__tests__/app-impress/doc-tools.spec.ts | 4 +++- 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/frontend/apps/e2e/__tests__/app-impress/common.ts b/src/frontend/apps/e2e/__tests__/app-impress/common.ts index 3d1a9d12..3429ce2c 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/common.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/common.ts @@ -120,11 +120,13 @@ export const goToGridDoc = async ( const header = page.locator('header').first(); await header.locator('h2').getByText('Docs').click(); - const rows = page + const datagrid = page .getByLabel('Datagrid of the documents page 1') - .getByRole('table') - .getByRole('row'); + .getByRole('table'); + await expect(datagrid.getByLabel('Loading data')).toBeHidden(); + + const rows = datagrid.getByRole('row'); const row = title ? rows.filter({ hasText: title, diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-create.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-create.spec.ts index 215897fc..be6ae2bb 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-create.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-create.spec.ts @@ -62,6 +62,8 @@ test.describe('Doc Create', () => { .getByLabel('Datagrid of the documents page 1') .getByRole('table'); + await expect(datagrid.getByLabel('Loading data')).toBeHidden(); + await expect(datagrid.getByText(docTitle)).toBeVisible(); const row = datagrid.getByRole('row').filter({ diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts index 5a402951..4765d382 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-grid.spec.ts @@ -125,8 +125,10 @@ test.describe('Documents Grid', () => { expect( textDocNameRow1Asc && textDocNameRow2Asc && - textDocNameRow1Asc.toLocaleLowerCase() <= - textDocNameRow2Asc.toLocaleLowerCase(), + textDocNameRow1Asc.localeCompare(textDocNameRow2Asc, 'en', { + caseFirst: 'false', + ignorePunctuation: true, + }) <= 0, ).toBeTruthy(); // Ordering Desc @@ -145,8 +147,10 @@ test.describe('Documents Grid', () => { expect( textDocNameRow1Desc && textDocNameRow2Desc && - textDocNameRow1Desc.toLocaleLowerCase() >= - textDocNameRow2Desc.toLocaleLowerCase(), + textDocNameRow1Desc.localeCompare(textDocNameRow2Desc, 'en', { + caseFirst: 'false', + ignorePunctuation: true, + }) >= 0, ).toBeTruthy(); }); }); diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-member-grid.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-member-grid.spec.ts index f21c8c57..c0450d4d 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-member-grid.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-member-grid.spec.ts @@ -90,6 +90,8 @@ test.describe('Document grid members', () => { await goToGridDoc(page); + await expect(page.locator('h2').getByText('Mocked document')).toBeVisible(); + await page.getByLabel('Open the document options').click(); await page.getByRole('button', { name: 'Manage members' }).click(); diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-tools.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-tools.spec.ts index 9dde2885..a903da96 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-tools.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-tools.spec.ts @@ -123,10 +123,12 @@ test.describe('Doc Tools', () => { page.getByText('The document has been updated.'), ).toBeVisible(); - await goToGridDoc(page, { + const docTitle = await goToGridDoc(page, { title: `${randomDoc}-updated`, }); + await expect(page.locator('h2').getByText(docTitle)).toBeVisible(); + await page.getByLabel('Open the document options').click(); await page .getByRole('button', {