适配 M002 V3 前端任务流与同卡复核
This commit is contained in:
@@ -7,6 +7,7 @@ import {
|
||||
fetchReservationTaskDetail,
|
||||
fetchReservationTaskList,
|
||||
fetchSourceMessageConversation,
|
||||
resolveReservationManualReviewTask,
|
||||
} from '@/services/reservationService'
|
||||
import { setReservationHotelIdProvider } from '@/config/reservationConfig'
|
||||
|
||||
@@ -233,6 +234,63 @@ describe('reservationService real API mode', () => {
|
||||
expect(result.original_order_logic_deleted).toBe(true)
|
||||
})
|
||||
|
||||
it('resolves a type-known manual review task on the original card', async () => {
|
||||
const fetchMock = vi.spyOn(globalThis, 'fetch').mockResolvedValue(
|
||||
mockJsonResponse({
|
||||
task_id: '10001',
|
||||
order_id: '20001',
|
||||
task_status: 'READY',
|
||||
review_status: 'RESOLVED',
|
||||
review_resolution: {
|
||||
confirmed_order_id: '20001',
|
||||
field_overrides: [
|
||||
{
|
||||
field_pointer: '/extracted_fields/pms_room_type_code',
|
||||
value: 'RM3',
|
||||
},
|
||||
],
|
||||
},
|
||||
confirmed_payload: {
|
||||
'extracted_fields.pms_room_type_code': 'RM3',
|
||||
},
|
||||
opera_operations: [],
|
||||
}),
|
||||
)
|
||||
|
||||
const result = await resolveReservationManualReviewTask('10001', {
|
||||
confirmed_order_id: '20001',
|
||||
reason: '确认 PMS 房型代码',
|
||||
field_overrides: [
|
||||
{
|
||||
field_pointer: '/extracted_fields/pms_room_type_code',
|
||||
value: 'RM3',
|
||||
},
|
||||
],
|
||||
})
|
||||
|
||||
expect(fetchMock).toHaveBeenCalledWith(
|
||||
'/api/reservation/tasks/10001/manual-review-resolutions',
|
||||
expect.objectContaining({
|
||||
method: 'POST',
|
||||
headers: expect.objectContaining({
|
||||
'Content-Type': 'application/json',
|
||||
}),
|
||||
body: JSON.stringify({
|
||||
confirmed_order_id: '20001',
|
||||
reason: '确认 PMS 房型代码',
|
||||
field_overrides: [
|
||||
{
|
||||
field_pointer: '/extracted_fields/pms_room_type_code',
|
||||
value: 'RM3',
|
||||
},
|
||||
],
|
||||
}),
|
||||
}),
|
||||
)
|
||||
expect(result.task_status).toBe('READY')
|
||||
expect(result.review_status).toBe('RESOLVED')
|
||||
})
|
||||
|
||||
it('fetches order detail from the backend by default', async () => {
|
||||
const fetchMock = vi.spyOn(globalThis, 'fetch').mockResolvedValue(
|
||||
mockJsonResponse({
|
||||
|
||||
Reference in New Issue
Block a user