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 3d1a9d12e..3429ce2c6 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 215897fc5..be6ae2bbe 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 5a4029513..4765d3824 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 f21c8c571..c0450d4d8 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 9dde28855..a903da96f 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', {