Skip to content

Commit

Permalink
feat(重构): 测试重试成功
Browse files Browse the repository at this point in the history
  • Loading branch information
mengxinssfd committed Apr 26, 2022
1 parent 4671e88 commit dcc1876
Showing 1 changed file with 29 additions and 4 deletions.
33 changes: 29 additions & 4 deletions __test__/retry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,23 @@ import { AxiosRequestTemplate, Context, CustomConfig } from '../src';

jest.mock('axios');
const map = new Map<string, Function>();
let times = 0;
const mockCreate = () => {
return function ({ cancelToken }) {
return function ({ cancelToken, url }) {
return new Promise((res, rej) => {
map.set(cancelToken, (msg?: string) => {
rej({ message: msg });
});
if (url === '3') {
if (times === 3) {
setTimeout(() => {
res({ code: 200, data: {}, msg: 'success' });
});
return;
} else {
times++;
}
}
setTimeout(() => {
rej('404');
});
Expand Down Expand Up @@ -83,11 +94,9 @@ describe('retry', () => {
return ctx.retry?.();
}
}

const get = new RetryTemp().methodFactory('get');
test('base', async () => {
expect.assertions(4);
const get = new RetryTemp().methodFactory('get');

const list = [
get<{ username: string; id: number }>('/user'),
get<{ username: string; id: number }>('/user', {}, { retry: 2 }),
Expand Down Expand Up @@ -126,6 +135,22 @@ describe('retry', () => {
expect(e).toBe('times * 10');
}
});
test('第3次成功', async () => {
expect.assertions(2);
try {
await get<{ username: string; id: number }>(
'3',
{ code: 200, data: {}, msg: 'success' },
{ tag: 'cancel', retry: 2 },
);
} catch (e) {
expect(e).toBe('times * 2');
}
times = 0;
const res = await get<{ username: string; id: number }>('3', {}, { tag: 'cancel', retry: 3 });
expect(res).toEqual({ code: 200, data: {}, msg: 'success' });
});

describe('cancel', () => {
const req = new RetryTemp();
const get = req.methodFactory('get');
Expand Down

0 comments on commit dcc1876

Please sign in to comment.