mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-11 20:08:37 +00:00
test: fix flaky on local-first-workspace-list.spec.ts (#2727)
This commit is contained in:
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -91,6 +91,7 @@ jobs:
|
|||||||
ENABLE_PLUGIN: true
|
ENABLE_PLUGIN: true
|
||||||
ENABLE_ALL_PAGE_FILTER: true
|
ENABLE_ALL_PAGE_FILTER: true
|
||||||
ENABLE_LEGACY_PROVIDER: true
|
ENABLE_LEGACY_PROVIDER: true
|
||||||
|
ENABLE_PRELOADING: false
|
||||||
COVERAGE: true
|
COVERAGE: true
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
@@ -115,6 +116,7 @@ jobs:
|
|||||||
ENABLE_PLUGIN: true
|
ENABLE_PLUGIN: true
|
||||||
ENABLE_ALL_PAGE_FILTER: true
|
ENABLE_ALL_PAGE_FILTER: true
|
||||||
ENABLE_LEGACY_PROVIDER: false
|
ENABLE_LEGACY_PROVIDER: false
|
||||||
|
ENABLE_PRELOADING: false
|
||||||
COVERAGE: true
|
COVERAGE: true
|
||||||
|
|
||||||
- name: Export static resources
|
- name: Export static resources
|
||||||
|
|||||||
@@ -308,7 +308,9 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
|
|||||||
assertEquals(page.id, pageId);
|
assertEquals(page.id, pageId);
|
||||||
setEditorFlags(currentWorkspace.blockSuiteWorkspace);
|
setEditorFlags(currentWorkspace.blockSuiteWorkspace);
|
||||||
if (config.enablePreloading) {
|
if (config.enablePreloading) {
|
||||||
initPageWithPreloading(page);
|
initPageWithPreloading(page).catch(error => {
|
||||||
|
console.error('import error:', error);
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
initEmptyPage(page);
|
initEmptyPage(page);
|
||||||
}
|
}
|
||||||
@@ -333,30 +335,19 @@ export const WorkspaceLayoutInner: FC<PropsWithChildren> = ({ children }) => {
|
|||||||
};
|
};
|
||||||
}, [currentWorkspace]);
|
}, [currentWorkspace]);
|
||||||
|
|
||||||
useEffect(() => {
|
const page = currentWorkspace.blockSuiteWorkspace.getPage(
|
||||||
if (!currentWorkspace) {
|
DEFAULT_HELLO_WORLD_PAGE_ID
|
||||||
return;
|
);
|
||||||
}
|
if (page && page.meta.jumpOnce) {
|
||||||
const page = currentWorkspace.blockSuiteWorkspace.getPage(
|
currentWorkspace.blockSuiteWorkspace.meta.setPageMeta(
|
||||||
DEFAULT_HELLO_WORLD_PAGE_ID
|
DEFAULT_HELLO_WORLD_PAGE_ID,
|
||||||
|
{
|
||||||
|
jumpOnce: false,
|
||||||
|
}
|
||||||
);
|
);
|
||||||
if (page && page.meta.jumpOnce) {
|
setCurrentPageId(currentPageId);
|
||||||
currentWorkspace.blockSuiteWorkspace.meta.setPageMeta(
|
void jumpToPage(currentWorkspace.id, page.id);
|
||||||
DEFAULT_HELLO_WORLD_PAGE_ID,
|
}
|
||||||
{
|
|
||||||
jumpOnce: false,
|
|
||||||
}
|
|
||||||
);
|
|
||||||
setCurrentPageId(currentPageId);
|
|
||||||
void jumpToPage(currentWorkspace.id, page.id);
|
|
||||||
}
|
|
||||||
}, [
|
|
||||||
currentPageId,
|
|
||||||
currentWorkspace,
|
|
||||||
jumpToPage,
|
|
||||||
router.query.pageId,
|
|
||||||
setCurrentPageId,
|
|
||||||
]);
|
|
||||||
|
|
||||||
const { openPage } = useRouterHelper(router);
|
const { openPage } = useRouterHelper(router);
|
||||||
const [, setOpenWorkspacesModal] = useAtom(openWorkspacesModalAtom);
|
const [, setOpenWorkspacesModal] = useAtom(openWorkspacesModalAtom);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ test('enable public workspace', async ({ page, context }) => {
|
|||||||
await page2.waitForSelector('thead', {
|
await page2.waitForSelector('thead', {
|
||||||
timeout: 10000,
|
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 }) => {
|
test('access public workspace page', async ({ page, browser }) => {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ test('drag a page from "All pages" list onto the "Trash" folder in the sidebar t
|
|||||||
|
|
||||||
// Drag-and-drop
|
// Drag-and-drop
|
||||||
// Ref: https://playwright.dev/docs/input#dragging-manually
|
// 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.mouse.down();
|
||||||
await page.waitForTimeout(1000);
|
await page.waitForTimeout(1000);
|
||||||
await page.getByText('Trash').hover();
|
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();
|
).toBeVisible();
|
||||||
|
|
||||||
await expect(
|
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'
|
'The deleted post is no longer on the All Page list'
|
||||||
).toHaveCount(0);
|
).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
|
// Visit trash page via url
|
||||||
await page.getByText('Trash', { exact: true }).click();
|
await page.getByText('Trash', { exact: true }).click();
|
||||||
await expect(
|
await expect(
|
||||||
page.getByText('AFFiNE - not just a note taking app'),
|
page.getByText('Untitled'),
|
||||||
'The deleted post exists in the Trash list'
|
'The deleted post exists in the Trash list'
|
||||||
).toHaveCount(1);
|
).toHaveCount(1);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -103,14 +103,21 @@ test('create multi workspace in the workspace list', async ({ page }) => {
|
|||||||
await page.reload();
|
await page.reload();
|
||||||
await openWorkspaceListModal(page);
|
await openWorkspaceListModal(page);
|
||||||
|
|
||||||
//check workspace list length
|
// check workspace list length
|
||||||
{
|
{
|
||||||
const workspaceCards1 = await page.$$('data-testid=workspace-card');
|
const workspaceCards1 = await page.$$('data-testid=workspace-card');
|
||||||
expect(workspaceCards1.length).toBe(3);
|
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.getByTestId('draggable-item').nth(2).click();
|
||||||
await page.waitForTimeout(100);
|
await workspaceChangePromise;
|
||||||
|
|
||||||
// @ts-expect-error
|
// @ts-expect-error
|
||||||
const nextId: string = await page.evaluate(() => currentWorkspace.id);
|
const nextId: string = await page.evaluate(() => currentWorkspace.id);
|
||||||
|
|||||||
Reference in New Issue
Block a user