UNPKG

wix-style-react

Version:
68 lines (62 loc) 2.19 kB
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } import ReactTestUtils from 'react-dom/test-utils'; import TabTypes from './core/constants/tab-types'; import styles from './Tabs.scss'; var tabsDriverFactory = function tabsDriverFactory(_ref) { var element = _ref.element; var findFirst = function findFirst(query) { return element.querySelector(query); }; var getItemsContainer = function getItemsContainer() { return findFirst('ul'); }; var getItems = function getItems() { return [].concat(_toConsumableArray(getItemsContainer().childNodes)); }; return { exists: function exists() { return !!element; }, getTitles: function getTitles() { return getItems().map(function (item) { return item.textContent; }); }, clickTabAt: function clickTabAt(index) { return ReactTestUtils.Simulate.click(getItems()[index]); }, getActiveTabIndex: function getActiveTabIndex() { return getItems().findIndex(function (item) { return item.classList.contains(styles.active); }); }, isDefaultType: function isDefaultType() { return TabTypes.every(function (tabType) { return !element.classList.contains(styles[tabType]); }); }, getItemsContainerClassList: function getItemsContainerClassList() { return getItemsContainer().classList; }, getDataHook: function getDataHook(index) { return getItems()[index].getAttribute('data-hook'); }, getItemsWidth: function getItemsWidth() { return new Set(getItems().map(function (item) { return item.style.width; })); }, hasDivider: function hasDivider() { return element.classList.contains(styles.hasDivider); }, getSideContent: function getSideContent() { return findFirst('.' + styles.sideContent); }, getItemsMaxWidths: function getItemsMaxWidths() { return getItems().map(function (item) { return item.style.maxWidth; }); } }; }; export default tabsDriverFactory;