@gravity-ui/data-source
Version:
A wrapper around data fetching
55 lines (54 loc) • 2.13 kB
JavaScript
;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _reactQuery = require("@tanstack/react-query");
var _react = require("@testing-library/react");
var _useQueryContext = require("../useQueryContext");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
jest.mock('@tanstack/react-query', function () {
var originalModule = jest.requireActual('@tanstack/react-query');
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalModule), {}, {
useQueryClient: jest.fn()
});
});
describe('useQueryContext', function () {
var mockQueryClient = new _reactQuery.QueryClient();
beforeEach(function () {
jest.clearAllMocks();
_reactQuery.useQueryClient.mockReturnValue(mockQueryClient);
});
it('should return context with queryClient', function () {
var _renderHook = (0, _react.renderHook)(function () {
return (0, _useQueryContext.useQueryContext)();
}),
result = _renderHook.result;
expect(result.current).toEqual({
queryClient: mockQueryClient
});
});
it('should memoize the context', function () {
var _renderHook2 = (0, _react.renderHook)(function () {
return (0, _useQueryContext.useQueryContext)();
}),
result = _renderHook2.result,
rerender = _renderHook2.rerender;
var firstResult = result.current;
rerender();
expect(result.current).toBe(firstResult);
});
it('should update context when queryClient changes', function () {
var _renderHook3 = (0, _react.renderHook)(function () {
return (0, _useQueryContext.useQueryContext)();
}),
result = _renderHook3.result,
rerender = _renderHook3.rerender;
var firstResult = result.current;
var newMockQueryClient = new _reactQuery.QueryClient();
_reactQuery.useQueryClient.mockReturnValue(newMockQueryClient);
rerender();
expect(result.current).not.toBe(firstResult);
expect(result.current).toEqual({
queryClient: newMockQueryClient
});
});
});
// #sourceMappingURL=useQueryContext.test.js.map