import { beforeEach, expect, it, vi } from 'vitest' import { http } from '@/shared/api/http' import { deleteAppointment, listAppointmentCancellations, listAppointmentCancellationRecords } from './api' vi.mock('@/shared/api/http',()=>({http:{get:vi.fn(),delete:vi.fn()},unwrapApiResponse:(result:{data:unknown})=>result.data})) beforeEach(()=>vi.resetAllMocks()) it('sends the required cancellation body without the old reasonless query shape',async()=>{ vi.mocked(http.delete).mockResolvedValue({data:undefined}) await deleteAppointment('AP-TEST',3,'仓库取消时段') expect(http.delete).toHaveBeenCalledExactlyOnceWith('/platform/v1/last-leg/inbound-plans/fba-appointments/AP-TEST',{data:{version:3,cancelReason:'仓库取消时段'}}) }) it('uses paged cancellation reads and the original business number for detail history',async()=>{ vi.mocked(http.get).mockResolvedValue({data:{records:[],total:'12'}}) expect((await listAppointmentCancellationRecords(2,10)).total).toBe(12) expect(http.get).toHaveBeenLastCalledWith('/platform/v1/last-leg/inbound-plans/fba-appointments/cancellations',{params:{page:2,size:10}}) await listAppointmentCancellations('AP/TEST',1,10) expect(http.get).toHaveBeenLastCalledWith('/platform/v1/last-leg/inbound-plans/fba-appointments/AP%2FTEST/cancellations',{params:{page:1,size:10}}) })