接入V4任务卡目录查询

This commit is contained in:
andy committed 2026-07-19 15:35:58 +07:00
1 parent 8b37232ac9
commit d808732107
16 files changed
+803 -38

No files matched your search

@@ -8,8 +8,11 @@ import {
fetchReservationOrders,
fetchReservationTaskDetail,
fetchReservationTaskList,
fetchReservationV4AccountLookups,
fetchReservationV4OrderTaskDetail,
fetchReservationV4OrderTasks,
fetchReservationV4RateCodeLookups,
fetchReservationV4RoomTypeLookups,
fetchReservationV4SourceNotificationDetail,
fetchReservationV4WorkbenchItems,
fetchSourceMessageConversation,
@@ -188,6 +191,85 @@ describe('reservationService real API mode', () => {
)
})
it('fetches V4 catalog lookups with selected hotel and query params', async () => {
const fetchMock = vi.spyOn(globalThis, 'fetch')
.mockResolvedValueOnce(mockJsonResponse({
hotel_id: 'HOTEL-BKK',
catalog_type: 'ACCOUNT',
catalog_source: 'SYSTEM_MANAGED',
catalog_version: 'v1',
stale: false,
items: [],
page: {
page_num: 1,
page_size: 20,
total: 0,
},
warnings: [],
}))
.mockResolvedValueOnce(mockJsonResponse({
hotel_id: 'HOTEL-BKK',
catalog_type: 'ROOM_TYPE',
catalog_source: 'PMS_SYNC',
catalog_version: 'v2',
stale: true,
items: [],
page: {
page_num: 1,
page_size: 20,
total: 0,
},
warnings: ['PMS sync stale'],
}))
.mockResolvedValueOnce(mockJsonResponse({
hotel_id: 'HOTEL-BKK',
catalog_type: 'RATE_CODE',
catalog_source: 'SYSTEM_MANAGED',
catalog_version: 'v3',
stale: false,
items: [],
page: {
page_num: 1,
page_size: 20,
total: 0,
},
warnings: [],
}))
setReservationHotelIdProvider(() => 'HOTEL-BKK')
await fetchReservationV4AccountLookups({
keyword: 'QBD',
page_num: 1,
page_size: 20,
})
await fetchReservationV4RoomTypeLookups({
keyword: 'RM',
page_num: 1,
page_size: 20,
})
await fetchReservationV4RateCodeLookups({
keyword: 'BAR',
page_num: 1,
page_size: 20,
})
expect(fetchMock).toHaveBeenNthCalledWith(
1,
'/api/reservation/lookups/accounts?hotel_id=HOTEL-BKK&keyword=QBD&page_num=1&page_size=20',
expect.objectContaining({ method: 'GET' }),
)
expect(fetchMock).toHaveBeenNthCalledWith(
2,
'/api/reservation/lookups/room-types?hotel_id=HOTEL-BKK&keyword=RM&page_num=1&page_size=20',
expect.objectContaining({ method: 'GET' }),
)
expect(fetchMock).toHaveBeenNthCalledWith(
3,
'/api/reservation/lookups/rate-codes?hotel_id=HOTEL-BKK&keyword=BAR&page_num=1&page_size=20',
expect.objectContaining({ method: 'GET' }),
)
})
it('fetches V4 order task and source notification details by id', async () => {
const fetchMock = vi.spyOn(globalThis, 'fetch')
.mockResolvedValueOnce(mockJsonResponse({ order_task: { order_task_id: '9001' } }))
@@ -482,6 +564,7 @@ describe('reservationService real API mode', () => {
updated_at: '2026-07-08T03:10:00Z',
},
tasks: [],
v4_order_tasks: [],
warnings: [],
}),
)