axios-miniprogram/test/axios.api.test.ts

47 lines
1.4 KiB
TypeScript
Raw Normal View History

2023-04-09 15:20:10 +08:00
import { describe, test, expect } from 'vitest';
import Axios from '@/core/Axios';
import { CancelToken, isCancel } from '@/core/cancel';
import { isAxiosError } from '@/core/createError';
2023-04-18 19:50:40 +08:00
import {
requestMethodNames,
requestMethodWithDataNames,
requestMethodWithParamsNames,
} from '@/core/AxiosDomain';
2023-04-09 15:20:10 +08:00
import { createAdapter } from '@/adapter';
import axios from '@/axios';
2023-04-10 15:03:59 +08:00
import defaults from '@/defaults';
2023-04-05 08:40:00 +08:00
describe('src/axios.ts', () => {
test('应该有这些静态属性', () => {
expect(axios.Axios).toBe(Axios);
expect(axios.CancelToken).toBe(CancelToken);
2023-04-09 15:20:10 +08:00
expect(axios.create).toBeTypeOf('function');
2023-04-05 08:40:00 +08:00
expect(axios.createAdapter).toBe(createAdapter);
2023-04-05 13:31:48 +08:00
expect(axios.isCancel).toBe(isCancel);
expect(axios.isAxiosError).toBe(isAxiosError);
});
2023-04-10 15:03:59 +08:00
test('应该可以创建实例', () => {
2023-04-10 22:53:15 +08:00
const instance = axios.create({
2023-04-10 15:03:59 +08:00
baseURL: 'http://api.com',
});
2023-04-10 18:53:21 +08:00
2023-04-10 22:53:15 +08:00
expect(instance.defaults).toEqual({
...defaults,
baseURL: 'http://api.com',
2023-04-10 18:53:21 +08:00
});
2023-04-10 22:53:15 +08:00
expect(instance.interceptors).toBeTypeOf('object');
expect(instance.getUri).toBeTypeOf('function');
expect(instance.fork).toBeTypeOf('function');
expect(instance.request).toBeTypeOf('function');
2023-04-10 15:03:59 +08:00
2023-04-18 19:50:40 +08:00
[
...requestMethodNames,
...requestMethodWithParamsNames,
...requestMethodWithDataNames,
].forEach((k) => {
2023-04-10 22:53:15 +08:00
expect(instance[k]).toBeTypeOf('function');
2023-04-10 15:03:59 +08:00
});
});
2023-04-05 08:40:00 +08:00
});