import { describe, it, expect, vi, beforeEach } from 'vitest' vi.mock('@/utils/request', () => ({ default: { post: vi.fn(), get: vi.fn(), put: vi.fn(), delete: vi.fn(), }, })) import request from '@/utils/request' import { login, logout } from '@/api/login' const mockedRequest = vi.mocked(request) describe('login API', () => { beforeEach(() => { vi.clearAllMocks() }) it('login sends POST to /login with credentials', async () => { mockedRequest.post.mockResolvedValue({ code: 200, message: 'OK' }) const result = await login('admin', '123456') expect(mockedRequest.post).toHaveBeenCalledWith('/login', { username: 'admin', password: '123456' }) expect(result).toEqual({ code: 200, message: 'OK' }) }) it('logout sends POST to /logout', async () => { mockedRequest.post.mockResolvedValue({ code: 200, message: '已退出' }) const result = await logout() expect(mockedRequest.post).toHaveBeenCalledWith('/logout') expect(result).toEqual({ code: 200, message: '已退出' }) }) })