UNPKG

wix-style-react

Version:
133 lines (110 loc) 3.78 kB
'use strict'; 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'); }); }); });