UNPKG

@sanity/sdk

Version:
48 lines (38 loc) 1.45 kB
import {of} from 'rxjs' import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest' import {createDocumentHandle} from '../config/handles' import {createSanityInstance, type SanityInstance} from '../store/createSanityInstance' import {type StateSource} from '../store/createStateSourceAction' import {getPreviewState} from './getPreviewState' import {type PreviewValue, type ValuePending} from './previewStore' import {resolvePreview} from './resolvePreview' vi.mock('./getPreviewState') describe('resolvePreview', () => { let instance: SanityInstance beforeEach(() => { vi.resetAllMocks() // Create a mock that returns the correct ValuePending type vi.mocked(getPreviewState).mockReturnValue({ observable: of({ data: {title: 'test'}, isPending: false, } as ValuePending<PreviewValue>), } as StateSource<ValuePending<PreviewValue>>) instance = createSanityInstance({projectId: 'p', dataset: 'd'}) }) afterEach(() => { instance.dispose() }) it('resolves a preview and returns the first emitted value with results', async () => { const docHandle = createDocumentHandle({ documentId: 'doc123', documentType: 'movie', }) const result = await resolvePreview(instance, docHandle) expect(getPreviewState).toHaveBeenCalledWith(instance, docHandle) expect(result).toEqual({ data: {title: 'test'}, isPending: false, }) }) })