diff --git a/packages/frontend/core/src/modules/workspace/properties/adapter.ts b/packages/frontend/core/src/modules/workspace/properties/adapter.ts index 6af26b6ab5..c1715e78c4 100644 --- a/packages/frontend/core/src/modules/workspace/properties/adapter.ts +++ b/packages/frontend/core/src/modules/workspace/properties/adapter.ts @@ -111,8 +111,7 @@ export class WorkspacePropertiesAdapter { } getJournalPageDateString(id: string) { - this.ensurePageProperties(id); - return this.pageProperties[id].system[PageSystemPropertyId.Journal].value; + return this.pageProperties[id]?.system[PageSystemPropertyId.Journal]?.value; } setJournalPageDateString(id: string, date: string) { @@ -127,9 +126,9 @@ export class WorkspacePropertiesAdapter { // page tags could be reactive getPageTags(pageId: string) { - this.ensurePageProperties(pageId); const tags = - this.pageProperties[pageId].system[PageSystemPropertyId.Tags].value; + this.getPageProperties(pageId)?.system[PageSystemPropertyId.Tags].value ?? + []; const optionsMap = Object.fromEntries(this.tagOptions.map(o => [o.id, o])); return tags.map(tag => optionsMap[tag]).filter((t): t is TagOption => !!t); } diff --git a/tests/affine-local/e2e/blocksuite/editor.spec.ts b/tests/affine-local/e2e/blocksuite/editor.spec.ts index d1e889d05d..40b4e0568f 100644 --- a/tests/affine-local/e2e/blocksuite/editor.spec.ts +++ b/tests/affine-local/e2e/blocksuite/editor.spec.ts @@ -18,10 +18,10 @@ const addDatabase = async (page: Page) => { }; test('database is useable', async ({ page }) => { + test.slow(); await openHomePage(page); await waitForEditorLoad(page); await clickNewPageButton(page); - await waitForEditorLoad(page); const title = getBlockSuiteEditorTitle(page); await title.pressSequentially('test title'); await page.keyboard.press('Enter'); @@ -32,7 +32,6 @@ test('database is useable', async ({ page }) => { await page.reload(); await waitForEditorLoad(page); await clickNewPageButton(page); - await waitForEditorLoad(page); const title2 = getBlockSuiteEditorTitle(page); await title2.pressSequentially('test title2'); await page.waitForTimeout(500); @@ -66,9 +65,11 @@ test('link page is useable', async ({ page }) => { await page.keyboard.press('1'); await page.keyboard.press('Enter'); const link = page.locator('.affine-reference'); - await page.waitForTimeout(500); await expect(link).toBeVisible(); await page.click('.affine-reference'); await page.waitForTimeout(500); - expect(await title.innerText()).toBe('page1'); + + await expect( + page.locator('.doc-title-container:has-text("page1")') + ).toBeVisible(); }); diff --git a/tests/affine-local/e2e/local-first-favorites-items.spec.ts b/tests/affine-local/e2e/local-first-favorites-items.spec.ts index 52d9024f0f..86de392aa2 100644 --- a/tests/affine-local/e2e/local-first-favorites-items.spec.ts +++ b/tests/affine-local/e2e/local-first-favorites-items.spec.ts @@ -7,6 +7,7 @@ import { getBlockSuiteEditorTitle, getPageByTitle, waitForEditorLoad, + waitForEmptyEditor, } from '@affine-test/kit/utils/page-logic'; import { expect } from '@playwright/test'; @@ -101,6 +102,10 @@ test("Deleted page's reference will not be shown in sidebar", async ({ // goto "Another page" await page.locator('.affine-reference-title').click(); + await expect( + page.locator('.doc-title-container:has-text("Another page")') + ).toBeVisible(); + // delete the page await clickPageMoreActions(page); @@ -131,7 +136,7 @@ test('Add new favorite page via sidebar', async ({ page }) => { await openHomePage(page); await waitForEditorLoad(page); await page.getByTestId('slider-bar-add-favorite-button').first().click(); - await waitForEditorLoad(page); + await waitForEmptyEditor(page); // enter random page title await getBlockSuiteEditorTitle(page).fill('this is a new fav page'); diff --git a/tests/kit/utils/page-logic.ts b/tests/kit/utils/page-logic.ts index d6410c9a6b..a0b8d46a40 100644 --- a/tests/kit/utils/page-logic.ts +++ b/tests/kit/utils/page-logic.ts @@ -19,7 +19,12 @@ export async function clickNewPageButton(page: Page) { await page.getByTestId('sidebar-new-page-button').click({ delay: 100, }); - await waitForEditorLoad(page); + await expect(page.locator('.doc-title-container-empty')).toBeVisible(); + await waitForEmptyEditor(page); +} + +export async function waitForEmptyEditor(page: Page) { + await expect(page.locator('.doc-title-container-empty')).toBeVisible(); } export function getBlockSuiteEditorTitle(page: Page) {