Files
baiyue-firstleg/scripts/admin-test-env-modules/coload-groups-contract.test.mjs
T

43 lines
2.1 KiB
JavaScript
Raw Normal View History

2026-08-29 11:10:28 +08:00
import test from 'node:test'
import assert from 'node:assert/strict'
import { readFile } from 'node:fs/promises'
test('同柜不可拆组HTTP验收锁定公开接口与防绕过矩阵', async () => {
const source = await readFile(new URL('./coload-groups.mjs', import.meta.url), 'utf8')
for (const fragment of [
'/api/platform/v1/first-leg/coload-groups',
'/api/platform/v1/first-leg/coload-groups/batch-query',
'/group-assignments',
'/inbound-assignments',
'/push-preload',
'创建同键同载荷精确重放',
'创建同键异载荷返回并发冲突',
'不同目的仓港仍可创建同柜不可拆组',
'跨国内仓或跨渠道创建整组被拒绝且不落组',
'批查只返回组内订单且长ID保持字符串',
'/recommend',
'智能推荐容量足够时整组全取',
'智能推荐不会只取同柜组部分成员或部分箱数',
2026-08-29 11:10:28 +08:00
'组成员不能单独调整箱数',
'组成员不能单独删除',
'整组原子移除',
'目标同柜组整体超容时智能推荐跳过整组',
'整组容量不足时智能推荐全不取且不产生部分成员',
2026-08-29 11:42:52 +08:00
'推荐候选仅含当前目标同柜组且成员身份精确',
'ACTIVE同柜组整组取消成功',
'同柜组PDA原子批次记录部分拣货异常',
'同柜组任一成员短拣时完成被拒绝',
'短拣完成拒绝后任务、父子树和组锁零漂移',
'同柜组足量完成命令可靠受理',
2026-08-29 11:59:11 +08:00
'足量完成整组已消费、全部入库完成且不生成余量子单',
2026-08-29 11:42:52 +08:00
'未成组普通单推送预装不回归',
'未成组普通单仍按既有规则生成唯一余量子单',
'拆分余量子单仍可与同仓同渠道订单创建同柜组',
'拆分身份不影响当前WAIT_SPLIT片段完整纳组',
'拆分余量建组不改写既有父子数量事实',
2026-08-29 11:10:28 +08:00
]) assert.match(source, new RegExp(fragment.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')))
assert.doesNotMatch(source, /跨仓库渠道或目的仓港创建整组被拒绝/)
assert.doesNotMatch(source, /已有父子拆分订单创建同柜组被拒绝/)
2026-08-29 11:10:28 +08:00
})