29 lines
1.8 KiB
TypeScript
29 lines
1.8 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
import { http } from '@/shared/api/http'
|
|
import { getWarehouseTransfer, listWarehouseTransfers, reviewWarehouseTransfer } from './warehouseTransfers'
|
|
|
|
vi.mock('@/shared/api/http', async (importOriginal) => ({ ...(await importOriginal<typeof import('@/shared/api/http')>()), http: { get: vi.fn(), post: vi.fn() } }))
|
|
|
|
describe('warehouseTransfers API', () => {
|
|
beforeEach(() => vi.clearAllMocks())
|
|
|
|
it('always scopes platform list and detail requests to the selected customer', async () => {
|
|
vi.mocked(http.get).mockResolvedValueOnce({ code: '200', data: { records: [], page: 1, size: 10, total: 0, pages: 0 } })
|
|
vi.mocked(http.get).mockResolvedValueOnce({ code: '200', data: { transferNo: 'WT-1', items: [], cartons: [], relabelBindings: [] } })
|
|
await listWarehouseTransfers('20001', { page: 1, size: 10, status: 'PENDING_REVIEW' })
|
|
await getWarehouseTransfer('20001', 'WT-1')
|
|
expect(vi.mocked(http.get).mock.calls[0]).toEqual(['/platform/v1/last-leg/warehouse-transfers', { params: { page: 1, size: 10, status: 'PENDING_REVIEW', customerId: '20001' } }])
|
|
expect(vi.mocked(http.get).mock.calls[1]).toEqual(['/platform/v1/last-leg/warehouse-transfers/WT-1', { params: { customerId: '20001' } }])
|
|
})
|
|
|
|
it('posts the real review decision with customer scope', async () => {
|
|
vi.mocked(http.post).mockResolvedValue({ code: '200', data: { transferNo: 'WT-1', items: [], cartons: [], relabelBindings: [] } })
|
|
await reviewWarehouseTransfer('20001', 'WT-1', 'APPROVE', '资料无误')
|
|
expect(http.post).toHaveBeenCalledWith(
|
|
'/platform/v1/last-leg/warehouse-transfers/WT-1/review',
|
|
{ decision: 'APPROVE', remark: '资料无误' },
|
|
{ params: { customerId: '20001' } },
|
|
)
|
|
})
|
|
})
|