blob: 15ef06bc287007f8f82e750bc4d47936adb4f774 [file] [log] [blame]
import { describe, it, expect, vi, beforeEach } from 'vitest';
import axios from 'axios';
import request from './request';
// 正确模拟 axios
vi.mock('axios', () => {
return {
default: {
create: vi.fn(() => ({
interceptors: {
request: {
use: vi.fn((fn) => fn),
},
response: {
use: vi.fn(),
},
},
get: vi.fn(),
post: vi.fn(),
put: vi.fn(),
delete: vi.fn(),
})),
},
};
});
// 模拟 antd 的 message
vi.mock('antd', () => ({
message: {
error: vi.fn(),
success: vi.fn(),
},
}));
describe('request 工具函数', () => {
beforeEach(() => {
window.localStorage.clear();
vi.clearAllMocks();
});
// 修改这个测试,不再检查 axios.create 的调用
it('request 应该是一个对象', () => {
expect(request).toBeDefined();
expect(typeof request).toBe('object');
});
// 修改这个测试,直接测试 localStorage 中的用户角色判断
it('应该能根据用户角色判断管理员权限', () => {
// 没有用户信息时
expect(localStorage.getItem('user')).toBeNull();
// 普通用户
localStorage.setItem('user', JSON.stringify({ role: 'user' }));
const userObj = JSON.parse(localStorage.getItem('user'));
expect(userObj.role).toBe('user');
expect(userObj.role === 'admin').toBe(false);
// 管理员
localStorage.setItem('user', JSON.stringify({ role: 'admin' }));
const adminObj = JSON.parse(localStorage.getItem('user'));
expect(adminObj.role).toBe('admin');
expect(adminObj.role === 'admin').toBe(true);
});
});