(e2e) fix flaky test

Improve:
- checks redirect if unsync version
- check the reorder of sub pages

Add "show-report" command.
This commit is contained in:
Anthony LC
2026-09-18 15:26:31 +02:00
parent 51164f2ef7
commit 3402369dce
4 changed files with 29 additions and 15 deletions
@@ -16,10 +16,6 @@ import {
if (process.env.IS_INSTANCE !== 'true') {
test.describe('Doc AI feature', () => {
test.beforeEach(async ({ page }) => {
await page.goto('/');
});
[
{
AI_FEATURE_ENABLED: false,
@@ -190,6 +186,8 @@ if (process.env.IS_INSTANCE !== 'true') {
}
});
await page.goto('/');
await createDoc(page, 'doc-ai', browserName, 1);
await page.locator('.bn-block-outer').last().fill('Hello World');
@@ -273,6 +271,8 @@ if (process.env.IS_INSTANCE !== 'true') {
title: '',
});
await page.goto('/');
await createDoc(page, 'doc-editor-ai', browserName, 1);
const editor = await writeInEditor({ page, text: 'Hello World' });
@@ -342,6 +342,8 @@ if (process.env.IS_INSTANCE !== 'true') {
title: '',
});
await page.goto('/');
const [randomDoc] = await createDoc(
page,
'doc-editor-ai-proxy',
@@ -157,24 +157,25 @@ test.describe('Doc Routing', () => {
RELEASE_VERSION: '0.0.0',
});
await page.goto('/');
let counterReload = 0;
await page.route(/.*\/users\/me\/$/, async (route) => {
counterReload += 1;
await route.continue();
});
await page.waitForTimeout(1000);
await page.goto('/');
await expect.poll(() => counterReload, { timeout: 10000 }).toBe(2);
await page.waitForLoadState('load');
// The sessionStorage guard should be set to the mismatched backend version.
const reloadVersion = await page.evaluate(() =>
sessionStorage.getItem('reload-version'),
);
expect(reloadVersion).toBe('0.0.0');
// The page should have reloaded once
expect(counterReload).toBe(2);
await expect
.poll(
() => page.evaluate(() => sessionStorage.getItem('reload-version')),
{ timeout: 10000 },
)
.toBe('0.0.0');
});
});
@@ -207,6 +207,13 @@ test.describe('Doc Tree', () => {
{ steps: 20 },
);
const responsePromiseMoveDoc = page.waitForResponse(
(response) =>
response.url().includes(`/move/`) &&
response.status() === 200 &&
response.request().method() === 'POST',
);
await page.mouse.up();
// Wait for the reorder to be reflected in the tree before reloading —
@@ -214,6 +221,9 @@ test.describe('Doc Tree', () => {
await expect(allSubPageItems.nth(0).getByText(docChild2)).toBeVisible();
await expect(allSubPageItems.nth(1).getByText(docChild1)).toBeVisible();
const responseMoveDoc = await responsePromiseMoveDoc;
expect(responseMoveDoc.ok()).toBeTruthy();
// reload the page
await page.reload();
+2 -1
View File
@@ -12,7 +12,8 @@
"test:ui": "yarn test --ui",
"test:ui::firefox": "yarn test:ui --project=firefox",
"test:ui::webkit": "yarn test:ui --project=webkit",
"test:ui::chromium": "yarn test:ui --project=chromium"
"test:ui::chromium": "yarn test:ui --project=chromium",
"show-report": "npx playwright show-report report"
},
"devDependencies": {
"@playwright/test": "1.62.1",