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', '智能推荐容量足够时整组全取', '智能推荐不会只取同柜组部分成员或部分箱数', '组成员不能单独调整箱数', '组成员不能单独删除', '整组原子移除', '目标同柜组整体超容时智能推荐跳过整组', '整组容量不足时智能推荐全不取且不产生部分成员', '推荐候选仅含当前目标同柜组且成员身份精确', 'ACTIVE同柜组整组取消成功', '同柜组PDA原子批次记录部分拣货异常', '同柜组任一成员短拣时完成被拒绝', '短拣完成拒绝后任务、父子树和组锁零漂移', '同柜组足量完成命令可靠受理', '足量完成整组已消费、全部入库完成且不生成余量子单', '未成组普通单推送预装不回归', '未成组普通单仍按既有规则生成唯一余量子单', '拆分余量子单仍可与同仓同渠道订单创建同柜组', '拆分身份不影响当前WAIT_SPLIT片段完整纳组', '拆分余量建组不改写既有父子数量事实', ]) assert.match(source, new RegExp(fragment.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'))) assert.doesNotMatch(source, /跨仓库渠道或目的仓港创建整组被拒绝/) assert.doesNotMatch(source, /已有父子拆分订单创建同柜组被拒绝/) })