test: fix flaky on local-first-workspace-list.spec.ts (#2727)

This commit is contained in:
Himself65 2023-06-08 16:18:10 +08:00 committed by GitHub
parent 18dc427bc3
commit 27b14af388
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 30 additions and 30 deletions

View File

@ -91,6 +91,7 @@ jobs:
ENABLE_PLUGIN: true
ENABLE_ALL_PAGE_FILTER: true
ENABLE_LEGACY_PROVIDER: true
ENABLE_PRELOADING: false
COVERAGE: true
- name: Upload artifact
@ -115,6 +116,7 @@ jobs:
ENABLE_PLUGIN: true
ENABLE_ALL_PAGE_FILTER: true
ENABLE_LEGACY_PROVIDER: false
ENABLE_PRELOADING: false
COVERAGE: true
- name: Export static resources

View File

@ -308,7 +308,9 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
assertEquals(page.id, pageId);
setEditorFlags(currentWorkspace.blockSuiteWorkspace);
if (config.enablePreloading) {
initPageWithPreloading(page);
initPageWithPreloading(page).catch(error => {
console.error('import error:', error);
});
} else {
initEmptyPage(page);
}
@ -333,30 +335,19 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
};
}, [currentWorkspace]);
useEffect(() => {
if (!currentWorkspace) {
return;
}
const page = currentWorkspace.blockSuiteWorkspace.getPage(
DEFAULT_HELLO_WORLD_PAGE_ID
const page = currentWorkspace.blockSuiteWorkspace.getPage(
DEFAULT_HELLO_WORLD_PAGE_ID
);
if (page && page.meta.jumpOnce) {
currentWorkspace.blockSuiteWorkspace.meta.setPageMeta(
DEFAULT_HELLO_WORLD_PAGE_ID,
{
jumpOnce: false,
}
);
if (page && page.meta.jumpOnce) {
currentWorkspace.blockSuiteWorkspace.meta.setPageMeta(
DEFAULT_HELLO_WORLD_PAGE_ID,
{
jumpOnce: false,
}
);
setCurrentPageId(currentPageId);
void jumpToPage(currentWorkspace.id, page.id);
}
}, [
currentPageId,
currentWorkspace,
jumpToPage,
router.query.pageId,
setCurrentPageId,
]);
setCurrentPageId(currentPageId);
void jumpToPage(currentWorkspace.id, page.id);
}
const { openPage } = useRouterHelper(router);
const [, setOpenWorkspacesModal] = useAtom(openWorkspacesModalAtom);

View File

@ -38,7 +38,7 @@ test('enable public workspace', async ({ page, context }) => {
await page2.waitForSelector('thead', {
timeout: 10000,
});
await page2.getByText('AFFiNE - not just a note taking app').click();
await page2.getByText('Untitled').click();
});
test('access public workspace page', async ({ page, browser }) => {

View File

@ -17,7 +17,7 @@ test('drag a page from "All pages" list onto the "Trash" folder in the sidebar t
// Drag-and-drop
// Ref: https://playwright.dev/docs/input#dragging-manually
await page.getByText('AFFiNE - not just a note taking app').hover();
await page.getByText('Untitled').hover();
await page.mouse.down();
await page.waitForTimeout(1000);
await page.getByText('Trash').hover();
@ -29,7 +29,7 @@ test('drag a page from "All pages" list onto the "Trash" folder in the sidebar t
).toBeVisible();
await expect(
page.getByText('AFFiNE - not just a note taking app'),
page.getByText('Untitled'),
'The deleted post is no longer on the All Page list'
).toHaveCount(0);
@ -37,7 +37,7 @@ test('drag a page from "All pages" list onto the "Trash" folder in the sidebar t
// Visit trash page via url
await page.getByText('Trash', { exact: true }).click();
await expect(
page.getByText('AFFiNE - not just a note taking app'),
page.getByText('Untitled'),
'The deleted post exists in the Trash list'
).toHaveCount(1);
});

View File

@ -103,14 +103,21 @@ test('create multi workspace in the workspace list', async ({ page }) => {
await page.reload();
await openWorkspaceListModal(page);
//check workspace list length
// check workspace list length
{
const workspaceCards1 = await page.$$('data-testid=workspace-card');
expect(workspaceCards1.length).toBe(3);
}
const workspaceChangePromise = page.evaluate(() => {
new Promise(resolve => {
window.addEventListener('affine:workspace:change', resolve, {
once: true,
});
});
});
await page.getByTestId('draggable-item').nth(2).click();
await page.waitForTimeout(100);
await workspaceChangePromise;
// @ts-expect-error
const nextId: string = await page.evaluate(() => currentWorkspace.id);