gongxiangp2/components/upload/upload-utils.test.ts

38 lines
1.5 KiB
TypeScript

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)
})
})