11// ===== IMPORTS =====
22import { describe , it , expect , beforeEach , afterEach , vi } from 'vitest' ;
33import { PaginationHelpers } from '../../../../src/utils/pagination/helpers' ;
4- import { PaginationType } from '../../../../src/utils/pagination/internal-types' ;
5- import type { GetAllConfig , PaginationServiceAccess } from '../../../../src/utils/pagination/internal-types' ;
4+ import { PaginationServiceAccess , PaginationType } from '../../../../src/utils/pagination/internal-types' ;
65import { PaginationCursor , PaginationOptions } from '../../../../src/utils/pagination/types' ;
76import { encodeBase64 } from '../../../../src/utils/encoding/base64' ;
87import { TEST_CONSTANTS , PAGINATION_TEST_CONSTANTS } from '../../../utils/constants' ;
@@ -23,9 +22,6 @@ import {
2322import { DEFAULT_TOTAL_COUNT_FIELD , DEFAULT_ITEMS_FIELD } from '../../../../src/utils/pagination/constants' ;
2423import { FOLDER_ID } from '../../../../src/utils/constants/headers' ;
2524
26- type MockRawItem = ReturnType < typeof createMockRawItem > ;
27- type MockTransformedItem = ReturnType < typeof createMockTransformedItem > ;
28-
2925// ===== TEST SUITE =====
3026describe ( 'PaginationHelpers Unit Tests' , ( ) => {
3127 afterEach ( ( ) => {
@@ -936,73 +932,4 @@ describe('PaginationHelpers Unit Tests', () => {
936932 } ) ;
937933 } ) ;
938934 } ) ;
939-
940- describe ( 'getAllPages' , ( ) => {
941- let mockServiceAccess : PaginationServiceAccess ;
942- let mockConfig : GetAllConfig < MockRawItem , MockTransformedItem > ;
943-
944- beforeEach ( ( ) => {
945- mockServiceAccess = createMockPaginationServiceAccess ( ) ;
946- mockConfig = {
947- serviceAccess : mockServiceAccess ,
948- getEndpoint : ( ) => PAGINATION_TEST_CONSTANTS . ENDPOINT_API_ITEMS ,
949- transformFn : mockTransformFunction ,
950- pagination : {
951- paginationType : PaginationType . OFFSET ,
952- itemsField : DEFAULT_ITEMS_FIELD ,
953- totalCountField : DEFAULT_TOTAL_COUNT_FIELD
954- }
955- } ;
956- } ) ;
957-
958- it ( 'should follow cursors and return a flattened item array' , async ( ) => {
959- const nextCursor = createMockPaginationCursor ( ) ;
960- const firstRawItem = createMockRawItem ( PAGINATION_TEST_CONSTANTS . ITEM_ID_1 , PAGINATION_TEST_CONSTANTS . ITEM_NAME_1 ) ;
961- const secondRawItem = createMockRawItem ( PAGINATION_TEST_CONSTANTS . ITEM_ID_2 , PAGINATION_TEST_CONSTANTS . ITEM_NAME_2 ) ;
962- const firstTransformedItem = createMockTransformedItem ( PAGINATION_TEST_CONSTANTS . ITEM_ID_1 , PAGINATION_TEST_CONSTANTS . ITEM_NAME_1 ) ;
963- const secondTransformedItem = createMockTransformedItem ( PAGINATION_TEST_CONSTANTS . ITEM_ID_2 , PAGINATION_TEST_CONSTANTS . ITEM_NAME_2 ) ;
964-
965- vi . mocked ( mockServiceAccess . requestWithPagination )
966- . mockResolvedValueOnce ( createMockPaginatedResponse ( [ firstRawItem ] , {
967- hasNextPage : true ,
968- nextCursor
969- } ) )
970- . mockResolvedValueOnce ( createMockPaginatedResponse ( [ secondRawItem ] , {
971- hasNextPage : false
972- } ) ) ;
973-
974- const result = await PaginationHelpers . getAllPages <
975- { pageSize ?: number } ,
976- MockRawItem ,
977- MockTransformedItem
978- > ( mockConfig , {
979- pageSize : PAGINATION_TEST_CONSTANTS . PAGE_SIZE
980- } ) ;
981-
982- expect ( result ) . toEqual ( [ firstTransformedItem , secondTransformedItem ] ) ;
983- expect ( mockServiceAccess . requestWithPagination ) . toHaveBeenNthCalledWith (
984- 1 ,
985- 'GET' ,
986- PAGINATION_TEST_CONSTANTS . ENDPOINT_API_ITEMS ,
987- { pageSize : PAGINATION_TEST_CONSTANTS . PAGE_SIZE } ,
988- expect . any ( Object )
989- ) ;
990- expect ( mockServiceAccess . requestWithPagination ) . toHaveBeenNthCalledWith (
991- 2 ,
992- 'GET' ,
993- PAGINATION_TEST_CONSTANTS . ENDPOINT_API_ITEMS ,
994- { pageSize : PAGINATION_TEST_CONSTANTS . PAGE_SIZE , cursor : nextCursor } ,
995- expect . any ( Object )
996- ) ;
997- } ) ;
998-
999- it ( 'should propagate errors from the underlying paginated call' , async ( ) => {
1000- vi . mocked ( mockServiceAccess . requestWithPagination )
1001- . mockRejectedValue ( new Error ( TEST_CONSTANTS . ERROR_MESSAGE ) ) ;
1002-
1003- await expect ( PaginationHelpers . getAllPages ( mockConfig , {
1004- pageSize : PAGINATION_TEST_CONSTANTS . PAGE_SIZE
1005- } ) ) . rejects . toThrow ( TEST_CONSTANTS . ERROR_MESSAGE ) ;
1006- } ) ;
1007- } ) ;
1008935} ) ;
0 commit comments