UNPKG

@gravity-ui/data-source

Version:
79 lines (78 loc) 2.43 kB
"use strict"; var _react = require("@testing-library/react"); var _useRefetchAll = require("../useRefetchAll"); describe('useRefetchAll', function () { it('should return a function that calls refetch on all states', function () { var refetch1 = jest.fn(); var refetch2 = jest.fn(); var refetch3 = jest.fn(); var states = [{ refetch: refetch1 }, { refetch: refetch2 }, { refetch: refetch3 }]; var _renderHook = (0, _react.renderHook)(function () { return (0, _useRefetchAll.useRefetchAll)(states); }), result = _renderHook.result; expect(result.current).toEqual(expect.any(Function)); (0, _react.act)(function () { result.current(); }); expect(refetch1).toHaveBeenCalledTimes(1); expect(refetch2).toHaveBeenCalledTimes(1); expect(refetch3).toHaveBeenCalledTimes(1); }); it('should handle empty states array', function () { var _renderHook2 = (0, _react.renderHook)(function () { return (0, _useRefetchAll.useRefetchAll)([]); }), result = _renderHook2.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 = [{ refetch: refetch1 }, { refetch: refetch2 }]; var _renderHook3 = (0, _react.renderHook)(function () { return (0, _useRefetchAll.useRefetchAll)(states); }), result = _renderHook3.result, rerender = _renderHook3.rerender; var firstRefetchAll = result.current; rerender(); expect(result.current).toBe(firstRefetchAll); }); it('should create a new refetch function when dependencies change', function () { var refetch1 = jest.fn(); var refetch2 = jest.fn(); var refetch3 = jest.fn(); var states = [{ refetch: refetch1 }, { refetch: refetch2 }]; var _renderHook4 = (0, _react.renderHook)(function () { return (0, _useRefetchAll.useRefetchAll)(states); }), result = _renderHook4.result, rerender = _renderHook4.rerender; var firstRefetchAll = result.current; states = [{ refetch: refetch1 }, { refetch: refetch3 }]; rerender(); expect(result.current).not.toBe(firstRefetchAll); }); }); // #sourceMappingURL=useRefetchAll.test.js.map