From 18d65dff0e50d6ab2e29bd558db278e1d1c07cfd Mon Sep 17 00:00:00 2001 From: EYHN Date: Tue, 10 Dec 2024 07:43:31 +0000 Subject: [PATCH] fix(core): share page show 404 (#9083) --- .../core/src/modules/share-doc/stores/share-reader.ts | 6 ++++++ tests/affine-cloud/e2e/share-page.spec.ts | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/packages/frontend/core/src/modules/share-doc/stores/share-reader.ts b/packages/frontend/core/src/modules/share-doc/stores/share-reader.ts index bf41d02ffd..ca8b6a3147 100644 --- a/packages/frontend/core/src/modules/share-doc/stores/share-reader.ts +++ b/packages/frontend/core/src/modules/share-doc/stores/share-reader.ts @@ -18,6 +18,9 @@ export class ShareReaderStore extends Store { const docResponse = await this.rawFetch.fetch( `/api/workspaces/${workspaceId}/docs/${docId}` ); + if (docResponse.status !== 200) { + throw new Error('Failed to fetch workspace'); + } const publishMode = docResponse.headers.get( 'publish-mode' ) as DocMode | null; @@ -26,6 +29,9 @@ export class ShareReaderStore extends Store { const workspaceResponse = await this.rawFetch.fetch( `/api/workspaces/${workspaceId}/docs/${workspaceId}` ); + if (workspaceResponse.status !== 200) { + throw new Error('Failed to fetch workspace'); + } const workspaceBinary = await workspaceResponse.arrayBuffer(); return { diff --git a/tests/affine-cloud/e2e/share-page.spec.ts b/tests/affine-cloud/e2e/share-page.spec.ts index a58b6ddd7e..4d5c0a6c54 100644 --- a/tests/affine-cloud/e2e/share-page.spec.ts +++ b/tests/affine-cloud/e2e/share-page.spec.ts @@ -340,3 +340,13 @@ test('The reference links in the shared page should be accessible normally and c ); } }); + +test('Should show no permission page when the share page is not found', async ({ + page, +}) => { + await page.goto('http://localhost:8080/workspace/abc/123'); + + await expect( + page.getByText('You do not have access or this content does not exist.') + ).toBeVisible(); +});