🐛(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:
@@ -51,9 +51,15 @@ export const createDoc = async (
|
|||||||
})
|
})
|
||||||
.click();
|
.click();
|
||||||
|
|
||||||
|
await page.waitForURL('**/docs/**', {
|
||||||
|
timeout: 10000,
|
||||||
|
waitUntil: 'networkidle',
|
||||||
|
});
|
||||||
|
|
||||||
const input = page.getByLabel('doc title input');
|
const input = page.getByLabel('doc title input');
|
||||||
await expect(input).toHaveText('');
|
await expect(input).toHaveText('');
|
||||||
await input.click();
|
await input.click();
|
||||||
|
|
||||||
await input.fill(randomDocs[i]);
|
await input.fill(randomDocs[i]);
|
||||||
await input.blur();
|
await input.blur();
|
||||||
}
|
}
|
||||||
@@ -63,8 +69,11 @@ export const createDoc = async (
|
|||||||
|
|
||||||
export const verifyDocName = async (page: Page, docName: string) => {
|
export const verifyDocName = async (page: Page, docName: string) => {
|
||||||
const input = page.getByRole('textbox', { name: 'doc title input' });
|
const input = page.getByRole('textbox', { name: 'doc title input' });
|
||||||
await expect(input).toBeVisible();
|
try {
|
||||||
await expect(input).toHaveText(docName);
|
await expect(input).toHaveText(docName);
|
||||||
|
} catch {
|
||||||
|
await expect(page.getByRole('heading', { name: docName })).toBeVisible();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addNewMember = async (
|
export const addNewMember = async (
|
||||||
|
|||||||
@@ -115,25 +115,16 @@ test.describe('Document grid item options', () => {
|
|||||||
await expect(leftPanelFavorites.getByText(docTitle)).toBeHidden();
|
await expect(leftPanelFavorites.getByText(docTitle)).toBeHidden();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('it deletes the document', async ({ page }) => {
|
test('it deletes the document', async ({ page, browserName }) => {
|
||||||
let docs: SmallDoc[] = [];
|
const [docTitle] = await createDoc(page, `delete doc`, browserName);
|
||||||
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[];
|
|
||||||
|
|
||||||
const button = page.getByTestId(`docs-grid-actions-button-${docs[0].id}`);
|
await page.goto('/');
|
||||||
await expect(button).toBeVisible();
|
|
||||||
await button.click();
|
|
||||||
|
|
||||||
const removeButton = page.getByTestId(
|
await expect(page.getByText(docTitle)).toBeVisible();
|
||||||
`docs-grid-actions-remove-${docs[0].id}`,
|
const row = await getGridRow(page, docTitle);
|
||||||
);
|
await row.getByText(`more_horiz`).click();
|
||||||
await expect(removeButton).toBeVisible();
|
|
||||||
await removeButton.click();
|
await page.getByRole('menuitem', { name: 'Remove' }).click();
|
||||||
|
|
||||||
await expect(
|
await expect(
|
||||||
page.getByRole('heading', { name: 'Delete a doc' }),
|
page.getByRole('heading', { name: 'Delete a doc' }),
|
||||||
@@ -145,20 +136,11 @@ test.describe('Document grid item options', () => {
|
|||||||
})
|
})
|
||||||
.click();
|
.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(
|
await expect(
|
||||||
page.getByText('The document has been deleted.'),
|
page.getByText('The document has been deleted.'),
|
||||||
).toBeVisible();
|
).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 ({
|
test("it checks if the delete option is disabled if we don't have the destroy capability", async ({
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ test.describe('Document list members', () => {
|
|||||||
const list = page.getByTestId('doc-share-quick-search');
|
const list = page.getByTestId('doc-share-quick-search');
|
||||||
await expect(list).toBeVisible();
|
await expect(list).toBeVisible();
|
||||||
const currentUser = list.getByTestId(
|
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');
|
const currentUserRole = currentUser.getByLabel('doc-role-dropdown');
|
||||||
await expect(currentUser).toBeVisible();
|
await expect(currentUser).toBeVisible();
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ test.describe('Doc Visibility: Restricted', () => {
|
|||||||
// Choose a role
|
// Choose a role
|
||||||
const container = page.getByTestId('doc-share-add-member-list');
|
const container = page.getByTestId('doc-share-add-member-list');
|
||||||
await container.getByLabel('doc-role-dropdown').click();
|
await container.getByLabel('doc-role-dropdown').click();
|
||||||
await page.getByLabel('Administrator').click();
|
await page.getByLabel('Reader').click();
|
||||||
|
|
||||||
await page.getByRole('button', { name: 'Invite' }).click();
|
await page.getByRole('button', { name: 'Invite' }).click();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user