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]) })