/
utils.spec.ts
35 lines (30 loc) · 1.07 KB
/
utils.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import * as httpMock from '../../../../test/http-mock';
import { setBaseUrl } from '../../../util/http/bitbucket';
import * as utils from './utils';
const range = (count: number) => [...Array(count).keys()];
const baseUrl = 'https://api.bitbucket.org';
describe('modules/platform/bitbucket/utils', () => {
beforeEach(() => {
setBaseUrl(baseUrl);
});
it('paginates', async () => {
httpMock
.scope(baseUrl)
.get('/some-url?pagelen=10')
.reply(200, {
values: range(10),
next: 'https://api.bitbucket.org/2.0/repositories/?pagelen=10&after=9&role=contributor',
})
.get('/2.0/repositories/?pagelen=10&after=9&role=contributor')
.reply(200, {
values: range(10),
next: 'https://api.bitbucket.org/2.0/repositories/?pagelen=10&after=19&role=contributor',
})
.get('/2.0/repositories/?pagelen=10&after=19&role=contributor')
.reply(200, {
values: range(5),
});
const res = await utils.accumulateValues('some-url', 'get', undefined, 10);
expect(res).toHaveLength(25);
});
});