28 lines
1.7 KiB
TypeScript
28 lines
1.7 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
import { http } from './http'
|
|
import { overseasHttp } from './overseasHttp'
|
|
import { getLoadingAssociationSummary, getOverseasInboundCodeRelationship, getPlatformInboundCodeAssociation } from './inboundCodeRelations'
|
|
|
|
vi.mock('./http', async (original) => ({ ...(await original<typeof import('./http')>()), http: { get: vi.fn() } }))
|
|
vi.mock('./overseasHttp', () => ({ overseasHttp: { get: vi.fn() } }))
|
|
|
|
describe('inbound-code relationship APIs', () => {
|
|
beforeEach(() => vi.clearAllMocks())
|
|
|
|
it('uses the frozen domestic and overseas read models and encodes the business code', async () => {
|
|
vi.mocked(http.get).mockResolvedValue({ code: '200', data: { inboundCode: 'IN/01', orderNo: 'ORD-1' } })
|
|
vi.mocked(overseasHttp.get).mockResolvedValue({ code: '200', data: { inboundCode: 'IN/01', found: false, taillegOrders: [], inboundPlans: [], palletCodes: [], inventory: [] } })
|
|
await getPlatformInboundCodeAssociation('IN/01')
|
|
await getLoadingAssociationSummary('IN/01')
|
|
await getOverseasInboundCodeRelationship('IN/01')
|
|
expect(http.get).toHaveBeenCalledWith('/platform/v1/orders/first-leg/inbound-code-associations/IN%2F01')
|
|
expect(http.get).toHaveBeenCalledWith('/platform/v1/first-leg/loading-associations/summary', { params: { inboundCode: 'IN/01' } })
|
|
expect(overseasHttp.get).toHaveBeenCalledWith('/platform/v1/last-leg/inventory/inbound-code-relationships/IN%2F01')
|
|
})
|
|
|
|
it('does not accept customer or internal ids as lookup parameters', () => {
|
|
const source = `${getPlatformInboundCodeAssociation}${getLoadingAssociationSummary}${getOverseasInboundCodeRelationship}`
|
|
expect(source).not.toMatch(/customerId|inboundId|orderId|warehouseId/)
|
|
})
|
|
})
|