import { jest } from '@jest/globals' // const axios: any = jest.createMockFromModule('axios'); export class AxiosError { message: string code: string | number config: any request: any response: any static ERR_CANCELED = 'ERR_CANCELED' constructor(errMsg: string, code: string | number, config: any, request: any, response: any) { this.message = errMsg this.code = code this.config = config this.request = request this.response = response } } const axios: any = {} axios.create = jest.fn(() => { return { request: jest.fn(async (config: any) => { // 有适配器,则使用适配器发出请求 if (config.adapter) { // 模拟axios中异步调用adapter // await new Promise((resolve) => setTimeout(resolve)) return config.adapter(config) } return new Promise((resove, reject) => setTimeout(() => { if (config?.signal?.aborted) { return reject('请求被取消') } return resove(Math.random()) }, 50) ) }), interceptors: { request: { use: jest.fn(), }, response: { use: jest.fn(), }, }, } }) export default axios