@gravity-ui/data-source
Version:
A wrapper around data fetching
61 lines (60 loc) • 2.63 kB
JavaScript
;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _react = _interopRequireDefault(require("react"));
var _react2 = require("@testing-library/react");
var _DataManagerContext = require("../DataManagerContext");
var _withDataManager = require("../withDataManager");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
jest.mock('../DataManagerContext', function () {
var originalModule = jest.requireActual('../DataManagerContext');
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, originalModule), {}, {
useDataManager: jest.fn()
});
});
describe('withDataManager', 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()
};
beforeEach(function () {
jest.clearAllMocks();
_DataManagerContext.useDataManager.mockReturnValue(mockDataManager);
});
it('should pass dataManager to wrapped component', function () {
var TestComponent = function TestComponent(_ref) {
var dataManager = _ref.dataManager;
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
"data-testid": "test-component",
children: dataManager ? 'DataManager provided' : 'No DataManager'
});
};
var WrappedComponent = (0, _withDataManager.withDataManager)(TestComponent);
(0, _react2.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {}));
expect(_react2.screen.getByTestId('test-component')).toHaveTextContent('DataManager provided');
});
it('should pass through additional props', function () {
var TestComponent = function TestComponent(_ref2) {
var dataManager = _ref2.dataManager,
testProp = _ref2.testProp;
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
"data-testid": "test-component",
children: dataManager ? "DataManager provided, testProp: ".concat(testProp) : 'No DataManager'
});
};
var WrappedComponent = (0, _withDataManager.withDataManager)(TestComponent);
(0, _react2.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
testProp: "test value"
}));
expect(_react2.screen.getByTestId('test-component')).toHaveTextContent('DataManager provided, testProp: test value');
});
});
// #sourceMappingURL=withDataManager.test.js.map