feat(home-banner): 轮播支持 PC/移动两端分图与热区跳转,热区图悬浮放大;修复上传压缩压白透明 PNG
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
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)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user