From 70e71bd43e3e05d1e34f2f5d87385917868ea3c1 Mon Sep 17 00:00:00 2001 From: EYHN Date: Mon, 20 Nov 2023 20:17:30 +0800 Subject: [PATCH] fix(core): make e2e more stable (#4987) --- .../core/src/pages/workspace/index.tsx | 15 +++++---------- .../frontend/workspace/src/providers/index.ts | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/packages/frontend/core/src/pages/workspace/index.tsx b/packages/frontend/core/src/pages/workspace/index.tsx index 5102ae3b0a..056f9acc84 100644 --- a/packages/frontend/core/src/pages/workspace/index.tsx +++ b/packages/frontend/core/src/pages/workspace/index.tsx @@ -43,15 +43,12 @@ export const loader: LoaderFunction = async args => { if (!args.params.pageId) { rootStore.set(currentPageIdAtom, null); } - if (currentMetadata.flavour === WorkspaceFlavour.AFFINE_CLOUD) { - const [workspaceAtom] = getBlockSuiteWorkspaceAtom(currentMetadata.id); - workspaceLoaderLogger.info('get cloud workspace atom'); + const [workspaceAtom] = getBlockSuiteWorkspaceAtom(currentMetadata.id); + workspaceLoaderLogger.info('get cloud workspace atom'); - const workspace = await rootStore.get(workspaceAtom); - if (!workspace.doc.isLoaded) { - await workspace.doc.whenLoaded; - } - workspaceLoaderLogger.info('workspace loaded'); + const workspace = await rootStore.get(workspaceAtom); + workspaceLoaderLogger.info('workspace loaded'); + if (currentMetadata.flavour === WorkspaceFlavour.AFFINE_CLOUD) { return (() => { guidCompatibilityFix(workspace.doc); const blockVersions = workspace.meta.blockVersions; @@ -66,8 +63,6 @@ export const loader: LoaderFunction = async args => { return false; })(); } - - workspaceLoaderLogger.info('done'); return null; }; diff --git a/packages/frontend/workspace/src/providers/index.ts b/packages/frontend/workspace/src/providers/index.ts index a3f2b467e8..199521b4bf 100644 --- a/packages/frontend/workspace/src/providers/index.ts +++ b/packages/frontend/workspace/src/providers/index.ts @@ -59,7 +59,14 @@ export const createLocalProviders = (): DocProviderCreator[] => { return engine.waitForLoadedRootDoc(); }, connect() { - // TODO: actually connect + if (!connected) { + engine.start(); + + for (const provider of awarenessProviders) { + provider.connect(); + } + connected = true; + } }, disconnect() { // TODO: actually disconnect @@ -109,7 +116,14 @@ export const createAffineProviders = (): DocProviderCreator[] => { return engine.waitForLoadedRootDoc(); }, connect() { - // TODO: actually connect + if (!connected) { + engine.start(); + + for (const provider of awarenessProviders) { + provider.connect(); + } + connected = true; + } }, disconnect() { // TODO: actually disconnect