import assert from 'node:assert/strict' import { readFileSync } from 'node:fs' import test from 'node:test' const acceptance = readFileSync(new URL('../admin-test-env-acceptance.mjs', import.meta.url), 'utf8') const orders = readFileSync(new URL('./orders.mjs', import.meta.url), 'utf8') const measurement = readFileSync(new URL('./inbound-measurement.mjs', import.meta.url), 'utf8') const runner = readFileSync(new URL('../it-test-wait-split-bulk.mjs', import.meta.url), 'utf8') test('单票随机箱数严格分配到各 SKU 并限制为1到1000', () => { assert.match(acceptance, /--wait-split-package-count /) assert.match(acceptance, /wait-split-package-count必须是1-1000的整数或0/) assert.match(acceptance, /packageCounts\.push\(remaining\)/) assert.match(acceptance, /Math\.ceil\(totalPackageCount \/ 30\)/) assert.match(orders, /packageCounts\[index\] \|\| packageCountPerSku/) assert.match(measurement, /detailPackageCounts\.reduce\(\(sum, count\) => sum \+ count, 0\)/) assert.match(measurement, /detailPackageCounts\.slice\(0, detailIndex\)/) }) test('随机线路只固定义乌仓并从客户真实可计价候选选择', () => { assert.match(acceptance, /route-mode /) assert.match(acceptance, /random线路必须固定起运仓名称/) assert.match(orders, /Client 查询固定起运仓随机渠道池/) assert.match(orders, /findPricedOrderRoute\(\{/) assert.match(orders, /Client 登录企业与指定客户名称一致/) assert.doesNotMatch(runner, /channel-name|channel-code/) }) test('八千票执行器逐票记录且失败后继续', () => { assert.match(runner, /positiveInteger\(values\.get\('count'\), 8000/) assert.match(runner, /positiveInteger\(values\.get\('box-max'\), 300/) assert.match(runner, /randomInt\(boxMin, boxMax \+ 1\)/) assert.match(runner, /Math\.ceil\(packageCount \/ 30\)/) assert.match(runner, /for \(let offset = 0; offset < count; offset \+= 1\)/) assert.match(runner, /event: 'planned'/) assert.match(runner, /event: 'result'/) assert.match(runner, /options\.markerNamespace = workerId/) assert.match(runner, /failureDirectory/) assert.match(runner, /summary\.failed \+= 1/) assert.match(runner, /summary\.attempted % batchSize === 0/) })