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()), 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/) }) })