47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
import {
|
|
getContentDisplayImageSrcset,
|
|
getContentDisplayImageUrl,
|
|
getContentLightboxImageUrl,
|
|
getGalleryImageSizes
|
|
} from '../lib/content-image-urls.js'
|
|
|
|
test('본문 이미지 URL은 업로드 원본이면 body-1600 파생 이미지로 변환한다', () => {
|
|
assert.equal(
|
|
getContentDisplayImageUrl('/uploads/posts/2026/07/sample.jpg'),
|
|
'/uploads/posts/2026/07/thumbs/sample-body-1600.webp?v=20260702-1'
|
|
)
|
|
})
|
|
|
|
test('라이트박스 이미지 URL은 업로드 원본이면 body-2560 파생 이미지로 변환한다', () => {
|
|
assert.equal(
|
|
getContentLightboxImageUrl('/uploads/posts/2026/07/sample.png'),
|
|
'/uploads/posts/2026/07/thumbs/sample-body-2560.webp?v=20260702-1'
|
|
)
|
|
})
|
|
|
|
test('외부 이미지는 원본 URL을 그대로 사용하고 srcset을 만들지 않는다', () => {
|
|
const url = 'https://example.com/image.jpg'
|
|
|
|
assert.equal(getContentDisplayImageUrl(url), url)
|
|
assert.equal(getContentLightboxImageUrl(url), url)
|
|
assert.equal(getContentDisplayImageSrcset(url), '')
|
|
})
|
|
|
|
test('본문 이미지 srcset은 720과 1600 파생 이미지를 함께 제공한다', () => {
|
|
assert.equal(
|
|
getContentDisplayImageSrcset('/uploads/posts/2026/07/sample.webp'),
|
|
[
|
|
'/uploads/posts/2026/07/thumbs/sample-body-720.webp?v=20260702-1 720w',
|
|
'/uploads/posts/2026/07/thumbs/sample-body-1600.webp?v=20260702-1 1600w'
|
|
].join(', ')
|
|
)
|
|
})
|
|
|
|
test('갤러리 sizes는 행 이미지 개수 기준으로 계산한다', () => {
|
|
assert.equal(getGalleryImageSizes(1), '(max-width: 768px) 100vw, 100vw')
|
|
assert.equal(getGalleryImageSizes(2), '(max-width: 768px) 100vw, 50vw')
|
|
assert.equal(getGalleryImageSizes(3), '(max-width: 768px) 100vw, 33vw')
|
|
})
|