From 92081b0ddef503ae1479425e34355075f1362da3 Mon Sep 17 00:00:00 2001 From: Nathan Panchout Date: Wed, 13 Nov 2024 15:11:10 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(frontend)=20update=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some minor changes have been integrated into the list of documents. The tests must therefore be adapted accordingly. --- CHANGELOG.md | 1 + .../apps/e2e/__tests__/app-impress/common.ts | 2 +- .../__tests__/app-impress/doc-header.spec.ts | 10 +-- .../__tests__/app-impress/doc-routing.spec.ts | 4 +- .../app-impress/doc-table-content.spec.ts | 1 + .../e2e/__tests__/app-impress/footer.spec.ts | 77 ------------------- .../__tests__/app-impress/language.spec.ts | 18 +---- .../__tests__/app-impress/left-panel.spec.ts | 25 ++++++ .../src/components/__tests__/Box.spec.tsx | 4 +- .../docs/doc-editor/components/DocEditor.tsx | 2 +- 10 files changed, 40 insertions(+), 104 deletions(-) delete mode 100644 src/frontend/apps/e2e/__tests__/app-impress/footer.spec.ts create mode 100644 src/frontend/apps/e2e/__tests__/app-impress/left-panel.spec.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index d0fdc885..50a44cd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to - 🌐(frontend) Add German translation #255 - ✨(frontend) Add a broadcast store #387 - ✨(frontend) WIP: New ui +- 💄(frontend) Add left panel #421 - ✨(backend) config endpoint #425 - ✨(backend) whitelist pod's IP address #443 - ✨(backend) config endpoint #425 diff --git a/src/frontend/apps/e2e/__tests__/app-impress/common.ts b/src/frontend/apps/e2e/__tests__/app-impress/common.ts index 900d3265..7208085d 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/common.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/common.ts @@ -36,7 +36,7 @@ export const createDoc = async ( await page .getByRole('button', { - name: 'Create a new document', + name: 'New doc', }) .click(); diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts index c09bce40..093a93d5 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-header.spec.ts @@ -86,7 +86,7 @@ test.describe('Doc Header', () => { test('it updates the title doc from editor heading', async ({ page }) => { await page .getByRole('button', { - name: 'Create a new document', + name: 'New doc', }) .click(); @@ -159,9 +159,7 @@ test.describe('Doc Header', () => { page.getByText('The document has been deleted.'), ).toBeVisible(); - await expect( - page.getByRole('button', { name: 'Create a new document' }), - ).toBeVisible(); + await expect(page.getByRole('button', { name: 'New do' })).toBeVisible(); const row = page .getByLabel('Datagrid of the documents page 1') @@ -414,7 +412,7 @@ test.describe('Doc Header', () => { // create page and navigate to it await page .getByRole('button', { - name: 'Create a new document', + name: 'New doc', }) .click(); @@ -449,7 +447,7 @@ test.describe('Doc Header', () => { // create page and navigate to it await page .getByRole('button', { - name: 'Create a new document', + name: 'New doc', }) .click(); diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-routing.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-routing.spec.ts index 4e26ae2f..4a080dee 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-routing.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-routing.spec.ts @@ -9,7 +9,7 @@ test.describe('Doc Routing', () => { test('Check the presence of the meta tag noindex', async ({ page }) => { const buttonCreateHomepage = page.getByRole('button', { - name: 'Create a new document', + name: 'New doc', }); await expect(buttonCreateHomepage).toBeVisible(); @@ -27,7 +27,7 @@ test.describe('Doc Routing', () => { await expect(page).toHaveURL('/'); const buttonCreateHomepage = page.getByRole('button', { - name: 'Create a new document', + name: 'New doc', }); await expect(buttonCreateHomepage).toBeVisible(); diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-table-content.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-table-content.spec.ts index 55c4a932..a3ce178a 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-table-content.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-table-content.spec.ts @@ -36,6 +36,7 @@ test.describe('Doc Table Content', () => { await page.getByRole('button', { name: 'Strike' }).click(); await page.locator('.bn-block-outer').first().click(); + await editor.click(); await page.locator('.bn-block-outer').last().click(); // Create space to fill the viewport diff --git a/src/frontend/apps/e2e/__tests__/app-impress/footer.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/footer.spec.ts deleted file mode 100644 index 0862051f..00000000 --- a/src/frontend/apps/e2e/__tests__/app-impress/footer.spec.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { expect, test } from '@playwright/test'; - -import { goToGridDoc } from './common'; - -test.beforeEach(async ({ page }) => { - await page.goto('/'); -}); - -test.describe('Footer', () => { - test('checks all the elements are visible', async ({ page }) => { - const footer = page.locator('footer').first(); - - await expect(footer.getByAltText('Gouvernement Logo')).toBeVisible(); - - await expect( - footer.getByRole('link', { name: 'legifrance.gouv.fr' }), - ).toBeVisible(); - - await expect( - footer.getByRole('link', { name: 'info.gouv.fr' }), - ).toBeVisible(); - - await expect( - footer.getByRole('link', { name: 'service-public.fr' }), - ).toBeVisible(); - - await expect( - footer.getByRole('link', { name: 'data.gouv.fr' }), - ).toBeVisible(); - - await expect( - footer.getByRole('link', { name: 'Legal Notice' }), - ).toBeVisible(); - - await expect( - footer.getByRole('link', { name: 'Personal data and cookies' }), - ).toBeVisible(); - - await expect( - footer.getByRole('link', { name: 'Accessibility' }), - ).toBeVisible(); - - await expect( - footer.getByText( - 'Unless otherwise stated, all content on this site is under licence', - ), - ).toBeVisible(); - }); - - test('checks footer is not visible on doc editor', async ({ page }) => { - await expect(page.locator('footer')).toBeVisible(); - await goToGridDoc(page); - await expect(page.locator('footer')).toBeHidden(); - }); - - const legalPages = [ - { name: 'Legal Notice', url: '/legal-notice/' }, - { name: 'Personal data and cookies', url: '/personal-data-cookies/' }, - { name: 'Accessibility', url: '/accessibility/' }, - ]; - for (const { name, url } of legalPages) { - test(`checks ${name} page`, async ({ page }) => { - const footer = page.locator('footer').first(); - await footer.getByRole('link', { name }).click(); - - await expect( - page - .getByRole('heading', { - name, - }) - .first(), - ).toBeVisible(); - - await expect(page).toHaveURL(url); - }); - } -}); diff --git a/src/frontend/apps/e2e/__tests__/app-impress/language.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/language.spec.ts index 9d7e3f3d..ad5996aa 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/language.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/language.spec.ts @@ -6,11 +6,7 @@ test.beforeEach(async ({ page }) => { test.describe('Language', () => { test('checks the language picker', async ({ page }) => { - await expect( - page.getByRole('button', { - name: 'Create a new document', - }), - ).toBeVisible(); + await expect(page.getByLabel('Logout')).toBeVisible(); const header = page.locator('header').first(); await header.getByRole('combobox').getByText('English').click(); @@ -19,11 +15,7 @@ test.describe('Language', () => { header.getByRole('combobox').getByText('Français'), ).toBeVisible(); - await expect( - page.getByRole('button', { - name: 'Créer un nouveau document', - }), - ).toBeVisible(); + await expect(page.getByLabel('Se déconnecter')).toBeVisible(); await header.getByRole('combobox').getByText('Français').click(); await header.getByRole('option', { name: 'Deutsch' }).click(); @@ -31,11 +23,7 @@ test.describe('Language', () => { header.getByRole('combobox').getByText('Deutsch'), ).toBeVisible(); - await expect( - page.getByRole('button', { - name: 'Neues Dokument erstellen', - }), - ).toBeVisible(); + await expect(page.getByLabel('Abmelden')).toBeVisible(); }); test('checks that backend uses the same language as the frontend', async ({ diff --git a/src/frontend/apps/e2e/__tests__/app-impress/left-panel.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/left-panel.spec.ts new file mode 100644 index 00000000..648f0819 --- /dev/null +++ b/src/frontend/apps/e2e/__tests__/app-impress/left-panel.spec.ts @@ -0,0 +1,25 @@ +import { expect, test } from '@playwright/test'; + +test.describe('Left panel desktop', () => { + test.beforeEach(async ({ page }) => { + await page.goto('/'); + }); + + test('checks all the elements are visible', async ({ page }) => { + await expect(page.getByTestId('left-panel-desktop')).toBeVisible(); + await expect(page.getByRole('button', { name: 'house' })).toBeVisible(); + await expect(page.getByRole('button', { name: 'New doc' })).toBeVisible(); + }); +}); + +test.describe('Left panel mobile', () => { + test.use({ viewport: { width: 500, height: 1200 } }); + + test.beforeEach(async ({ page }) => { + await page.goto('/'); + }); + + test('checks all the desktop elements are hidden', async ({ page }) => { + await expect(page.getByTestId('left-panel-desktop')).toBeHidden(); + }); +}); diff --git a/src/frontend/apps/impress/src/components/__tests__/Box.spec.tsx b/src/frontend/apps/impress/src/components/__tests__/Box.spec.tsx index e1e27ce6..dc8ca857 100644 --- a/src/frontend/apps/impress/src/components/__tests__/Box.spec.tsx +++ b/src/frontend/apps/impress/src/components/__tests__/Box.spec.tsx @@ -17,8 +17,8 @@ describe('', () => { ); expect(screen.getByText('My Box')).toHaveStyle(` - padding-left: 4rem; - padding-right: 4rem; + padding-left: 2.5rem; + padding-right: 2.5rem; padding-top: 3rem; padding-bottom: 0.5rem;`); }); diff --git a/src/frontend/apps/impress/src/features/docs/doc-editor/components/DocEditor.tsx b/src/frontend/apps/impress/src/features/docs/doc-editor/components/DocEditor.tsx index c57200e0..ffad6483 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-editor/components/DocEditor.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-editor/components/DocEditor.tsx @@ -1,6 +1,6 @@ import { Alert, Loader, VariantType } from '@openfun/cunningham-react'; import { useRouter } from 'next/router'; -import React, { useEffect } from 'react'; +import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { Box, Card, Text, TextErrors } from '@/components';