perf: 优化空场监控

This commit is contained in:
richarjiang
2026-07-15 20:09:02 +08:00
parent 4b465843a8
commit 9e0b44dfd3
18 changed files with 2731 additions and 118 deletions

View File

@@ -88,6 +88,38 @@ describe('范思伯特福中福响应映射', () => {
})
})
it('把同一场地连续时段作为一笔组合订单提交并汇总金额', () => {
const first = createSlot(0, true)
const second = {
...createSlot(0, true),
beginDatetime: '2026-07-16 09:00:00',
endDatetime: '2026-07-16 09:59:00',
cost: 90
}
const slots = parseAvailabilityResponse({
successed: true,
result: { slots: [first, second] }
}, query).slots
expect(buildCreateBookingRequestBody(slots)).toEqual({
userId: 6038652,
projectType: 0,
classroomItems: [{
classroomUid: '1775556146897330236',
beginDatetime: '2026-07-16 08:00:00',
endDatetime: '2026-07-16 08:59:00',
peopleNum: 1
}, {
classroomUid: '1775556146897330236',
beginDatetime: '2026-07-16 09:00:00',
endDatetime: '2026-07-16 09:59:00',
peopleNum: 1
}],
remark: '',
combinationPayments: [{ paymentMethod: 900, cost: 170 }]
})
})
it('把下单成功响应映射为待支付锁场,不暴露支付脚本给公共订单', () => {
const slot = parseAvailabilityResponse({
successed: true,
@@ -146,7 +178,7 @@ describe('范思伯特福中福响应映射', () => {
visitorId: 'visitor-token'
}
await fansiboteFuzhongAdapter.createBooking!(slot, settings)
await fansiboteFuzhongAdapter.createBooking!([slot], settings)
await fansiboteFuzhongAdapter.cancelBooking!(settings)
const createRequest = fetchMock.mock.calls[0]?.[1] as RequestInit
@@ -181,7 +213,7 @@ describe('范思伯特福中福响应映射', () => {
const fetchMock = vi.fn()
vi.stubGlobal('fetch', fetchMock)
await expect(fansiboteFuzhongAdapter.createBooking!(slot, {
await expect(fansiboteFuzhongAdapter.createBooking!([slot], {
courtId: query.courtId
})).rejects.toThrow('PSPLVISITORID')
expect(fetchMock).not.toHaveBeenCalled()
@@ -198,7 +230,7 @@ describe('范思伯特福中福响应映射', () => {
expect(result.slots).toEqual([
expect.objectContaining({
id: '1775556146897330236:2026-07-16 08:00:00',
id: '1775556146897330236:2026-07-16 08:00:00:2026-07-16 08:59:00',
courtLabel: '1号风雨场',
startTime: '08:00',
endTime: '08:59',