UNPKG

wix-style-react

Version:
79 lines (62 loc) 2.85 kB
import ReactTestUtils from 'react-dom/test-utils'; import { THEMES, SIZES, DATA_HOOKS, DATA_ATTRIBUTES } from './constnats'; var breadcrumbsDriverFactory = function breadcrumbsDriverFactory(_ref) { var element = _ref.element; var optionAt = function optionAt(position) { return element.childNodes[position]; }; return { exists: function exists() { return !!element; }, /** return the number of the items in the breadcrumbs */ breadcrumbsLength: function breadcrumbsLength() { return element.childNodes.length; }, /** return the breadcrumb item content at position */ breadcrumbContentAt: function breadcrumbContentAt(position) { return optionAt(position).textContent; }, /** click on breadcrumb item at position */ clickBreadcrumbAt: function clickBreadcrumbAt(position) { return ReactTestUtils.Simulate.click(optionAt(position).querySelector("[data-hook^=\"".concat(DATA_HOOKS.BREADCRUMB_CLICKABLE, "\"]"))); }, /** return the active breadcrumb item position or return null if no active item exists */ getActiveItemId: function getActiveItemId() { var activeItem = element.querySelector("[".concat(DATA_ATTRIBUTES.DATA_ACTIVE, "=\"true\"]")); if (!activeItem) { return null; } return Array.from(activeItem.parentNode.children).indexOf(activeItem); }, /** fulfilled if breadcrumbs component is large */ isLarge: function isLarge() { return element.getAttribute(DATA_ATTRIBUTES.DATA_SIZE) === SIZES.large; }, /** fulfilled if breadcrumbs component is medium */ isMedium: function isMedium() { return element.getAttribute(DATA_ATTRIBUTES.DATA_SIZE) === SIZES.medium; }, /** fulfilled if breadcrumbs component is on white background */ isOnWhiteBackground: function isOnWhiteBackground() { return element.getAttribute(DATA_ATTRIBUTES.DATA_THEME) === THEMES.onWhiteBackground; }, /** fulfilled if breadcrumbs component is on gray background */ isOnGrayBackground: function isOnGrayBackground() { return element.getAttribute(DATA_ATTRIBUTES.DATA_THEME) === THEMES.onGrayBackground; }, /** fulfilled if breadcrumbs component is on dark background */ isOnDarkBackground: function isOnDarkBackground() { return element.getAttribute(DATA_ATTRIBUTES.DATA_THEME) === THEMES.onDarkBackground; }, /** returns breadcrumbs component classes */ getLabelClassList: function getLabelClassList(position) { return optionAt(position).querySelector("[data-hook=\"".concat(DATA_HOOKS.BREADCRUMBS_ITEM, "\"]")).className; }, /** returns true if the item is a link */ isActiveLinkAt: function isActiveLinkAt(index) { return !!optionAt(index).querySelector('a'); } }; }; export default breadcrumbsDriverFactory;