From 7ec97a72234fa695665a31c015335c1ebc9402b0 Mon Sep 17 00:00:00 2001 From: Adam Setch <adam.setch@outlook.com> Date: Fri, 26 May 2023 10:41:07 -0400 Subject: [PATCH] test(bitbucket): update paginated values mocks (#22357) --- lib/util/http/bitbucket.spec.ts | 49 +++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/lib/util/http/bitbucket.spec.ts b/lib/util/http/bitbucket.spec.ts index ea6c9e6624..16bf1956de 100644 --- a/lib/util/http/bitbucket.spec.ts +++ b/lib/util/http/bitbucket.spec.ts @@ -1,5 +1,6 @@ import * as httpMock from '../../../test/http-mock'; import * as hostRules from '../host-rules'; +import { range } from '../range'; import { BitbucketHttp, setBaseUrl } from './bitbucket'; const baseUrl = 'https://api.bitbucket.org'; @@ -57,83 +58,95 @@ describe('util/http/bitbucket', () => { }); it('paginates: adds default pagelen if non is present', async () => { + const valuesPageOne = [...range(1, 100)]; + const valuesPageTwo = [...range(101, 200)]; + const valuesPageThree = [...range(201, 210)]; + httpMock .scope(baseUrl) .get('/some-url?foo=bar&pagelen=100') .reply(200, { - values: ['a'], + values: valuesPageOne, page: '1', next: `${baseUrl}/some-url?foo=bar&pagelen=100&page=2`, }) .get('/some-url?foo=bar&pagelen=100&page=2') .reply(200, { - values: ['b', 'c'], + values: valuesPageTwo, page: '2', next: `${baseUrl}/some-url?foo=bar&pagelen=100&page=3`, }) .get('/some-url?foo=bar&pagelen=100&page=3') .reply(200, { - values: ['d'], + values: valuesPageThree, page: '3', }); const res = await api.getJson('/some-url?foo=bar', { paginate: true }); expect(res.body).toEqual({ page: '1', - pagelen: 4, - size: 4, - values: ['a', 'b', 'c', 'd'], + pagelen: 210, + size: 210, + values: [...valuesPageOne, ...valuesPageTwo, ...valuesPageThree], next: undefined, }); }); it('paginates: respects pagelen if already set in path', async () => { + const valuesPageOne = [...range(1, 10)]; + const valuesPageTwo = [...range(11, 20)]; + const valuesPageThree = [...range(21, 21)]; + httpMock .scope(baseUrl) .get('/some-url?pagelen=10') .reply(200, { - values: ['a'], + values: valuesPageOne, page: '1', next: `${baseUrl}/some-url?pagelen=10&page=2`, }) .get('/some-url?pagelen=10&page=2') .reply(200, { - values: ['b', 'c'], + values: valuesPageTwo, page: '2', next: `${baseUrl}/some-url?pagelen=10&page=3`, }) .get('/some-url?pagelen=10&page=3') .reply(200, { - values: ['d'], + values: valuesPageThree, page: '3', }); const res = await api.getJson('some-url?pagelen=10', { paginate: true }); expect(res.body).toEqual({ page: '1', - pagelen: 4, - size: 4, - values: ['a', 'b', 'c', 'd'], + pagelen: 21, + size: 21, + values: [...valuesPageOne, ...valuesPageTwo, ...valuesPageThree], next: undefined, }); }); it('paginates: respects pagelen if set in options', async () => { + const valuesPageOne = [...range(1, 20)]; + const valuesPageTwo = [...range(21, 40)]; + const valuesPageThree = [...range(41, 44)]; + httpMock .scope(baseUrl) .get('/some-url?pagelen=20') .reply(200, { - values: ['a'], + values: valuesPageOne, page: '1', next: `${baseUrl}/some-url?pagelen=20&page=2`, }) .get('/some-url?pagelen=20&page=2') .reply(200, { - values: ['b', 'c'], + values: valuesPageTwo, page: '2', next: `${baseUrl}/some-url?pagelen=20&page=3`, }) .get('/some-url?pagelen=20&page=3') .reply(200, { - values: ['d'], + values: valuesPageThree, page: '3', }); const res = await api.getJson('some-url', { @@ -142,9 +155,9 @@ describe('util/http/bitbucket', () => { }); expect(res.body).toEqual({ page: '1', - pagelen: 4, - size: 4, - values: ['a', 'b', 'c', 'd'], + pagelen: 44, + size: 44, + values: [...valuesPageOne, ...valuesPageTwo, ...valuesPageThree], next: undefined, }); }); -- GitLab