wix-style-react
Version:
wix-style-react
68 lines (62 loc) • 2.19 kB
JavaScript
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;