import { DataUnit, LoadDataResponse } from "../../../../src"; import { metadata } from "../../resources/metadata"; import { recordsTest } from "../../resources/records"; export function createDataUnitMock(): { dataUnit: DataUnit, dataLoaderMock: jest.Mock, metadataLoaderMock: jest.Mock } { const dataUnit = new DataUnit(); let dataLoaderMock: jest.Mock; let metadataLoaderMock: jest.Mock; dataLoaderMock = jest.fn((_, request) => { return new Promise((resolve) => { const { offset = 0, limit = recordsTest.length } = request; const currentPage = Math.floor(offset / limit); const hasMore = (offset + limit) < recordsTest.length; resolve({ records: [...recordsTest].slice(offset, offset + limit), paginationInfo: { currentPage, hasMore, firstRecord: offset, lastRecord: Math.min(offset + limit - 1, recordsTest.length - 1), count: recordsTest.length }, }); }); }); metadataLoaderMock = jest.fn().mockResolvedValue({ ...metadata }); dataUnit.dataLoader = dataLoaderMock; dataUnit.metadataLoader = metadataLoaderMock; return { dataUnit, dataLoaderMock, metadataLoaderMock }; }