18 lines
1.4 KiB
TypeScript
18 lines
1.4 KiB
TypeScript
import { beforeEach, expect, it, vi } from 'vitest'
|
|
import { http } from '@/shared/api/http'
|
|
import { assignTransport } from './transportTasks'
|
|
vi.mock('@/shared/api/http', () => ({ http: { post: vi.fn() }, unwrapApiResponse: (value: { data: unknown }) => value.data }))
|
|
vi.mock('@/modules/overseas-master-data', () => ({ normalizeTripDetail: (value: unknown) => value }))
|
|
beforeEach(() => vi.resetAllMocks())
|
|
const body = { recordVersion: 4, vehicleId: '1', driverId: '2', reason: '保存照片', reviewPhotos: { vehicleFileIds: ['21'], driverPhotoFileIds: ['22'], licenseFileIds: [] }, masterLicenseFileId: '33' }
|
|
it('does not submit photo changes when the backend has not supplied the dispatch version', () => {
|
|
expect(() => assignTransport('PC1', body)).toThrow('照片保存版本')
|
|
expect(http.post).not.toHaveBeenCalled()
|
|
})
|
|
it('preserves zero dispatch version and opaque photo IDs in the assignment', async () => {
|
|
vi.mocked(http.post).mockResolvedValue({ data: { dispatchNo: 'PC1', taskType: 'PICKUP', dispatchRecordVersion: '1', resources: { vehicle: { evidenceFileIds: ['21'] } }, execution: {}, pickups: [] } })
|
|
const result = await assignTransport('PC1', { ...body, dispatchRecordVersion: 0 })
|
|
expect(http.post).toHaveBeenCalledWith('/platform/v1/last-leg/dispatches/transport-tasks/PC1/assign', { ...body, dispatchRecordVersion: 0 })
|
|
expect(result.resources?.vehicle?.evidenceFileIds).toEqual(['21'])
|
|
})
|