UNPKG

wix-style-react

Version:
121 lines (105 loc) 3.21 kB
import React from 'react'; import { createDriverFactory } from 'wix-ui-test-utils/driver-factory'; import Popover from './Popover'; import popoverDriverFactory from './Popover.driver'; describe('Popover', function () { var createDriver = createDriverFactory(popoverDriverFactory); it('should render', function () { var driver = createDriver(React.createElement( Popover, null, React.createElement( Popover.Element, null, React.createElement( 'div', null, 'I am the trigger!' ) ), React.createElement( Popover.Content, null, React.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(React.createElement( Popover, { shown: true, onClick: onClickFn }, React.createElement( Popover.Element, null, 'I am the trigger!' ), React.createElement( Popover.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(React.createElement( Popover, null, React.createElement( Popover.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(React.createElement( Popover, null, React.createElement( Popover.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(React.createElement( Popover, null, React.createElement( Popover.Element, null, 'I am the Element!' ), React.createElement( Popover.Content, null, 'I am the content!' ), React.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'); }); }); });