Files
hfb_sys/frontend/src/shared/utils/imageUpload.spec.ts
T

33 lines
1.1 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { resolveUploadEncoding } from './imageUpload'
describe('resolveUploadEncoding', () => {
it('带透明通道的图必须输出 PNG,避免透明区域被压成实色', () => {
const encoding = resolveUploadEncoding('home-banner', true)
expect(encoding.outputType).toBe('image/png')
expect(encoding.extension).toBe('png')
expect(encoding.maxSide).toBe(1920)
expect(encoding.quality).toBe(0.84)
})
it('不透明图继续用 WebP 压缩', () => {
const encoding = resolveUploadEncoding('home-banner', false)
expect(encoding.outputType).toBe('image/webp')
expect(encoding.extension).toBe('webp')
})
it('未登记的 scene 使用兜底参数', () => {
const encoding = resolveUploadEncoding('unknown-scene', false)
expect(encoding.maxSide).toBe(1600)
expect(encoding.quality).toBe(0.82)
})
it('头像等小尺寸场景保留各自的边长上限', () => {
expect(resolveUploadEncoding('avatar', false).maxSide).toBe(512)
expect(resolveUploadEncoding('qrcode', true).maxSide).toBe(2560)
})
})