| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import MockAdapter from 'axios-mock-adapter'
- import axios from '@/utils/request'
- import {
- fetchBoundFamilies,
- fetchFamilyOverview,
- fetchChildTasks,
- fetchPendingReviewTasks,
- reviewTask,
- batchReviewTasks,
- updateTask,
- deleteTask,
- bindFamily,
- getFamilyInviteCode
- } from '@/api/guideTask'
- let mock
- beforeEach(() => {
- mock = new MockAdapter(axios)
- })
- afterEach(() => {
- mock.restore()
- })
- describe('guideTask API', () => {
- test('fetchBoundFamilies sends POST', async () => {
- mock.onPost('/api/guide/families/bound-families').reply(200, { code: 200, data: [] })
- const res = await fetchBoundFamilies()
- expect(res.code).toBe(200)
- })
- test('fetchFamilyOverview sends POST with familyId', async () => {
- mock.onPost('/api/guide/families/100/overview').reply(200, { code: 200, data: {} })
- const res = await fetchFamilyOverview(100)
- expect(res.code).toBe(200)
- })
- test('fetchChildTasks sends POST with pagination params', async () => {
- mock.onPost('/api/guide/families/100/children/20/tasks').reply(200, { code: 200, data: {} })
- const res = await fetchChildTasks(100, 20, 1, 10, 'pending')
- expect(res.code).toBe(200)
- })
- test('fetchPendingReviewTasks sends POST', async () => {
- mock.onPost('/api/guide/families/100/children/20/pending-review').reply(200, { code: 200, data: [] })
- const res = await fetchPendingReviewTasks(100, 20)
- expect(res.code).toBe(200)
- })
- test('reviewTask sends POST with review data', async () => {
- mock.onPost('/api/guide/families/100/tasks/5/review').reply(200, { code: 200, data: true })
- const res = await reviewTask(100, 5, { approved: true, comment: '好' })
- expect(res.code).toBe(200)
- })
- test('batchReviewTasks sends POST with taskIds', async () => {
- mock.onPost('/api/guide/families/100/tasks/batch-review').reply(200, { code: 200, data: { successCount: 3 } })
- const res = await batchReviewTasks(100, [1, 2, 3], true)
- expect(res.data.successCount).toBe(3)
- })
- test('updateTask sends PUT with data', async () => {
- mock.onPut('/api/guide/families/100/tasks/5').reply(200, { code: 200, data: true })
- const res = await updateTask(100, 5, { title: '新标题' })
- expect(res.code).toBe(200)
- })
- test('deleteTask sends DELETE', async () => {
- mock.onDelete('/api/guide/families/100/tasks/5').reply(200, { code: 200, data: true })
- const res = await deleteTask(100, 5)
- expect(res.code).toBe(200)
- })
- test('bindFamily sends POST with familyId', async () => {
- mock.onPost('/api/guide/bind/family/200').reply(200, { code: 200, data: true })
- const res = await bindFamily(200)
- expect(res.code).toBe(200)
- })
- test('getFamilyInviteCode sends POST', async () => {
- mock.onPost('/api/guide/family/invite-code/200').reply(200, { code: 200, data: { code: 'ABC123' } })
- const res = await getFamilyInviteCode(200)
- expect(res.data.code).toBe('ABC123')
- })
- })
|