47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { prepareTaskDetailImagePreview } from '@/lib/task-detail-image-browser'
|
|
|
|
const mockPreparePerformanceSurveyImagesInBrowser = jest.fn()
|
|
|
|
jest.mock('@/lib/performance-survey-image-browser', () => ({
|
|
preparePerformanceSurveyImagesInBrowser: (...args: unknown[]) => (
|
|
mockPreparePerformanceSurveyImagesInBrowser(...args)
|
|
),
|
|
}))
|
|
|
|
describe('task-detail-image-browser', () => {
|
|
beforeEach(() => {
|
|
jest.clearAllMocks()
|
|
mockPreparePerformanceSurveyImagesInBrowser.mockResolvedValue([{
|
|
file: new File(['preview'], 'photo-preview.webp', { type: 'image/webp' }),
|
|
mimeType: 'image/webp',
|
|
width: 800,
|
|
height: 600,
|
|
kind: 'preview',
|
|
sourceName: 'photo.jpg',
|
|
sourceIndex: 0,
|
|
sliceIndex: 0,
|
|
sliceCount: 1,
|
|
}])
|
|
})
|
|
|
|
test('将 AbortSignal 和 watchdog 超时透传到底层 Worker', async () => {
|
|
const controller = new AbortController()
|
|
const file = new File(['image'], 'photo.jpg', { type: 'image/jpeg' })
|
|
|
|
await prepareTaskDetailImagePreview(file, 'main', undefined, {
|
|
signal: controller.signal,
|
|
timeoutMs: 12_345,
|
|
})
|
|
|
|
expect(mockPreparePerformanceSurveyImagesInBrowser).toHaveBeenCalledWith(
|
|
[file],
|
|
undefined,
|
|
{
|
|
profile: 'task_detail_preview',
|
|
signal: controller.signal,
|
|
timeoutMs: 12_345,
|
|
},
|
|
)
|
|
})
|
|
})
|