import { describe, it, expect, vi, beforeEach } from 'vitest' vi.mock('@/utils/request', () => ({ default: { get: vi.fn(), post: vi.fn(), put: vi.fn(), del: vi.fn(), }, })) import request from '@/utils/request' import { createTaskApplication, deleteTaskApplication, getTaskApplications, updateTaskApplication, } from '@/api/tasks' const mockedRequest = vi.mocked(request) describe('tasks API', () => { beforeEach(() => { vi.clearAllMocks() }) it('task applications API calls expected endpoints', async () => { mockedRequest.get.mockResolvedValue({ code: 200, data: [] }) mockedRequest.post.mockResolvedValue({ code: 200, data: { id: 1 } }) mockedRequest.put.mockResolvedValue({ code: 200, data: { id: 1 } }) mockedRequest.del.mockResolvedValue({ code: 200 }) await getTaskApplications('T001') expect(mockedRequest.get).toHaveBeenCalledWith('/tasks/T001/applications') await createTaskApplication('T001', { title: 'Demo', status: 'TODO' }) expect(mockedRequest.post).toHaveBeenCalledWith('/tasks/T001/applications', { title: 'Demo', status: 'TODO', }) await updateTaskApplication(1, { title: 'Demo 2', status: 'DOING' }) expect(mockedRequest.put).toHaveBeenCalledWith('/tasks/applications/1', { title: 'Demo 2', status: 'DOING', }) await deleteTaskApplication(1) expect(mockedRequest.del).toHaveBeenCalledWith('/tasks/applications/1') }) })