UNPKG

@gravity-ui/data-source

Version:
117 lines (116 loc) 3.4 kB
"use strict"; var _react = require("@testing-library/react"); var _useRefetchErrored = require("../useRefetchErrored"); describe('useRefetchErrored', function () { it('should return a function that calls refetch only on states with errors', function () { var refetch1 = jest.fn(); var refetch2 = jest.fn(); var refetch3 = jest.fn(); var states = [{ error: { message: 'Error 1' }, refetch: refetch1 }, { error: null, refetch: refetch2 }, { error: { message: 'Error 3' }, refetch: refetch3 }]; var _renderHook = (0, _react.renderHook)(function () { return (0, _useRefetchErrored.useRefetchErrored)(states); }), result = _renderHook.result; expect(result.current).toEqual(expect.any(Function)); (0, _react.act)(function () { result.current(); }); expect(refetch1).toHaveBeenCalledTimes(1); expect(refetch2).toHaveBeenCalledTimes(0); expect(refetch3).toHaveBeenCalledTimes(1); }); it('should not call refetch if no states have errors', function () { var refetch1 = jest.fn(); var refetch2 = jest.fn(); var states = [{ error: null, refetch: refetch1 }, { error: null, refetch: refetch2 }]; var _renderHook2 = (0, _react.renderHook)(function () { return (0, _useRefetchErrored.useRefetchErrored)(states); }), result = _renderHook2.result; (0, _react.act)(function () { result.current(); }); expect(refetch1).not.toHaveBeenCalled(); expect(refetch2).not.toHaveBeenCalled(); }); it('should handle empty states array', function () { var _renderHook3 = (0, _react.renderHook)(function () { return (0, _useRefetchErrored.useRefetchErrored)([]); }), result = _renderHook3.result; (0, _react.act)(function () { result.current(); }); }); it('should memoize the refetch function when dependencies do not change', function () { var refetch1 = jest.fn(); var refetch2 = jest.fn(); var states = [{ error: { message: 'Error 1' }, refetch: refetch1 }, { error: null, refetch: refetch2 }]; var _renderHook4 = (0, _react.renderHook)(function () { return (0, _useRefetchErrored.useRefetchErrored)(states); }), result = _renderHook4.result, rerender = _renderHook4.rerender; var firstRefetchErrored = result.current; rerender(); expect(result.current).toBe(firstRefetchErrored); }); it('should create a new refetch function when dependencies change', function () { var refetch1 = jest.fn(); var refetch2 = jest.fn(); var states = [{ error: { message: 'Error 1' }, refetch: refetch1 }, { error: null, refetch: refetch2 }]; var _renderHook5 = (0, _react.renderHook)(function () { return (0, _useRefetchErrored.useRefetchErrored)(states); }), result = _renderHook5.result, rerender = _renderHook5.rerender; var firstRefetchErrored = result.current; states = [{ error: { message: 'New Error 1' }, refetch: refetch1 }, { error: null, refetch: refetch2 }]; rerender(); expect(result.current).not.toBe(firstRefetchErrored); }); }); // #sourceMappingURL=useRefetchErrored.test.js.map