perf(admin): streamline smart loading workbench
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { loadSmartLoadingPlanCoLoadGroups } from './smartLoadingPlanGroups'
|
||||
import type { SmartLoadingPlan } from './types'
|
||||
|
||||
@@ -13,24 +13,22 @@ const plan = {
|
||||
id: '99', planNo: 'LP-99', status: 'EDITING', bookingId: '88', containerNo: null, voyageNo: null, version: 2,
|
||||
canAssign: true, canEdit: true, blockedReason: null, finalCompletionStatus: 'NOT_STARTED', pdaTaskId: null,
|
||||
pdaTaskStatus: null, pdaTaskVersion: null,
|
||||
coLoadGroups: [{ groupId: '9001', groupNo: 'CLG-9001', lockedPlanId: '99', memberOrderCount: 2,
|
||||
inboundFragmentCount: 2, fullPackageCount: 12, memberInboundIds: ['201', '202'] }],
|
||||
items: [item, { ...item, id: '702', inboundId: '202', inboundDetailId: '802', orderId: '302', orderNo: 'ORD-2', inboundCode: 'IN-202', packageCount: 7 }],
|
||||
} satisfies SmartLoadingPlan
|
||||
|
||||
describe('smart loading plan co-load groups', () => {
|
||||
it('rebuilds the locked group from the current inbound association contract', async () => {
|
||||
const lookup = vi.fn(async (inboundId: string) => ({
|
||||
inboundId, inboundCode: `IN-${inboundId}`, loadingPlanId: '99', coLoadGroupId: '9001', coLoadGroupNo: 'CLG-9001', items: [],
|
||||
}))
|
||||
const result = await loadSmartLoadingPlanCoLoadGroups(plan, lookup)
|
||||
expect(lookup).toHaveBeenCalledTimes(2)
|
||||
it('uses the group snapshot already returned with the plan without per-inbound requests', () => {
|
||||
const result = loadSmartLoadingPlanCoLoadGroups(plan)
|
||||
expect(result.get('201')).toEqual({
|
||||
groupId: '9001', groupNo: 'CLG-9001', lockedPlanId: '99', memberOrderCount: 2, inboundFragmentCount: 2, fullPackageCount: 12,
|
||||
})
|
||||
expect(result.get('202')).toBe(result.get('201'))
|
||||
})
|
||||
|
||||
it('leaves ordinary plan items ungrouped', async () => {
|
||||
const result = await loadSmartLoadingPlanCoLoadGroups(plan, async (inboundId) => ({ inboundId, inboundCode: `IN-${inboundId}`, items: [] }))
|
||||
it('leaves ordinary plan items ungrouped', () => {
|
||||
const result = loadSmartLoadingPlanCoLoadGroups({ ...plan, coLoadGroups: [] })
|
||||
expect(result.size).toBe(0)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user