(e2e) update tests for list semantics and add keyboard nav test

Adapt selectors from grid/row to list/listitem and add a Tab+Enter test
This commit is contained in:
Cyril
2026-03-25 14:27:41 +01:00
parent de9259f636
commit 5cccc1ae6f
4 changed files with 29 additions and 5 deletions
+1
View File
@@ -17,6 +17,7 @@ and this project adheres to
- ♿️(frontend) improve language picker accessibility #2069
- ♿️(frontend) add aria-hidden to decorative icons in dropdown menu #2093
- 🐛(backend) move lock table closer to the insert operation targeted
- ♿️(frontend) replace ARIA grid pattern with list in docs grid #2131
### Fixed
@@ -400,7 +400,7 @@ test.describe('Doc grid dnd mobile', () => {
await expect(page.getByTestId('docs-grid')).toBeVisible();
await expect(page.getByTestId('grid-loader')).toBeHidden();
await expect(docsGrid.getByRole('row').first()).toBeVisible();
await expect(docsGrid.getByRole('listitem').first()).toBeVisible();
await expect(docsGrid.locator('.--docs--grid-droppable')).toHaveCount(0);
await createDoc(page, 'Draggable doc mobile', browserName, 1, true);
@@ -76,7 +76,7 @@ test.describe('Documents Grid mobile', () => {
await expect(docsGrid).toBeVisible();
await expect(page.getByTestId('grid-loader')).toBeHidden();
const rows = docsGrid.getByRole('row');
const rows = docsGrid.getByRole('listitem');
const row = rows.filter({
hasText: 'My mocked document',
});
@@ -289,6 +289,29 @@ test.describe('Documents Grid', () => {
);
});
test('opens a document with keyboard (Tab + Enter)', async ({
page,
browserName,
}) => {
await page.goto('/');
const [docTitle] = await createDoc(page, 'keyboard-nav-test', browserName);
await page.goto('/');
await expect(page.getByTestId('grid-loader')).toBeHidden();
const row = await getGridRow(page, docTitle);
const link = row.getByRole('link').first();
await link.focus();
await expect(link).toBeFocused();
await page.keyboard.press('Enter');
await expect(page).toHaveURL(/\/docs\//);
await verifyDocName(page, docTitle);
});
test('checks the infinite scroll', async ({ page }) => {
let docs: SmallDoc[];
const responsePromisePage1 = page.waitForResponse((response) => {
@@ -183,11 +183,11 @@ export const verifyDocName = async (page: Page, docName: string) => {
};
export const getGridRow = async (page: Page, title: string) => {
const docsGrid = page.getByRole('grid');
const docsGrid = page.getByTestId('docs-grid');
await expect(docsGrid).toBeVisible();
await expect(page.getByTestId('grid-loader')).toBeHidden();
const rows = docsGrid.getByRole('row');
const rows = docsGrid.getByRole('listitem');
const row = rows
.filter({
@@ -215,7 +215,7 @@ export const goToGridDoc = async (
await expect(docsGrid).toBeVisible();
await expect(page.getByTestId('grid-loader')).toBeHidden();
const rows = docsGrid.getByRole('row');
const rows = docsGrid.getByRole('listitem');
const row = title
? rows.filter({