gongxiangp2/lib/__tests__/public-display.test.ts
2026-05-07 16:37:22 +08:00

47 lines
1.6 KiB
TypeScript

/** @jest-environment node */
import {
buildMaterialPublicDisplayPath,
buildPublicDisplayObjectPath,
buildPublicDisplayUrl,
buildTaskDetailPublicDisplayPath,
buildWhiteBackgroundPublicDisplayPath,
} from '@/lib/public-display'
describe('public display helpers', () => {
const originalEnv = { ...process.env }
beforeEach(() => {
process.env.S3_PUBLIC_DOMAIN = 'https://s3.jiansun.vip/gongxiangpan'
})
afterEach(() => {
process.env = { ...originalEnv }
})
test('应统一生成 public-display 对象路径', () => {
expect(buildPublicDisplayObjectPath('/task-detail/material-1/main/cover.webp')).toBe(
'public-display/task-detail/material-1/main/cover.webp',
)
expect(buildPublicDisplayObjectPath('white-background\\material-1\\sku-1\\front.webp')).toBe(
'public-display/white-background/material-1/sku-1/front.webp',
)
})
test('应基于当前 S3_PUBLIC_DOMAIN 生成 public-display 公网链接', () => {
expect(buildPublicDisplayUrl('task-detail/material-1/detail/detail-1.webp')).toBe(
'https://s3.jiansun.vip/gongxiangpan/public-display/task-detail/material-1/detail/detail-1.webp',
)
})
test('应提供展示图常用路径构造函数', () => {
expect(buildMaterialPublicDisplayPath('preview-1.webp')).toBe('materials/preview-1.webp')
expect(buildTaskDetailPublicDisplayPath('material-1', 'detail', 'detail-1.webp')).toBe(
'task-detail/material-1/detail/detail-1.webp',
)
expect(
buildWhiteBackgroundPublicDisplayPath('material-1', 'sku-1', 'other/01-side.webp'),
).toBe('white-background/material-1/sku-1/other/01-side.webp')
})
})