Skip to content
Snippets Groups Projects
Unverified Commit 7ec97a72 authored by Adam Setch's avatar Adam Setch Committed by GitHub
Browse files

test(bitbucket): update paginated values mocks (#22357)

parent a9179e05
No related branches found
No related tags found
No related merge requests found
import * as httpMock from '../../../test/http-mock'; import * as httpMock from '../../../test/http-mock';
import * as hostRules from '../host-rules'; import * as hostRules from '../host-rules';
import { range } from '../range';
import { BitbucketHttp, setBaseUrl } from './bitbucket'; import { BitbucketHttp, setBaseUrl } from './bitbucket';
const baseUrl = 'https://api.bitbucket.org'; const baseUrl = 'https://api.bitbucket.org';
...@@ -57,83 +58,95 @@ describe('util/http/bitbucket', () => { ...@@ -57,83 +58,95 @@ describe('util/http/bitbucket', () => {
}); });
it('paginates: adds default pagelen if non is present', async () => { 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 httpMock
.scope(baseUrl) .scope(baseUrl)
.get('/some-url?foo=bar&pagelen=100') .get('/some-url?foo=bar&pagelen=100')
.reply(200, { .reply(200, {
values: ['a'], values: valuesPageOne,
page: '1', page: '1',
next: `${baseUrl}/some-url?foo=bar&pagelen=100&page=2`, next: `${baseUrl}/some-url?foo=bar&pagelen=100&page=2`,
}) })
.get('/some-url?foo=bar&pagelen=100&page=2') .get('/some-url?foo=bar&pagelen=100&page=2')
.reply(200, { .reply(200, {
values: ['b', 'c'], values: valuesPageTwo,
page: '2', page: '2',
next: `${baseUrl}/some-url?foo=bar&pagelen=100&page=3`, next: `${baseUrl}/some-url?foo=bar&pagelen=100&page=3`,
}) })
.get('/some-url?foo=bar&pagelen=100&page=3') .get('/some-url?foo=bar&pagelen=100&page=3')
.reply(200, { .reply(200, {
values: ['d'], values: valuesPageThree,
page: '3', page: '3',
}); });
const res = await api.getJson('/some-url?foo=bar', { paginate: true }); const res = await api.getJson('/some-url?foo=bar', { paginate: true });
expect(res.body).toEqual({ expect(res.body).toEqual({
page: '1', page: '1',
pagelen: 4, pagelen: 210,
size: 4, size: 210,
values: ['a', 'b', 'c', 'd'], values: [...valuesPageOne, ...valuesPageTwo, ...valuesPageThree],
next: undefined, next: undefined,
}); });
}); });
it('paginates: respects pagelen if already set in path', async () => { 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 httpMock
.scope(baseUrl) .scope(baseUrl)
.get('/some-url?pagelen=10') .get('/some-url?pagelen=10')
.reply(200, { .reply(200, {
values: ['a'], values: valuesPageOne,
page: '1', page: '1',
next: `${baseUrl}/some-url?pagelen=10&page=2`, next: `${baseUrl}/some-url?pagelen=10&page=2`,
}) })
.get('/some-url?pagelen=10&page=2') .get('/some-url?pagelen=10&page=2')
.reply(200, { .reply(200, {
values: ['b', 'c'], values: valuesPageTwo,
page: '2', page: '2',
next: `${baseUrl}/some-url?pagelen=10&page=3`, next: `${baseUrl}/some-url?pagelen=10&page=3`,
}) })
.get('/some-url?pagelen=10&page=3') .get('/some-url?pagelen=10&page=3')
.reply(200, { .reply(200, {
values: ['d'], values: valuesPageThree,
page: '3', page: '3',
}); });
const res = await api.getJson('some-url?pagelen=10', { paginate: true }); const res = await api.getJson('some-url?pagelen=10', { paginate: true });
expect(res.body).toEqual({ expect(res.body).toEqual({
page: '1', page: '1',
pagelen: 4, pagelen: 21,
size: 4, size: 21,
values: ['a', 'b', 'c', 'd'], values: [...valuesPageOne, ...valuesPageTwo, ...valuesPageThree],
next: undefined, next: undefined,
}); });
}); });
it('paginates: respects pagelen if set in options', async () => { 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 httpMock
.scope(baseUrl) .scope(baseUrl)
.get('/some-url?pagelen=20') .get('/some-url?pagelen=20')
.reply(200, { .reply(200, {
values: ['a'], values: valuesPageOne,
page: '1', page: '1',
next: `${baseUrl}/some-url?pagelen=20&page=2`, next: `${baseUrl}/some-url?pagelen=20&page=2`,
}) })
.get('/some-url?pagelen=20&page=2') .get('/some-url?pagelen=20&page=2')
.reply(200, { .reply(200, {
values: ['b', 'c'], values: valuesPageTwo,
page: '2', page: '2',
next: `${baseUrl}/some-url?pagelen=20&page=3`, next: `${baseUrl}/some-url?pagelen=20&page=3`,
}) })
.get('/some-url?pagelen=20&page=3') .get('/some-url?pagelen=20&page=3')
.reply(200, { .reply(200, {
values: ['d'], values: valuesPageThree,
page: '3', page: '3',
}); });
const res = await api.getJson('some-url', { const res = await api.getJson('some-url', {
...@@ -142,9 +155,9 @@ describe('util/http/bitbucket', () => { ...@@ -142,9 +155,9 @@ describe('util/http/bitbucket', () => {
}); });
expect(res.body).toEqual({ expect(res.body).toEqual({
page: '1', page: '1',
pagelen: 4, pagelen: 44,
size: 4, size: 44,
values: ['a', 'b', 'c', 'd'], values: [...valuesPageOne, ...valuesPageTwo, ...valuesPageThree],
next: undefined, next: undefined,
}); });
}); });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment