UNPKG

wix-style-react

Version:
119 lines (109 loc) 4.32 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _testUtils = require('react-dom/test-utils'); var _testUtils2 = _interopRequireDefault(_testUtils); var _styles = require('./navigation/styles.scss'); var _styles2 = _interopRequireDefault(_styles); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var sideMenuDriverFactory = function sideMenuDriverFactory(_ref) { var element = _ref.element; var getHeader = function getHeader() { return element.querySelector('[data-hook=menu-header]'); }; var getNavigation = function getNavigation() { return element.querySelector('[data-hook=menu-navigation]'); }; var getNavigationLinks = function getNavigationLinks() { return element.querySelectorAll('[data-hook=menu-navigation-link]'); }; var getNavigationLinkWrappers = function getNavigationLinkWrappers() { return element.querySelectorAll('[data-hook=menu-navigation-link-wrapper]'); }; var getNavigationSeparators = function getNavigationSeparators() { return element.querySelectorAll('[data-hook=menu-navigation-separator]'); }; var getNavigationCategories = function getNavigationCategories() { return element.querySelectorAll('[data-hook=menu-navigation-category]'); }; var getNavigationBackLink = function getNavigationBackLink() { return element.querySelector('[data-hook=menu-navigation-back-link]'); }; var getPromotion = function getPromotion() { return element.querySelector('[data-hook=menu-promotion]'); }; var getFooter = function getFooter() { return element.querySelector('[data-hook=menu-footer]'); }; var getBadge = function getBadge(link) { return link.querySelector('[data-hook=menu-navigation-badge]'); }; return { exists: function exists() { return !!element; }, hasHeader: function hasHeader() { return !!getHeader(); }, hasNavigation: function hasNavigation() { return !!getNavigation(); }, hasPromotion: function hasPromotion() { return !!getPromotion(); }, hasFooter: function hasFooter() { return !!getFooter(); }, hasBackLink: function hasBackLink() { return !!getNavigationBackLink(); }, headerContent: function headerContent() { return getHeader().textContent; }, navigationLinks: function navigationLinks() { return getNavigationLinks(); }, navigationInnerLinks: function navigationInnerLinks() { return getNavigationLinkWrappers(); }, isLinkActiveByIndex: function isLinkActiveByIndex(index) { var activeLinkWrapper = getNavigationLinkWrappers()[index]; var classExists = activeLinkWrapper.classList.contains(_styles2.default.linkActive); var dataAttributeExists = activeLinkWrapper.getAttribute('data-link-active') === 'true'; return classExists && dataAttributeExists; }, isLinkDisabledByIndex: function isLinkDisabledByIndex(index) { return getNavigationLinkWrappers()[index].classList.contains(_styles2.default.linkDisabled); }, isLinkBadgeVisibleByIndex: function isLinkBadgeVisibleByIndex(index) { return !!getBadge(getNavigationLinkWrappers()[index]); }, navigationSeparators: function navigationSeparators() { return getNavigationSeparators(); }, navigationCategories: function navigationCategories() { return getNavigationCategories(); }, navigationCategoryContent: function navigationCategoryContent(index) { return getNavigationCategories()[index].textContent; }, clickLinkByIndex: function clickLinkByIndex(index) { return _testUtils2.default.Simulate.click(getNavigationLinks()[index]); }, clickInnerLinkByIndex: function clickInnerLinkByIndex(index) { var innerLink = getNavigationLinkWrappers()[index].querySelector('a'); _testUtils2.default.Simulate.click(innerLink); }, clickBackLink: function clickBackLink() { return _testUtils2.default.Simulate.click(getNavigationBackLink()); }, promotionContent: function promotionContent() { return getPromotion().textContent; }, footerContent: function footerContent() { return getFooter().textContent; } }; }; exports.default = sideMenuDriverFactory;