30 lines
1.0 KiB
JavaScript
30 lines
1.0 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
import { loadAllWarehouseRecords } from './warehousePagination.ts'
|
|
|
|
test('loads every page for one warehouse type and preserves the type query', async () => {
|
|
const queries = []
|
|
const records = await loadAllWarehouseRecords('DOMESTIC', async (query) => {
|
|
queries.push(query)
|
|
if (query.page === 1) return { records: [{ id: 'domestic-1' }], pages: '2' }
|
|
return { records: [{ id: 'domestic-2' }], pages: '2' }
|
|
})
|
|
|
|
assert.deepEqual(queries, [
|
|
{ warehouseType: 'DOMESTIC', page: 1, size: 200 },
|
|
{ warehouseType: 'DOMESTIC', page: 2, size: 200 },
|
|
])
|
|
assert.deepEqual(records, [{ id: 'domestic-1' }, { id: 'domestic-2' }])
|
|
})
|
|
|
|
test('stops after the first page when the warehouse type has no later pages', async () => {
|
|
let requestCount = 0
|
|
const records = await loadAllWarehouseRecords('FBA', async () => {
|
|
requestCount += 1
|
|
return { records: [], pages: 0 }
|
|
})
|
|
|
|
assert.equal(requestCount, 1)
|
|
assert.deepEqual(records, [])
|
|
})
|