27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
import { buildAdminPaginationItems, clampAdminPage } from '../lib/admin-pagination.js'
|
|
|
|
test('관리자 페이지 값을 유효 범위로 보정한다', () => {
|
|
assert.equal(clampAdminPage(0, 10), 1)
|
|
assert.equal(clampAdminPage(12, 10), 10)
|
|
assert.equal(clampAdminPage('4', 10), 4)
|
|
assert.equal(clampAdminPage('abc', 10), 1)
|
|
})
|
|
|
|
test('전체 페이지가 적으면 모든 페이지 번호를 표시한다', () => {
|
|
assert.deepEqual(buildAdminPaginationItems(3, 7), [1, 2, 3, 4, 5, 6, 7])
|
|
})
|
|
|
|
test('첫 구간에서는 앞쪽 페이지를 펼치고 끝 페이지를 유지한다', () => {
|
|
assert.deepEqual(buildAdminPaginationItems(2, 12), [1, 2, 3, 4, 5, 'ellipsis-5-12', 12])
|
|
})
|
|
|
|
test('중간 구간에서는 현재 페이지 주변과 양 끝을 유지한다', () => {
|
|
assert.deepEqual(buildAdminPaginationItems(6, 12), [1, 'ellipsis-1-5', 5, 6, 7, 'ellipsis-7-12', 12])
|
|
})
|
|
|
|
test('끝 구간에서는 첫 페이지와 뒤쪽 페이지를 펼친다', () => {
|
|
assert.deepEqual(buildAdminPaginationItems(11, 12), [1, 'ellipsis-1-8', 8, 9, 10, 11, 12])
|
|
})
|