axios-miniprogram/test/core/Axios.test.ts

70 lines
1.8 KiB
TypeScript
Raw Normal View History

2020-04-20 22:33:15 +08:00
/*
* @Author: early-autumn
* @Date: 2020-04-20 20:47:09
* @LastEditors: early-autumn
2020-04-21 10:02:11 +08:00
* @LastEditTime: 2020-04-21 09:34:14
2020-04-20 22:33:15 +08:00
*/
import Axios from '../../src/core/Axios';
const instance = new Axios();
describe('测试 src/core/Axios.ts', () => {
it('defaults', () => {
expect(instance.defaults).toEqual({});
});
it('getUri', () => {
expect(instance.getUri({})).toEqual('');
expect(instance.getUri({ url: '/test' })).toEqual('/test');
expect(instance.getUri({ url: '', params: { id: 1 } })).toEqual('id=1');
expect(instance.getUri({ url: '/test', params: { id: 1 } })).toEqual('/test?id=1');
});
2020-04-21 10:02:11 +08:00
it('interceptors 成功', () => {
instance.defaults.adapter = function adapter({ data, success }): any {
2020-04-20 22:33:15 +08:00
expect(data).toBe('interceptors_request');
success({ data: 'data', headers: {} });
2020-04-21 10:02:11 +08:00
return 'task';
2020-04-20 22:33:15 +08:00
};
instance.interceptors.request.use(function(config) {
config.data = 'interceptors_request';
return config;
});
instance.interceptors.response.use(function(response) {
response.data = 'interceptors_response';
return response;
});
2020-04-21 10:02:11 +08:00
instance
2020-04-20 22:33:15 +08:00
.request({
method: 'post',
data: '',
})
.then(({ data }) => expect(data).toBe('interceptors_response'));
});
2020-04-21 10:02:11 +08:00
it('interceptors 失败', () => {
instance.interceptors.response.use((response) => Promise.reject(response));
2020-04-20 22:33:15 +08:00
2020-04-21 10:02:11 +08:00
instance
2020-04-20 22:33:15 +08:00
.request({
method: 'post',
data: '',
})
2020-04-21 10:02:11 +08:00
.then(undefined, (error) => expect(error.data).toBe('interceptors_response'));
2020-04-20 22:33:15 +08:00
2020-04-21 10:02:11 +08:00
instance.interceptors.request.use((config) => Promise.reject(config));
2020-04-20 22:33:15 +08:00
2020-04-21 10:02:11 +08:00
instance
2020-04-20 22:33:15 +08:00
.request({
method: 'post',
data: '',
})
2020-04-21 10:02:11 +08:00
.then(undefined, (error) => expect(error.method).toBe('post'));
2020-04-20 22:33:15 +08:00
});
});