wix-style-react
Version:
wix-style-react
58 lines (54 loc) • 1.86 kB
JavaScript
import ReactTestUtils from 'react-dom/test-utils';
import { isClassExists } from '../../../test/utils';
var tooltipDriverFactory = function tooltipDriverFactory(_ref) {
var element = _ref.element,
wrapper = _ref.wrapper;
var target = element.querySelector("[data-hook='target']").children[0];
var tooltipInner = element.querySelector("[data-hook='tooltip-inner']");
var tooltipContent = tooltipInner.querySelector("[data-hook='tooltip-content']");
return {
isShown: function isShown() {
return isClassExists(tooltipInner, 'active');
},
focus: function focus() {
return ReactTestUtils.Simulate.focus(target);
},
blur: function blur() {
return ReactTestUtils.Simulate.blur(target);
},
click: function click() {
return ReactTestUtils.Simulate.click(target);
},
mouseEnter: function mouseEnter() {
return ReactTestUtils.Simulate.mouseEnter(target);
},
mouseLeave: function mouseLeave() {
return ReactTestUtils.Simulate.mouseLeave(target);
},
hasErrorTheme: function hasErrorTheme() {
return !!wrapper.querySelector('.error');
},
hasDarkTheme: function hasDarkTheme() {
return !!wrapper.querySelector('.dark');
},
hasLightTheme: function hasLightTheme() {
return !!wrapper.querySelector('.light');
},
getTooltipWrapper: function getTooltipWrapper() {
return wrapper.querySelector("[data-hook='tooltip']");
},
getChildren: function getChildren() {
return element.innerHTML;
},
getPlacement: function getPlacement() {
return tooltipInner.getAttribute('class').split(' ')[2];
},
getContent: function getContent() {
return tooltipContent.innerHTML;
},
getWrapper: function getWrapper() {
return wrapper;
}
};
};
export default tooltipDriverFactory;