import { extractSpuFromFileName, getMainFileAccept, isValidMainFileType, } from '@/components/upload/upload-utils' describe('upload-utils video types', () => { test('抖音新视频类型只接受视频文件', () => { const validVideo = new File(['video'], 'sample.mp4', { type: 'video/mp4' }) const invalidZip = new File(['zip'], 'sample.zip', { type: 'application/zip' }) expect(isValidMainFileType(validVideo, '抖音-千川素材')).toBe(true) expect(isValidMainFileType(validVideo, '抖音-账号维护')).toBe(true) expect(isValidMainFileType(invalidZip, '抖音-千川素材')).toBe(false) expect(isValidMainFileType(invalidZip, '抖音-账号维护')).toBe(false) }) test('新视频类型的 accept 与原主图视频保持一致', () => { expect(getMainFileAccept('淘系-主图视频')).toBe('.mp4,.mov,.avi,.mkv,.mts,.m4v') expect(getMainFileAccept('抖音-千川素材')).toBe('.mp4,.mov,.avi,.mkv,.mts,.m4v') expect(getMainFileAccept('抖音-账号维护')).toBe('.mp4,.mov,.avi,.mkv,.mts,.m4v') }) test.each([ ['抖音素材-624-456.mp4', ''], ['视频-624-470.mp4', ''], ['624-456.mp4', ''], ['GBPM-SN0204-展示.mp4', ''], ['DF-A3DZ0008.mp4', 'DF-A3DZ0008'], ['626DNZ0385-1.mp4', '626DNZ0385-1'], ['XY-2024-001.mp4', 'XY-2024-001'], ['GBGJ-DNZ0366+GBGJ-SJ0251.mp4', 'GBGJ-DNZ0366+GBGJ-SJ0251'], ['GBPM-SN0204K12.mp4', 'GBPM-SN0204K12'], ])('从 %s 只提取可确认的 SPU', (fileName, expected) => { expect(extractSpuFromFileName(fileName)).toBe(expected) }) })