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