diff --git a/packages/frontend/core/src/blocksuite/utils/markdown-utils.spec.ts b/packages/frontend/core/src/blocksuite/utils/markdown-utils.spec.ts new file mode 100644 index 0000000000000..ea3c60eda2efb --- /dev/null +++ b/packages/frontend/core/src/blocksuite/utils/markdown-utils.spec.ts @@ -0,0 +1,34 @@ +import 'fake-indexeddb/auto'; + +import { getStoreManager } from '@affine/core/blocksuite/manager/store'; +import { Text } from '@blocksuite/affine/store'; +import { TestWorkspace } from '@blocksuite/affine/store/test'; +import { describe, expect, test } from 'vitest'; + +import { insertFromMarkdown } from './markdown-utils'; + +const extensions = getStoreManager().config.init().value.get('store'); + +describe('markdown-utils', () => { + test('insertFromMarkdown does not create docs in the target workspace', async () => { + const collection = new TestWorkspace({ id: 'test' }); + collection.meta.initialize(); + + const store = collection.createDoc('page0').getStore({ extensions }); + store.load(); + const rootId = store.addBlock('affine:page', { + title: new Text(''), + }); + const noteId = store.addBlock('affine:note', {}, rootId); + + await insertFromMarkdown( + undefined, + ['- Summary item', '## Decisions', '- Ship it'].join('\n'), + store, + noteId, + 0 + ); + + expect(collection.meta.docMetas.map(meta => meta.id)).toEqual(['page0']); + }); +}); diff --git a/packages/frontend/core/src/blocksuite/utils/markdown-utils.ts b/packages/frontend/core/src/blocksuite/utils/markdown-utils.ts index 464a8285279f0..a87f9c8779478 100644 --- a/packages/frontend/core/src/blocksuite/utils/markdown-utils.ts +++ b/packages/frontend/core/src/blocksuite/utils/markdown-utils.ts @@ -153,31 +153,10 @@ export const markdownToSnapshot = async ( pageId: store.id, }; - const page = await markdownAdapter.toDoc(payload); - - if (page) { - const pageSnapshot = transformer.docToSnapshot(page); - if (pageSnapshot) { - const snapshot: SliceSnapshot = { - type: 'slice', - content: [ - pageSnapshot.blocks.children.find( - b => b.flavour === 'affine:note' - ) as BlockSnapshot, - ], - workspaceId: payload.workspaceId, - pageId: payload.pageId, - }; - - return { - snapshot, - transformer, - }; - } - } + const snapshot = await markdownAdapter.toSliceSnapshot(payload); return { - snapshot: null, + snapshot, transformer, }; };