wix-style-react
Version:
wix-style-react
80 lines (63 loc) • 2.9 kB
JavaScript
import buttonWithOptionsDriverFactory from '../ButtonWithOptions/ButtonWithOptions.driver';
import dropdownLayoutDriverFactory from '../DropdownLayout/DropdownLayout.driver';
import headerDriverFactory from '../Card/Header/Header.driver';
import { badgeDriverFactory } from 'wix-ui-backoffice/dist/src/components/Badge/Badge.driver';
import { findByHook } from '../../test/utils';
import deprecationLog from '../utils/deprecationLog';
var statsWidgetDriverFactory = function statsWidgetDriverFactory(_ref) {
var element = _ref.element;
var getBadgeDriver = function getBadgeDriver(elm) {
return badgeDriverFactory({ element: elm });
};
var getStatistic = function getStatistic(index) {
return findByHook(element, 'stats-widget-content-wrapper').childNodes[index];
};
var headerElement = findByHook(element, 'stats-widget-title');
var headerDriver = headerDriverFactory({
wrapper: element,
element: headerElement
});
return {
exists: function exists() {
return !!element;
},
titleText: function titleText() {
return headerDriver.title();
},
isStatisticsContentExists: function isStatisticsContentExists() {
return !!findByHook(element, 'stats-widget-content-wrapper');
},
isEmptyStateExists: function isEmptyStateExists() {
return !!findByHook(element, 'stats-widget-empty-state');
},
getStatisticTitle: function getStatisticTitle(index) {
return findByHook(getStatistic(index), 'statistics-item-title').textContent;
},
getStatisticSubTitle: function getStatisticSubTitle(index) {
return findByHook(getStatistic(index), 'statistics-item-subtitle').textContent;
},
getStatisticPercentValue: function getStatisticPercentValue(index) {
return findByHook(getStatistic(index), 'percent-value').textContent;
},
isNegativePercentValue: function isNegativePercentValue(index) {
return getBadgeDriver(findByHook(getStatistic(index), 'percent-value')).getSkin() === 'danger';
},
getStatisticPercentClass: function getStatisticPercentClass(index) {
var percentIcon = findByHook(getStatistic(index), 'percent-icon');
return percentIcon && percentIcon.getAttribute('data-class') || '';
},
getFilterButtonDriver: function getFilterButtonDriver(dataHook) {
return {
dropdownLayoutDriver: dropdownLayoutDriverFactory({
element: findByHook(findByHook(element, dataHook), 'dropdown-base-dropdownlayout')
})
};
},
getFilterDriver: function getFilterDriver(dataHook) {
deprecationLog('StatsWidget testkit method "getFilterDriver" is deprecated, use the new "getFilterButtonDriver" method instead.');
var optionElement = findByHook(element, dataHook);
return buttonWithOptionsDriverFactory({ element: optionElement });
}
};
};
export default statsWidgetDriverFactory;