에디터 미디어 선택 대상 계산 분리
This commit is contained in:
@@ -3,13 +3,17 @@ import test from 'node:test'
|
||||
import {
|
||||
buildMediaPickerPageItems,
|
||||
buildMediaPickerRangeLabel,
|
||||
buildMediaPickerUploadHint,
|
||||
createMediaBlockMarkdown,
|
||||
createDefaultMediaPickerPagination,
|
||||
findUploadSizeLimitError,
|
||||
formatMediaFileSize,
|
||||
getGallerySelectionOrder,
|
||||
getMediaItemKind,
|
||||
getMediaPickerAcceptForTarget,
|
||||
getMediaPickerKindForTarget,
|
||||
getMediaPickerPreviewUrl,
|
||||
isGalleryMediaPickerTarget,
|
||||
isMediaItemSelectableForTarget,
|
||||
isUploadFileAllowedForMediaTarget,
|
||||
normalizeMediaPickerResponse,
|
||||
@@ -60,6 +64,38 @@ test('업로드 파일은 선택 대상별 MIME 타입으로 허용 여부를
|
||||
assert.equal(isUploadFileAllowedForMediaTarget({ type: 'image/png' }, 'file'), false)
|
||||
})
|
||||
|
||||
test('미디어 선택 대상별 입력 accept와 API kind를 계산한다', () => {
|
||||
assert.equal(getMediaPickerAcceptForTarget('image'), 'image/*')
|
||||
assert.equal(getMediaPickerAcceptForTarget('gallery'), 'image/*')
|
||||
assert.equal(getMediaPickerAcceptForTarget('video'), 'video/*')
|
||||
assert.equal(getMediaPickerAcceptForTarget('audio'), 'audio/*')
|
||||
assert.equal(getMediaPickerAcceptForTarget('file'), '.pdf,.zip,.txt,.csv,.docx,.xlsx,.pptx')
|
||||
|
||||
assert.equal(getMediaPickerKindForTarget('image'), 'image')
|
||||
assert.equal(getMediaPickerKindForTarget('active-gallery'), 'image')
|
||||
assert.equal(getMediaPickerKindForTarget('video'), 'video')
|
||||
assert.equal(getMediaPickerKindForTarget('file'), 'file')
|
||||
assert.equal(getMediaPickerKindForTarget('unknown'), 'all')
|
||||
})
|
||||
|
||||
test('미디어 선택 대상별 갤러리 여부와 업로드 안내 문구를 계산한다', () => {
|
||||
const uploadSizeLimits = buildDefaultUploadSizeLimits({
|
||||
image: 10485760,
|
||||
video: 209715200,
|
||||
audio: 52428800,
|
||||
document: 52428800
|
||||
})
|
||||
|
||||
assert.equal(isGalleryMediaPickerTarget('gallery'), true)
|
||||
assert.equal(isGalleryMediaPickerTarget('active-gallery'), true)
|
||||
assert.equal(isGalleryMediaPickerTarget('image'), false)
|
||||
assert.equal(buildMediaPickerUploadHint('gallery', uploadSizeLimits), '여러 이미지를 한 번에 선택할 수 있습니다. (최대 10MB)')
|
||||
assert.equal(buildMediaPickerUploadHint('video', uploadSizeLimits), 'MP4, WebM, MOV 비디오를 업로드할 수 있습니다. (최대 200MB)')
|
||||
assert.equal(buildMediaPickerUploadHint('audio', uploadSizeLimits), 'MP3, WAV, OGG, M4A 오디오를 업로드할 수 있습니다. (최대 50MB)')
|
||||
assert.equal(buildMediaPickerUploadHint('file', uploadSizeLimits), 'PDF, ZIP, 문서 파일을 업로드할 수 있습니다. (최대 50MB)')
|
||||
assert.equal(buildMediaPickerUploadHint('image', uploadSizeLimits), '단일 이미지가 본문에 삽입됩니다. (최대 10MB)')
|
||||
})
|
||||
|
||||
test('미디어 항목으로 fenced 미디어 블록을 만든다', () => {
|
||||
assert.deepEqual(createMediaBlockMarkdown('video', {
|
||||
url: '/uploads/a.mp4',
|
||||
|
||||
Reference in New Issue
Block a user