UNPKG

@gravity-ui/data-source

Version:
77 lines (76 loc) 2.85 kB
"use strict"; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _react = require("@testing-library/react"); var _core = require("../../../core"); var _useQueryResponses = require("../useQueryResponses"); var _useRefetchAll = require("../useRefetchAll"); var _useRefetchErrored = require("../useRefetchErrored"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } jest.mock('../useRefetchAll'); jest.mock('../useRefetchErrored'); jest.mock('../../../core', function () { var originalModule = jest.requireActual('../../../core'); return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalModule), {}, { getStatus: jest.fn(), getError: jest.fn() }); }); describe('useQueryResponses', function () { var mockRefetchAll = jest.fn(); var mockRefetchErrored = jest.fn(); beforeEach(function () { jest.clearAllMocks(); _useRefetchAll.useRefetchAll.mockReturnValue(mockRefetchAll); _useRefetchErrored.useRefetchErrored.mockReturnValue(mockRefetchErrored); _core.getStatus.mockReturnValue('success'); _core.getError.mockReturnValue(null); }); it('should return combined status, error, and refetch functions', function () { var responses = [{ status: 'loading', error: null, refetch: jest.fn() }, { status: 'success', error: null, refetch: jest.fn() }, { status: 'error', error: { message: 'Error' }, refetch: jest.fn() }]; var _renderHook = (0, _react.renderHook)(function () { return (0, _useQueryResponses.useQueryResponses)(responses); }), result = _renderHook.result; expect(_core.getStatus).toHaveBeenCalledWith(responses); expect(_core.getError).toHaveBeenCalledWith(responses); expect(_useRefetchAll.useRefetchAll).toHaveBeenCalledWith(responses); expect(_useRefetchErrored.useRefetchErrored).toHaveBeenCalledWith(responses); expect(result.current).toEqual({ status: 'success', error: null, refetch: mockRefetchAll, refetchErrored: mockRefetchErrored }); }); it('should handle empty responses array', function () { var _renderHook2 = (0, _react.renderHook)(function () { return (0, _useQueryResponses.useQueryResponses)([]); }), result = _renderHook2.result; expect(_core.getStatus).toHaveBeenCalledWith([]); expect(_core.getError).toHaveBeenCalledWith([]); expect(_useRefetchAll.useRefetchAll).toHaveBeenCalledWith([]); expect(_useRefetchErrored.useRefetchErrored).toHaveBeenCalledWith([]); expect(result.current).toEqual({ status: 'success', error: null, refetch: mockRefetchAll, refetchErrored: mockRefetchErrored }); }); }); // #sourceMappingURL=useQueryResponses.test.js.map