fix NVDA focus and announcement issues in search modal combobox Signed-off-by: Cyril <c.gromoff@gmail.com>
81 lines
2.0 KiB
TypeScript
81 lines
2.0 KiB
TypeScript
import { Page, expect } from '@playwright/test';
|
|
|
|
import {
|
|
randomName,
|
|
updateDocTitle,
|
|
verifyDocName,
|
|
waitForResponseCreateDoc,
|
|
} from './utils-common';
|
|
|
|
export const createRootSubPage = async (
|
|
page: Page,
|
|
browserName: string,
|
|
docName: string,
|
|
isMobile: boolean = false,
|
|
) => {
|
|
if (isMobile) {
|
|
await page
|
|
.getByRole('button', { name: 'Open the header menu' })
|
|
.getByText('menu')
|
|
.click();
|
|
}
|
|
|
|
// Get response
|
|
const responsePromise = waitForResponseCreateDoc(page);
|
|
await clickOnAddRootSubPage(page);
|
|
const response = await responsePromise;
|
|
expect(response.ok()).toBeTruthy();
|
|
const subPageJson = (await response.json()) as { id: string };
|
|
|
|
if (isMobile) {
|
|
await page
|
|
.getByRole('button', { name: 'Open the header menu' })
|
|
.getByText('menu')
|
|
.click();
|
|
}
|
|
|
|
// Get doc tree
|
|
const docTree = page.getByTestId('doc-tree');
|
|
await expect(docTree).toBeVisible();
|
|
|
|
// Get sub page item
|
|
const subPageItem = docTree
|
|
.getByTestId(`doc-sub-page-item-${subPageJson.id}`)
|
|
.first();
|
|
await expect(subPageItem).toBeVisible();
|
|
await subPageItem.click();
|
|
|
|
if (isMobile) {
|
|
await page
|
|
.getByRole('button', { name: 'Open the header menu' })
|
|
.getByText('close')
|
|
.click();
|
|
}
|
|
|
|
// Update sub page name
|
|
const randomDocs = randomName(docName, browserName, 1);
|
|
await updateDocTitle(page, randomDocs[0]);
|
|
|
|
// Return sub page data
|
|
return { name: randomDocs[0], docTreeItem: subPageItem, item: subPageJson };
|
|
};
|
|
|
|
export const clickOnAddRootSubPage = async (page: Page) => {
|
|
const rootItem = page.getByTestId('doc-tree-root-item');
|
|
await expect(rootItem).toBeVisible();
|
|
await rootItem.hover();
|
|
await rootItem.getByTestId('doc-tree-item-actions-add-child').click();
|
|
};
|
|
|
|
export const navigateToPageFromTree = async ({
|
|
page,
|
|
title,
|
|
}: {
|
|
page: Page;
|
|
title: string;
|
|
}) => {
|
|
const docTree = page.getByTestId('doc-tree');
|
|
await docTree.getByText(title).click();
|
|
await verifyDocName(page, title);
|
|
};
|