wix-style-react
Version:
73 lines (66 loc) • 2.22 kB
JavaScript
import ReactTestUtils from 'react-dom/test-utils';
import { dataAttr, dataHooks } from './Tag.helpers';
var tagDriverFactory = function tagDriverFactory(_ref) {
var element = _ref.element;
var getRemoveButton = function getRemoveButton() {
return element.querySelector("[data-hook=\"".concat(dataHooks.removeButton, "\"]"));
};
var getThumb = function getThumb() {
return element.querySelector("[data-hook=\"".concat(dataHooks.thumb, "\"]"));
};
var removeTag = function removeTag() {
var removeButton = getRemoveButton();
if (removeButton) {
ReactTestUtils.Simulate.click(removeButton);
}
};
return {
exists: function exists() {
return !!element;
},
isTiny: function isTiny() {
return element.getAttribute(dataAttr.SIZE) === 'tiny';
},
isSmall: function isSmall() {
return element.getAttribute(dataAttr.SIZE) === 'small';
},
isMedium: function isMedium() {
return element.getAttribute(dataAttr.SIZE) === 'medium';
},
isLarge: function isLarge() {
return element.getAttribute(dataAttr.SIZE) === 'large';
},
isStandardTheme: function isStandardTheme() {
return element.getAttribute(dataAttr.THEME) === 'standard';
},
isWarningTheme: function isWarningTheme() {
return element.getAttribute(dataAttr.THEME) === 'warning';
},
isErrorTheme: function isErrorTheme() {
return element.getAttribute(dataAttr.THEME) === 'error';
},
isDarkTheme: function isDarkTheme() {
return element.getAttribute(dataAttr.THEME) === 'dark';
},
isSuccessTheme: function isSuccessTheme() {
return element.getAttribute(dataAttr.THEME) === 'success';
},
isRemovable: function isRemovable() {
return !!getRemoveButton();
},
removeTag: removeTag,
click: function click() {
return ReactTestUtils.Simulate.click(element);
},
isThumbExists: function isThumbExists() {
return !!getThumb();
},
isDisabled: function isDisabled() {
return element.getAttribute(dataAttr.DISABLED) === 'true';
},
getLabel: function getLabel() {
return element.textContent;
}
};
};
export default tagDriverFactory;