test(discard): expect approval to reserve stock until PDA confirmation

This commit is contained in:
2026-10-05 12:00:09 +08:00
parent 7577650eee
commit 0c26e1e99d
@@ -349,8 +349,9 @@ export async function verifyDiscardApproval(context, token, body, discardNo, pro
proof.approvedNo = approvedNo
await review(approvedNo,'APPROVE')
const approved = await discardSnapshot(context,token,proof,approvedNo); proof.snapshots.approved = approved
const available = snapshot => snapshot.balances.reduce((sum,row)=>sum+Number(row.availablePackages),0)
require('正式废弃合同要求审批事务扣减一箱', approved.detail?.summary?.status === 'APPROVED' && available(base)-available(approved) === 1)
require('批准只保留锁箱且库存数量流水不变', approved.detail?.summary?.status === 'APPROVED'
&& sameStock(base, approved)
&& Number(approved.source?.availablePackages || 0) === Number(base.source.availablePackages) - 1)
await review(approvedNo,'APPROVE')
require('重复批准不会提前扣库存或新增历史', stable(await discardSnapshot(context,token,proof,approvedNo)) === stable(approved))
const reverse = await context.request('POST',query(`${root}/${encodeURIComponent(approvedNo)}/review`,{customerId:proof.customerId}),{decision:'REJECT',remark:context.marker},context.token,{})
@@ -365,7 +366,7 @@ export async function run(context) {
context.createdResources.phase4OverseasClientServices = {
marker: context.marker, relabelNo: null, transferNo: null, discardNo: null,
finalStatuses: { relabel: null, transfer: null, discard: null },
cleanup: 'Relabel remains pending; transfer review fixtures retained; discard rejection and approval-transaction deduction checked; no outbound, dispatch or delivery action is invoked',
cleanup: 'Relabel remains pending; transfer review fixtures retained; discard rejection and approval lock checked; actual stock deduction requires separate PDA confirmation; no outbound, dispatch or delivery action is invoked',
}
const token = await loginMerchant(context)
if (!token) return