@gravity-ui/data-source
Version:
A wrapper around data fetching
47 lines (46 loc) • 1.76 kB
JavaScript
;
var _react = _interopRequireDefault(require("react"));
var _react2 = require("@testing-library/react");
var _DataManagerContext = require("../DataManagerContext");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
describe('useDataManager', function () {
it('should return dataManager from context', function () {
var mockDataManager = {
normalizer: undefined,
optimisticUpdate: jest.fn(),
invalidateData: jest.fn(),
invalidateTag: jest.fn(),
invalidateTags: jest.fn(),
invalidateSource: jest.fn(),
resetSource: jest.fn(),
invalidateParams: jest.fn(),
resetParams: jest.fn(),
invalidateSourceTags: jest.fn()
};
var wrapper = function wrapper(_ref) {
var children = _ref.children;
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataManagerContext.DataManagerContext.Provider, {
value: mockDataManager,
children: children
});
};
var _renderHook = (0, _react2.renderHook)(function () {
return (0, _DataManagerContext.useDataManager)();
}, {
wrapper: wrapper
}),
result = _renderHook.result;
expect(result.current).toBe(mockDataManager);
});
it('should throw an error when dataManager is not provided', function () {
var consoleSpy = jest.spyOn(console, 'error').mockImplementation();
expect(function () {
(0, _react2.renderHook)(function () {
return (0, _DataManagerContext.useDataManager)();
});
}).toThrow('DataManager is not provided by context. Use DataManagerContext.Provider to do it');
consoleSpy.mockRestore();
});
});
// #sourceMappingURL=DataManagerContext.test.js.map