From 60d3e0c58ea4864d893e3a459b99800433d92953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Wed, 5 Aug 2026 13:26:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=92=E7=BB=9D=E5=BA=8F=E5=88=97=E5=B8=A7?= =?UTF-8?q?=E8=BF=9B=E5=85=A5=E5=8D=95=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 显式拒绝将图片序列映射为普通图片素材 补充上传媒体类型映射回归测试 --- .../image-editor/ImageCanvasUploadUtils.test.ts | 17 +++++++++++++++++ .../image-editor/ImageCanvasUploadUtils.ts | 5 ++++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/components/image-editor/ImageCanvasUploadUtils.test.ts diff --git a/src/components/image-editor/ImageCanvasUploadUtils.test.ts b/src/components/image-editor/ImageCanvasUploadUtils.test.ts new file mode 100644 index 000000000..f44758e86 --- /dev/null +++ b/src/components/image-editor/ImageCanvasUploadUtils.test.ts @@ -0,0 +1,17 @@ +import { describe, expect, it } from 'vitest'; + +import { resolveUploadedAssetKind } from './ImageCanvasUploadUtils'; + +describe('ImageCanvasUploadUtils', () => { + it('maps supported upload media types to persisted asset kinds', () => { + expect(resolveUploadedAssetKind('image')).toBe('image'); + expect(resolveUploadedAssetKind('video')).toBe('video'); + expect(resolveUploadedAssetKind('audio')).toBe('audio'); + }); + + it('rejects image sequences from the single-file upload path', () => { + expect(() => resolveUploadedAssetKind('image-sequence')).toThrow( + '序列帧素材不支持按单个媒体文件上传', + ); + }); +}); diff --git a/src/components/image-editor/ImageCanvasUploadUtils.ts b/src/components/image-editor/ImageCanvasUploadUtils.ts index da6b56967..84676937c 100644 --- a/src/components/image-editor/ImageCanvasUploadUtils.ts +++ b/src/components/image-editor/ImageCanvasUploadUtils.ts @@ -11,6 +11,9 @@ export function resolveUploadedAssetKind( return 'video'; case 'audio': return 'audio'; + case 'image-sequence': + throw new Error('序列帧素材不支持按单个媒体文件上传'); + case 'image': + return 'image'; } - return 'image'; }