diff --git a/apps/web/src/pages/_app.tsx b/apps/web/src/pages/_app.tsx
index 9eb998ba3d..d1ff9c7196 100644
--- a/apps/web/src/pages/_app.tsx
+++ b/apps/web/src/pages/_app.tsx
@@ -67,6 +67,10 @@ const App = function App({
>
AFFiNE
+
{getLayout()}
diff --git a/apps/web/src/pages/_document.tsx b/apps/web/src/pages/_document.tsx
index d97b1c60e1..dd1c94ffca 100644
--- a/apps/web/src/pages/_document.tsx
+++ b/apps/web/src/pages/_document.tsx
@@ -51,7 +51,6 @@ export default class AppDocument extends Document<{
/>
-
{
dispose.dispose();
};
}
+ } else {
+ // fixme: should create new workspace
+ jumpToSubPath('ERROR', WorkspaceSubPath.ALL, RouteLogic.REPLACE);
}
}, [jumpToPage, jumpToSubPath, lastWorkspaceId, router, workspaces]);
- return ;
+ return ;
};
const IndexPage: NextPage = () => {
diff --git a/packages/workspace/src/affine/__tests__/api.spec.ts b/packages/workspace/src/affine/__tests__/api.spec.ts
index 5599d8d780..953b345b3f 100644
--- a/packages/workspace/src/affine/__tests__/api.spec.ts
+++ b/packages/workspace/src/affine/__tests__/api.spec.ts
@@ -4,15 +4,23 @@
import 'fake-indexeddb/auto';
import userA from '@affine-test/fixtures/userA.json';
+import { assertExists } from '@blocksuite/global/utils';
import { Workspace } from '@blocksuite/store';
import { beforeAll, beforeEach, describe, expect, test } from 'vitest';
import { createWorkspaceApis, createWorkspaceResponseSchema } from '../api';
-import { loginResponseSchema, setLoginStorage } from '../login';
+import {
+ createAffineAuth,
+ getLoginStorage,
+ loginResponseSchema,
+ setLoginStorage,
+} from '../login';
let workspaceApis: ReturnType;
+let affineAuth: ReturnType;
beforeAll(() => {
+ affineAuth = createAffineAuth('http://localhost:3000/');
workspaceApis = createWorkspaceApis('http://localhost:3000/');
});
@@ -49,6 +57,12 @@ beforeEach(async () => {
});
describe('api', () => {
+ test('refresh token', async () => {
+ const storage = getLoginStorage();
+ assertExists(storage);
+ loginResponseSchema.parse(await affineAuth.refreshToken(storage));
+ });
+
test(
'create workspace',
async () => {
diff --git a/packages/workspace/src/affine/login.ts b/packages/workspace/src/affine/login.ts
index f2b14fa125..9018e82cd2 100644
--- a/packages/workspace/src/affine/login.ts
+++ b/packages/workspace/src/affine/login.ts
@@ -85,7 +85,7 @@ declare global {
var firebaseAuthEmulatorStarted: boolean | undefined;
}
-export function createAffineAuth() {
+export function createAffineAuth(prefix = '/') {
let _firebaseAuth: FirebaseAuth | null = null;
const getAuth = (): FirebaseAuth | null => {
try {
@@ -138,7 +138,7 @@ export function createAffineAuth() {
const response = await signInWithPopup(auth, provider);
const idToken = await response.user.getIdToken();
logger.debug(idToken);
- return fetch('/api/user/token', {
+ return fetch(prefix + 'api/user/token', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@@ -161,7 +161,7 @@ export function createAffineAuth() {
refreshToken: async (
loginResponse: LoginResponse
): Promise => {
- return fetch('/api/user/token', {
+ return fetch(prefix + 'api/user/token', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
diff --git a/tests/parallels/local-first-workspace.spec.ts b/tests/parallels/local-first-workspace.spec.ts
index 1fd37c5f78..73db449e64 100644
--- a/tests/parallels/local-first-workspace.spec.ts
+++ b/tests/parallels/local-first-workspace.spec.ts
@@ -9,6 +9,7 @@ test.describe('Local first default workspace', () => {
test('preset workspace name', async ({ page }) => {
await openHomePage(page);
const workspaceName = page.getByTestId('workspace-name');
+ await page.waitForTimeout(1000);
expect(await workspaceName.textContent()).toBe('Demo Workspace');
await assertCurrentWorkspaceFlavour('local', page);
});