test: harden admin acceptance fixtures

This commit is contained in:
2026-09-24 01:24:22 +08:00
parent ead27a6a11
commit a0cf38f7b8
4 changed files with 39 additions and 10 deletions
@@ -203,10 +203,25 @@ async function relabelFlow(context, overseasToken, warehouseId, suffix, terminal
...Object.values(currentPda?.generatedPalletsByInbound || {})
.flatMap((items) => Array.isArray(items) ? items.map((item) => id(item?.palletId)) : []),
].filter(Boolean))
const producerFixtures = context.createdResources?.phase4InboundProducerFixtures
const protectedInboundCodes = new Set((producerFixtures?.containers || [])
.map((item) => id(item?.inboundCode)).filter(Boolean))
const protectedInboundIds = new Set((producerFixtures?.containers || [])
.flatMap((item) => [item?.inboundId, item?.sourceInboundId, item?.inboundOrderId].map(id))
.filter(Boolean))
const isProtected = (candidate) => {
if (protectedInboundIds.has(id(candidate?.inboundOrderId))
|| protectedInboundCodes.has(id(candidate?.inboundCode))) return true
return (Array.isArray(candidate?.positions) ? candidate.positions : []).some((position) =>
protectedPalletIds.has(id(position?.palletId))
|| protectedPalletIds.has(id(position?.pallet?.id))
|| protectedPalletIds.has(id(position?.pallet?.palletId))
|| [...protectedPalletIds].includes(id(position?.sourcePalletId)))
}
const source = candidates.find((candidate) => id(candidate.inboundOrderId)
&& id(candidate.inventoryBalanceId)
&& id(candidate.destinationFbaWarehouseCode)
&& !candidate.positions?.some((position) => protectedPalletIds.has(id(position?.palletId)))
&& !isProtected(candidate)
&& candidate.positions?.some((position) => id(position.positionId) && Number(position.availablePackages) > 0))
if (source) source.position = source.positions.find((position) => id(position.positionId)
&& Number(position.availablePackages) > 0)