wix-style-react
Version:
wix-style-react
70 lines (53 loc) • 2.4 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';
const statsWidgetDriverFactory = ({ element }) => {
const getBadgeDriver = elm => badgeDriverFactory({ element: elm });
const getStatistic = index =>
findByHook(element, 'stats-widget-content-wrapper').childNodes[index];
const headerElement = findByHook(element, 'stats-widget-title');
const headerDriver = headerDriverFactory({
wrapper: element,
element: headerElement,
});
return {
exists: () => !!element,
titleText: () => headerDriver.title(),
isStatisticsContentExists: () =>
!!findByHook(element, 'stats-widget-content-wrapper'),
isEmptyStateExists: () => !!findByHook(element, 'stats-widget-empty-state'),
getStatisticTitle: index =>
findByHook(getStatistic(index), 'statistics-item-title').textContent,
getStatisticSubTitle: index =>
findByHook(getStatistic(index), 'statistics-item-subtitle').textContent,
getStatisticPercentValue: index =>
findByHook(getStatistic(index), 'percent-value').textContent,
isNegativePercentValue: index =>
getBadgeDriver(
findByHook(getStatistic(index), 'percent-value'),
).getSkin() === 'danger',
getStatisticPercentClass: index => {
const percentIcon = findByHook(getStatistic(index), 'percent-icon');
return (percentIcon && percentIcon.getAttribute('data-class')) || '';
},
getFilterButtonDriver: dataHook => ({
dropdownLayoutDriver: dropdownLayoutDriverFactory({
element: findByHook(
findByHook(element, dataHook),
'dropdown-base-dropdownlayout',
),
}),
}),
getFilterDriver: dataHook => {
deprecationLog(
'StatsWidget testkit method "getFilterDriver" is deprecated, use the new "getFilterButtonDriver" method instead.',
);
const optionElement = findByHook(element, dataHook);
return buttonWithOptionsDriverFactory({ element: optionElement });
},
};
};
export default statsWidgetDriverFactory;