test(admin): complete phase3 producer fixtures
This commit is contained in:
@@ -69,6 +69,7 @@ async function detail(context, caseId) {
|
||||
|
||||
export function selectCustomsFlow(createdResources) {
|
||||
const fixtures = [
|
||||
createdResources?.orders,
|
||||
createdResources?.orchestrationFixtures?.inboundMeasurement,
|
||||
createdResources?.orchestrationFixtures?.phase3Container,
|
||||
].filter(Boolean)
|
||||
@@ -84,6 +85,43 @@ export function selectCustomsFlow(createdResources) {
|
||||
return { fixture: null, container: null }
|
||||
}
|
||||
|
||||
async function ensureServiceCenterFlow(context, container) {
|
||||
const containerBookingId = id(container?.containerBookingId)
|
||||
const loadingPlanId = id(container?.loadingPlanId)
|
||||
let ocean = context.createdResources?.oceanBooking
|
||||
if (ocean?.finalStatus !== 'RELEASED'
|
||||
|| id(ocean?.containerBookingId) !== containerBookingId
|
||||
|| id(ocean?.loadingPlanId) !== loadingPlanId) {
|
||||
const oceanBookings = await import(new URL('./ocean-bookings.mjs', import.meta.url))
|
||||
await oceanBookings.run(context)
|
||||
ocean = context.createdResources?.oceanBooking
|
||||
}
|
||||
if (ocean?.finalStatus !== 'RELEASED'
|
||||
|| id(ocean?.containerBookingId) !== containerBookingId
|
||||
|| id(ocean?.loadingPlanId) !== loadingPlanId) {
|
||||
context.addStep(MODULE, '报关前订舱已放舱并绑定实际装柜柜次', null, false,
|
||||
`oceanStatus=${ocean?.finalStatus || 'missing'}, oceanContainer=${id(ocean?.containerBookingId) || 'missing'}, containerBookingId=${containerBookingId || 'missing'}`, OPTIONS)
|
||||
return false
|
||||
}
|
||||
|
||||
let truck = context.createdResources?.serviceCenterFlow
|
||||
if (truck?.finalStatus !== 'COMPLETED'
|
||||
|| id(truck?.oceanBookingId) !== id(ocean.id)
|
||||
|| id(truck?.containerBookingId) !== containerBookingId
|
||||
|| id(truck?.loadingPlanId) !== loadingPlanId) {
|
||||
const serviceCenter = await import(new URL('./service-center-flow.mjs', import.meta.url))
|
||||
await serviceCenter.run(context)
|
||||
truck = context.createdResources?.serviceCenterFlow
|
||||
}
|
||||
const ready = truck?.finalStatus === 'COMPLETED'
|
||||
&& id(truck?.oceanBookingId) === id(ocean.id)
|
||||
&& id(truck?.containerBookingId) === containerBookingId
|
||||
&& id(truck?.loadingPlanId) === loadingPlanId
|
||||
context.addStep(MODULE, '报关前拖车已完成并绑定实际装柜柜次', null, ready,
|
||||
`truckStatus=${truck?.finalStatus || 'missing'}, truckContainer=${id(truck?.containerBookingId) || 'missing'}, containerBookingId=${containerBookingId || 'missing'}`, OPTIONS)
|
||||
return ready
|
||||
}
|
||||
|
||||
export async function run(context) {
|
||||
const { fixture, container } = selectCustomsFlow(context.createdResources)
|
||||
const tenantId = id(fixture?.tenantId)
|
||||
@@ -97,6 +135,7 @@ export async function run(context) {
|
||||
`tenantId=${tenantId || 'missing'}, parentOrderId=${parentOrderId || 'missing'}, inboundId=${inboundId || 'missing'}, containerBookingId=${containerBookingId || 'missing'}, loadingPlanId=${loadingPlanId || 'missing'}, containerStatus=${container?.finalStatus || 'missing'}`, OPTIONS)
|
||||
return
|
||||
}
|
||||
if (!await ensureServiceCenterFlow(context, container)) return
|
||||
|
||||
const slicesPath = `/api/platform/v1/orders/container-bookings/${encodeURIComponent(containerBookingId)}/fulfillment-slices?tenantId=${encodeURIComponent(tenantId)}`
|
||||
const slicesResponse = await context.request('GET', slicesPath)
|
||||
|
||||
Reference in New Issue
Block a user