@cainiaofe/cn-ui-m
Version:
74 lines (73 loc) • 2.63 kB
JavaScript
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*/];
}
});
}); });
});