wix-style-react
Version:
wix-style-react
61 lines (48 loc) • 1.97 kB
JavaScript
;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _unit = require('../../test/utils/unit');
var _propTypes3 = require('./propTypes');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('Utils: propTypes', function () {
describe('allValidators', function () {
var consoleErrorSpy = void 0;
beforeEach(function () {
consoleErrorSpy = jest.spyOn(global.console, 'error').mockImplementation(jest.fn());
});
afterEach(function () {
consoleErrorSpy.mockRestore();
(0, _unit.cleanup)();
jest.resetModules();
});
it('should not log error return undefined when all validators pass', function () {
var Comp = function Comp() {
return _react2.default.createElement('div', null);
};
Comp.propTypes = {
value: (0, _propTypes3.allValidators)(_propTypes2.default.number, function () {
return undefined;
})
};
(0, _unit.render)(_react2.default.createElement(Comp, null));
expect(consoleErrorSpy).toHaveBeenCalledTimes(0);
});
it('should log errors for both validators', function () {
var Comp = function Comp() {
return _react2.default.createElement('div', null);
};
Comp.propTypes = {
value: (0, _propTypes3.allValidators)(_propTypes2.default.number, function () {
return new Error('my error');
})
// value: PropTypes.number,
};
(0, _unit.render)(_react2.default.createElement(Comp, { value: 'invalid value' }));
expect(consoleErrorSpy).toHaveBeenCalledTimes(2);
expect(consoleErrorSpy.mock.calls[0][0]).toEqual(expect.stringContaining('Invalid value'));
expect(consoleErrorSpy.mock.calls[1][0]).toEqual(expect.stringContaining('my error'));
});
});
});