import { describe, expect, test } from 'bun:test' import { initializePostBodyMarkdownEditorVditor } from './post-body-markdown-editor-vditor-init' function createDeferred() { let resolve!: (value: T) => void let reject!: (reason?: unknown) => void const promise = new Promise((res, rej) => { resolve = res reject = rej }) return { promise, resolve, reject } } describe('PostBodyMarkdownEditor Vditor init helper', () => { test('卸载标记已置位时,import resolve 后不触发 mount', async () => { const deferred = createDeferred<{ default: new () => unknown }>() let unmounted = false let readyCalls = 0 const task = initializePostBodyMarkdownEditorVditor({ importVditor: () => deferred.promise, isUnmounted: () => unmounted, onReady: () => { readyCalls += 1 }, }) unmounted = true deferred.resolve({ default: class MockVditor {} }) await task expect(readyCalls).toBe(0) }) test('import reject 时不抛出并走错误处理回调', async () => { const error = new Error('mock import failed') const handled: unknown[] = [] await initializePostBodyMarkdownEditorVditor({ importVditor: async () => { throw error }, isUnmounted: () => false, onReady: () => { throw new Error('should not call onReady') }, onError: (err) => handled.push(err), }) expect(handled).toEqual([error]) }) })