UNPKG

wix-style-react

Version:
147 lines (118 loc) 4.82 kB
'use strict'; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _driverFactory = require('wix-ui-test-utils/driver-factory'); var _SideMenu = require('./SideMenu.driver'); var _SideMenu2 = _interopRequireDefault(_SideMenu); var _index = require('../index'); var _index2 = _interopRequireDefault(_index); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } describe('SideMenu', function () { var createDriver = (0, _driverFactory.createDriverFactory)(_SideMenu2.default); function createComponent(_ref) { var header = _ref.header, navigation = _ref.navigation, promotion = _ref.promotion, footer = _ref.footer; return createDriver(_react2.default.createElement( _index2.default, null, header && _react2.default.createElement( _index2.default.Header, null, header ), navigation && _react2.default.createElement( _index2.default.Navigation, null, navigation ), promotion && _react2.default.createElement( _index2.default.Promotion, null, promotion ), footer && _react2.default.createElement( _index2.default.Footer, null, footer ) )); } it('should render empty menu', function () { var driver = createComponent({}); expect(driver.exists()).toBe(true); expect(driver.hasHeader()).toBe(false); expect(driver.hasNavigation()).toBe(false); expect(driver.hasPromotion()).toBe(false); expect(driver.hasFooter()).toBe(false); }); it('should render full menu', function () { var menu = { header: 'Hello Header', navigation: [_react2.default.createElement(_index2.default.NavigationLink, { key: '0', href: '//wix.com' }), _react2.default.createElement(_index2.default.NavigationSeparator, { key: '1' }), _react2.default.createElement(_index2.default.NavigationLink, { key: '2', href: '//wix.com' })], promotion: 'Hello Promotion', footer: 'Hello Footer' }; var driver = createComponent(menu); expect(driver.exists()).toBe(true); expect(driver.hasHeader()).toBe(true); expect(driver.headerContent()).toBe(menu.header); expect(driver.hasNavigation()).toBe(true); expect(driver.navigationLinks()).toHaveLength(2); expect(driver.navigationSeparators()).toHaveLength(1); expect(driver.hasPromotion()).toBe(true); expect(driver.promotionContent()).toBe(menu.promotion); expect(driver.hasFooter()).toBe(true); expect(driver.footerContent()).toBe(menu.footer); }); it('should render a sub menu', function () { var menu = { navigation: [_react2.default.createElement( _index2.default.NavigationBackLink, { key: '0' }, 'Back' ), _react2.default.createElement( _index2.default.NavigationCategory, { key: '1' }, 'Category 1' ), _react2.default.createElement(_index2.default.NavigationLink, { key: '2', href: '//wix.com' })] }; var driver = createComponent(menu); expect(driver.hasBackLink()).toBe(true); expect(driver.navigationCategories()).toHaveLength(1); expect(driver.navigationLinks()).toHaveLength(1); }); it('should allow to click on a back menu', function () { var spy = jest.fn(); var menu = { navigation: [_react2.default.createElement( _index2.default.NavigationBackLink, { key: '0', onBackHandler: spy }, 'Back' )] }; var driver = createComponent(menu); driver.clickBackLink(); expect(spy).toHaveBeenCalled(); }); it('should allow to select a menu navigation link', function () { var spy = jest.fn(); var menu = { navigation: [_react2.default.createElement(_index2.default.NavigationLink, { key: '0' }), _react2.default.createElement(_index2.default.NavigationLink, { key: '1', onClick: spy }), _react2.default.createElement(_index2.default.NavigationLink, { key: '2' })] }; var driver = createComponent(menu); driver.clickLinkByIndex(1); expect(spy).toHaveBeenCalled(); }); it('should allow to have a badge', function () { var badge = _react2.default.createElement(_index2.default.NavigationBadge, null); var menu = { navigation: [_react2.default.createElement(_index2.default.NavigationLink, { key: '0' }), _react2.default.createElement(_index2.default.NavigationLink, { key: '1', badge: badge }), _react2.default.createElement(_index2.default.NavigationLink, { key: '2' })] }; var driver = createComponent(menu); expect(driver.isLinkBadgeVisibleByIndex(0)).toBe(false); expect(driver.isLinkBadgeVisibleByIndex(1)).toBe(true); expect(driver.isLinkBadgeVisibleByIndex(2)).toBe(false); }); });