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