wix-style-react
Version:
wix-style-react
133 lines (110 loc) • 3.78 kB
JavaScript
;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _driverFactory = require('wix-ui-test-utils/driver-factory');
var _Popover = require('./Popover');
var _Popover2 = _interopRequireDefault(_Popover);
var _Popover3 = require('./Popover.driver');
var _Popover4 = _interopRequireDefault(_Popover3);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('Popover', function () {
var createDriver = (0, _driverFactory.createDriverFactory)(_Popover4.default);
it('should render', function () {
var driver = createDriver(_react2.default.createElement(
_Popover2.default,
null,
_react2.default.createElement(
_Popover2.default.Element,
null,
_react2.default.createElement(
'div',
null,
'I am the trigger!'
)
),
_react2.default.createElement(
_Popover2.default.Content,
null,
_react2.default.createElement(
'div',
null,
'I am the content!'
)
)
));
expect(driver.exists()).toBeTruthy();
});
it("should inherit core's driver methods", function () {
var onClickFn = jest.fn();
var driver = createDriver(_react2.default.createElement(
_Popover2.default,
{ shown: true, onClick: onClickFn },
_react2.default.createElement(
_Popover2.default.Element,
null,
'I am the trigger!'
),
_react2.default.createElement(
_Popover2.default.Content,
null,
'I am the content!'
)
));
expect(driver.isTargetElementExists()).toBe(true);
expect(driver.isContentElementExists()).toBe(true);
driver.click();
expect(onClickFn).toHaveBeenCalledTimes(1);
});
describe('propTypes validation', function () {
var consoleErrorSpy = void 0;
beforeEach(function () {
consoleErrorSpy = jest.spyOn(global.console, 'error').mockImplementation(jest.fn());
});
it('should throw a PropType error when not provided with Popover.Element', function () {
createDriver(_react2.default.createElement(
_Popover2.default,
null,
_react2.default.createElement(
_Popover2.default.Content,
null,
'I am the content!'
)
));
expect(consoleErrorSpy).toHaveBeenCalledWith('Warning: Failed prop type: Invalid children provided, <Popover.Element/> must be provided\n in Popover');
});
it('should throw a PropType error when not provided with Popover.Content', function () {
createDriver(_react2.default.createElement(
_Popover2.default,
null,
_react2.default.createElement(
_Popover2.default.Element,
null,
'I am the Element!'
)
));
expect(consoleErrorSpy).toHaveBeenCalledWith('Warning: Failed prop type: Invalid children provided, <Popover.Content/> must be provided\n in Popover');
});
it('should throw a PropType error when provided with unknown child', function () {
createDriver(_react2.default.createElement(
_Popover2.default,
null,
_react2.default.createElement(
_Popover2.default.Element,
null,
'I am the Element!'
),
_react2.default.createElement(
_Popover2.default.Content,
null,
'I am the content!'
),
_react2.default.createElement(
'div',
null,
'Who am I? What am I?'
)
));
expect(consoleErrorSpy).toHaveBeenCalledWith('Warning: Failed prop type: Invalid children provided, unknown child <div/> supplied\n in Popover');
});
});
});