test: harden admin acceptance fixtures
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user