@gravity-ui/data-source
Version:
A wrapper around data fetching
46 lines (45 loc) • 1.7 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 = {
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 () {
try {
(0, _react2.renderHook)(function () {
return (0, _DataManagerContext.useDataManager)();
});
} catch (error) {
expect(error).toBeInstanceOf(Error);
// Just to be sure that the error is from the right place
expect(error.message).toBe('DataManager is not provided by context. Use DataManagerContext.Provider to do it');
}
});
});
// #sourceMappingURL=DataManagerContext.test.js.map