UNPKG

@cainiaofe/cn-ui-m

Version:
74 lines (73 loc) 2.63 kB
import { __awaiter, __generator } from "tslib"; import { renderHook } from '@testing-library/react-hooks'; import { useCnRequest } from '@cainiaofe/cn-ui-common'; import { useFetchDataService } from '../use-fetch-data-service'; jest.mock('@cainiaofe/cn-ui-common', function () { return ({ useCnRequest: jest.fn(), }); }); describe('useFetchDataService', function () { var requestConfig = { url: '/api/data', method: 'GET', params: { currentPage: 1, pageSize: 10, }, }; var responseData = { paging: { currentPage: 1, totalCount: 20, }, tableColumns: [], tableData: [], }; beforeEach(function () { useCnRequest.mockReturnValue({ data: responseData, runAsync: jest.fn(), loading: false, }); }); afterEach(function () { jest.clearAllMocks(); }); it('should return the correct initial values', function () { var result = renderHook(function () { return useFetchDataService({ requestConfig: requestConfig, beforeRefreshCallback: jest.fn(), }); }).result; expect(result.current.loading).toBe(false); expect(result.current.hasNextPage).toBe(true); expect(result.current.refreshAsync).toBeInstanceOf(Function); expect(result.current.currentPageRefreshAsync).toBeInstanceOf(Function); expect(result.current.loadNextPage).toBeInstanceOf(Function); }); it('should call runAsync when refreshAsync is called', function () { return __awaiter(void 0, void 0, void 0, function () { var runAsync, result; return __generator(this, function (_a) { switch (_a.label) { case 0: runAsync = jest.fn(); useCnRequest.mockReturnValue({ data: responseData, runAsync: runAsync, loading: false, }); result = renderHook(function () { return useFetchDataService({ requestConfig: requestConfig, beforeRefreshCallback: jest.fn(), }); }).result; return [4 /*yield*/, result.current.refreshAsync()]; case 1: _a.sent(); expect(runAsync).toHaveBeenCalled(); return [2 /*return*/]; } }); }); }); });