🐛(frontend) fix flakiness e2e tests title doc

- fix multiple states title
- wait for stabilize network after create
- fix test other chromium browsers
- improve grid delete test
This commit is contained in:
Anthony LC
2025-03-14 14:27:56 +01:00
committed by Anthony LC
parent 4316b4e67d
commit cb8bd4b937
4 changed files with 23 additions and 32 deletions

View File

@@ -51,9 +51,15 @@ export const createDoc = async (
})
.click();
await page.waitForURL('**/docs/**', {
timeout: 10000,
waitUntil: 'networkidle',
});
const input = page.getByLabel('doc title input');
await expect(input).toHaveText('');
await input.click();
await input.fill(randomDocs[i]);
await input.blur();
}
@@ -63,8 +69,11 @@ export const createDoc = async (
export const verifyDocName = async (page: Page, docName: string) => {
const input = page.getByRole('textbox', { name: 'doc title input' });
await expect(input).toBeVisible();
await expect(input).toHaveText(docName);
try {
await expect(input).toHaveText(docName);
} catch {
await expect(page.getByRole('heading', { name: docName })).toBeVisible();
}
};
export const addNewMember = async (

View File

@@ -115,25 +115,16 @@ test.describe('Document grid item options', () => {
await expect(leftPanelFavorites.getByText(docTitle)).toBeHidden();
});
test('it deletes the document', async ({ page }) => {
let docs: SmallDoc[] = [];
const response = await page.waitForResponse(
(response) =>
response.url().endsWith('documents/?page=1') &&
response.status() === 200,
);
const result = await response.json();
docs = result.results as SmallDoc[];
test('it deletes the document', async ({ page, browserName }) => {
const [docTitle] = await createDoc(page, `delete doc`, browserName);
const button = page.getByTestId(`docs-grid-actions-button-${docs[0].id}`);
await expect(button).toBeVisible();
await button.click();
await page.goto('/');
const removeButton = page.getByTestId(
`docs-grid-actions-remove-${docs[0].id}`,
);
await expect(removeButton).toBeVisible();
await removeButton.click();
await expect(page.getByText(docTitle)).toBeVisible();
const row = await getGridRow(page, docTitle);
await row.getByText(`more_horiz`).click();
await page.getByRole('menuitem', { name: 'Remove' }).click();
await expect(
page.getByRole('heading', { name: 'Delete a doc' }),
@@ -145,20 +136,11 @@ test.describe('Document grid item options', () => {
})
.click();
const refetchResponse = await page.waitForResponse(
(response) =>
response.url().endsWith('documents/?page=1') &&
response.status() === 200,
);
const resultRefetch = await refetchResponse.json();
expect(resultRefetch.count).toBe(result.count - 1);
await expect(page.getByTestId('main-layout-loader')).toBeHidden();
await expect(
page.getByText('The document has been deleted.'),
).toBeVisible();
await expect(button).toBeHidden();
await expect(page.getByText(docTitle)).toBeHidden();
});
test("it checks if the delete option is disabled if we don't have the destroy capability", async ({

View File

@@ -131,7 +131,7 @@ test.describe('Document list members', () => {
const list = page.getByTestId('doc-share-quick-search');
await expect(list).toBeVisible();
const currentUser = list.getByTestId(
`doc-share-member-row-user@chromium.e2e`,
`doc-share-member-row-user@${browserName}.e2e`,
);
const currentUserRole = currentUser.getByLabel('doc-role-dropdown');
await expect(currentUser).toBeVisible();

View File

@@ -154,7 +154,7 @@ test.describe('Doc Visibility: Restricted', () => {
// Choose a role
const container = page.getByTestId('doc-share-add-member-list');
await container.getByLabel('doc-role-dropdown').click();
await page.getByLabel('Administrator').click();
await page.getByLabel('Reader').click();
await page.getByRole('button', { name: 'Invite' }).click();