From 012b06f3b1f9d1578817df4dfc300f3ea8aea29a Mon Sep 17 00:00:00 2001 From: Cyril Date: Thu, 31 Jul 2025 17:21:08 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(e2e)=20adds=20an=20end=20to=20end=20t?= =?UTF-8?q?est=20for=20heading=20accessibility=20in=20doc=20editor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit adds an end to end test to verify progressive heading suggestions Signed-off-by: Cyril --- CHANGELOG.md | 4 +- .../doc-editor-heading-accessibility.spec.ts | 74 +++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/frontend/apps/e2e/__tests__/app-impress/doc-editor-heading-accessibility.spec.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ce60495d..4a339f890 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,9 @@ and this project adheres to - ♻️(frontend) redirect to doc after duplicate #1175 - 🔧(project) change env.d system by using local files #1200 - ⚡️(frontend) improve tree stability #1207 -- ⚡️(frontend) improve accessibility #1232 +- ⚡️(frontend) improve accessibility + - #1232 + - #1251 - 🛂(frontend) block drag n drop when not desktop #1239 ### Fixed diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-editor-heading-accessibility.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-editor-heading-accessibility.spec.ts new file mode 100644 index 000000000..fa4d1d3ec --- /dev/null +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-editor-heading-accessibility.spec.ts @@ -0,0 +1,74 @@ +import { expect, test } from '@playwright/test'; + +test.describe('Doc Editor - Heading Accessibility', () => { + test.beforeEach(async ({ page }) => { + await page.goto('/'); + }); + + test('should filter heading options progressively (h1 -> h2 -> h3)', async ({ + page, + }) => { + await page.getByRole('button', { name: 'Nouveau doc' }).click(); + + await page.waitForURL('**/docs/**', { + timeout: 10000, + waitUntil: 'domcontentloaded', + }); + + const input = page.getByLabel('doc title input'); + await input.fill('heading-accessibility-test'); + await input.blur(); + + const editor = page.locator('.ProseMirror'); + await editor.click(); + + await page.keyboard.type('/'); + await expect(page.getByText('Titre 1')).toBeVisible(); + await expect(page.getByText('Titre 2')).toBeHidden(); + await expect(page.getByText('Titre 3')).toBeHidden(); + + await page.getByText('Titre 1').click(); + await page.keyboard.type('Main Title'); + await page.keyboard.press('Enter'); + + await editor.click(); + await page.keyboard.type('/'); + + await expect(page.getByText('Titre 1')).toBeHidden(); + await expect(page.getByText('Titre 2')).toBeVisible(); + await expect(page.getByText('Titre 3')).toBeHidden(); + + await page.getByText('Titre 2').click(); + await page.keyboard.type('Sub Title'); + await page.keyboard.press('Enter'); + + await editor.click(); + await page.keyboard.type('/'); + + await expect(page.getByText('Titre 1')).toBeHidden(); + await expect(page.getByText('Titre 2')).toBeVisible(); + await expect(page.getByText('Titre 3')).toBeVisible(); + + await page.getByText('Titre 3').click(); + await page.keyboard.type('Sub Sub Title'); + await page.keyboard.press('Enter'); + + await editor.click(); + await page.keyboard.type('/'); + + await expect(page.getByText('Titre 1')).toBeHidden(); + await expect(page.getByText('Titre 2')).toBeHidden(); + await expect(page.getByText('Titre 3')).toBeVisible(); + + await page.getByText('Titre 3').click(); + await page.keyboard.type('Another Sub Sub Title'); + await page.keyboard.press('Enter'); + + await editor.click(); + await page.keyboard.type('/'); + + await expect(page.getByText('Titre 1')).toBeHidden(); + await expect(page.getByText('Titre 2')).toBeHidden(); + await expect(page.getByText('Titre 3')).toBeVisible(); + }); +});