56 lines
2.0 KiB
TypeScript
56 lines
2.0 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'
|
|
delete process.env.S3_FILE_PATH
|
|
})
|
|
|
|
afterEach(() => {
|
|
process.env = { ...originalEnv }
|
|
})
|
|
|
|
test('builds normalized public-display object paths', () => {
|
|
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('builds public-display URLs from S3_PUBLIC_DOMAIN', () => {
|
|
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('includes S3_FILE_PATH in public-display URLs when configured', () => {
|
|
process.env.S3_FILE_PATH = '由壹点AI/'
|
|
|
|
expect(buildPublicDisplayUrl('white-background/material-1/sku-1/front.webp')).toBe(
|
|
'https://s3.jiansun.vip/gongxiangpan/由壹点AI/public-display/white-background/material-1/sku-1/front.webp',
|
|
)
|
|
})
|
|
|
|
test('builds common display relative paths', () => {
|
|
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')
|
|
})
|
|
})
|