import MockAdapter from 'axios-mock-adapter' import axios from '@/utils/request' import { getMyPackages, getGuidePackage, getGuidePackageItems, createPackage, updatePackage, submitPackageForReview, publishPackage, addPackageItem, updatePackageItem, deletePackageItem } from '@/api/guidePackage' let mock beforeEach(() => { mock = new MockAdapter(axios) }) afterEach(() => { mock.restore() }) describe('guidePackage API', () => { test('getMyPackages sends POST', async () => { mock.onPost('/api/packages/my').reply(200, { code: 200, data: [] }) const res = await getMyPackages() expect(res.code).toBe(200) }) test('getGuidePackage sends POST with id', async () => { mock.onPost('/api/packages/1').reply(200, { code: 200, data: { id: 1 } }) const res = await getGuidePackage(1) expect(res.data.id).toBe(1) }) test('getGuidePackageItems sends POST with packageId', async () => { mock.onPost('/api/packages/1/item-list').reply(200, { code: 200, data: [] }) const res = await getGuidePackageItems(1) expect(res.code).toBe(200) }) test('createPackage sends POST with data', async () => { mock.onPost('/api/packages/create').reply(200, { code: 200, data: { id: 1 } }) const res = await createPackage({ name: '套餐' }) expect(res.data.id).toBe(1) }) test('updatePackage sends PUT with id and data', async () => { mock.onPut('/api/packages/1').reply(200, { code: 200, data: true }) const res = await updatePackage(1, { name: '新名称' }) expect(res.code).toBe(200) }) test('submitPackageForReview sends POST', async () => { mock.onPost('/api/packages/1/submit').reply(200, { code: 200, data: true }) const res = await submitPackageForReview(1) expect(res.code).toBe(200) }) test('publishPackage sends POST with publish flag', async () => { mock.onPost('/api/packages/1/publish').reply(200, { code: 200, data: true }) const res = await publishPackage(1, true) expect(res.code).toBe(200) }) test('addPackageItem sends POST with data', async () => { mock.onPost('/api/packages/1/items').reply(200, { code: 200, data: { id: 1 } }) const res = await addPackageItem(1, { taskId: 10 }) expect(res.data.id).toBe(1) }) test('updatePackageItem sends PUT', async () => { mock.onPut('/api/packages/items/1').reply(200, { code: 200, data: true }) const res = await updatePackageItem(1, { points: 20 }) expect(res.code).toBe(200) }) test('deletePackageItem sends DELETE', async () => { mock.onDelete('/api/packages/items/1').reply(200, { code: 200, data: true }) const res = await deletePackageItem(1) expect(res.code).toBe(200) }) })