优化优化
This commit is contained in:
@@ -21,6 +21,7 @@ import {
|
||||
listLastMileOrders,
|
||||
reviewCargoDiscard,
|
||||
transferLastMileOrders,
|
||||
updateLastMileOrderPalletMerge,
|
||||
getLastMileOrderManualNodes,
|
||||
updateLastMileOrderHold,
|
||||
updateLastMileOrderManualNodes,
|
||||
@@ -38,7 +39,7 @@ vi.mock('../api/lastMileOrders', () => ({
|
||||
changeContainerReceivingWarehouse: vi.fn(),
|
||||
createManualInboundPlan: vi.fn(), convertLastMileContainerToInboundPlans: vi.fn(), getContainerInboundPlanPreview: vi.fn(), transferLastMileOrders: vi.fn(),
|
||||
getLastMileOrderManualNodes: vi.fn(), updateLastMileOrderHold: vi.fn(), updateLastMileOrderManualNodes: vi.fn(),
|
||||
reviewCargoDiscard: vi.fn(),
|
||||
reviewCargoDiscard: vi.fn(), updateLastMileOrderPalletMerge: vi.fn(),
|
||||
}))
|
||||
|
||||
class ResizeObserverStub implements ResizeObserver { observe() {} unobserve() {} disconnect() {} }
|
||||
@@ -1189,3 +1190,40 @@ describe('LastMileOrdersView pending order and container conversion', () => {
|
||||
expect(routerPush).toHaveBeenCalledWith({ name: 'overseas-return-inventory', query: expect.objectContaining({ packing: '1', returnNos: 'RETURN-1' }) })
|
||||
})
|
||||
})
|
||||
|
||||
describe('tail-leg pallet merge toolbar', () => {
|
||||
beforeEach(() => {
|
||||
canAccess.mockImplementation(() => true)
|
||||
vi.mocked(listLastMileOrders).mockResolvedValue({ records: [], page: 1, size: 10, total: 0, pages: 0 })
|
||||
vi.mocked(updateLastMileOrderPalletMerge).mockReset().mockResolvedValue(null)
|
||||
})
|
||||
it('submits the selected group and cancellation with the customer scope', async () => {
|
||||
vi.spyOn(ElMessageBox, 'confirm').mockResolvedValue('confirm' as Awaited<ReturnType<typeof ElMessageBox.confirm>>)
|
||||
const wrapper = await mountView()
|
||||
const row = { id: '2092873463568596994', customerId, currentStatusCode: 'PENDING_ASSIGNMENT', palletMergeFlag: '' }
|
||||
expect(wrapper.findAll('button').find(b => b.text() === '合托')!.attributes('disabled')).toBeDefined()
|
||||
await selectRows(wrapper, [row])
|
||||
await wrapper.findAll('button').find(b => b.text() === '合托')!.trigger('click')
|
||||
await flushPromises()
|
||||
expect(updateLastMileOrderPalletMerge).toHaveBeenLastCalledWith([row.id], customerId, true)
|
||||
await selectRows(wrapper, [{ ...row, palletMergeFlag: 'REQUIRED' }])
|
||||
await wrapper.findAll('button').find(b => b.text() === '取消合托')!.trigger('click')
|
||||
await flushPromises()
|
||||
expect(updateLastMileOrderPalletMerge).toHaveBeenLastCalledWith([row.id], customerId, false)
|
||||
})
|
||||
it('blocks completed and mixed-customer selections and hides unauthorized actions', async () => {
|
||||
const wrapper = await mountView()
|
||||
for (const rows of [
|
||||
[{ id: '1', customerId, currentStatusCode: 'INBOUND_COMPLETED', palletMergeFlag: 'REQUIRED' }],
|
||||
[{ id: '1', customerId, palletMergeFlag: 'MERGED' }],
|
||||
[{ id: '1', customerId }, { id: '2', customerId: 'other' }],
|
||||
]) {
|
||||
await selectRows(wrapper, rows)
|
||||
expect(wrapper.findAll('button').find(b => b.text() === '合托')!.attributes('disabled')).toBeDefined()
|
||||
expect(wrapper.findAll('button').find(b => b.text() === '取消合托')!.attributes('disabled')).toBeDefined()
|
||||
}
|
||||
canAccess.mockImplementation(() => false)
|
||||
const denied = await mountView()
|
||||
expect(denied.findAll('button').some(b => b.text() === '合托' || b.text() === '取消合托')).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user