wix-style-react
Version:
wix-style-react
108 lines (102 loc) • 3.24 kB
JavaScript
import { buttonTestkitFactory } from '../../testkit';
import addItemDriverFactory from '../AddItem/AddItem.driver';
import tooltipDriverFactory from '../Tooltip/Tooltip.driver';
var imageViewerDriverFactory = function imageViewerDriverFactory(_ref) {
var element = _ref.element,
eventTrigger = _ref.eventTrigger;
var addItemDataHook = 'add-image';
var updateDataHook = 'update-image';
var removeDataHook = 'remove-image';
var byHook = function byHook(dataHook) {
return element.querySelector('[data-hook="' + dataHook + '"]');
};
var image = function image() {
return byHook('image-viewer-image');
};
var errorIcon = function errorIcon() {
return byHook('error-tooltip');
};
var addItem = function addItem() {
return byHook(addItemDataHook);
};
var addItemDriver = addItemDriverFactory({
element: element,
eventTrigger: eventTrigger
});
var tooltipDriver = addItemDriver.getTooltipDriver();
var addItemClick = function addItemClick() {
return addItemDriverFactory({
element: byHook('add-image'),
eventTrigger: eventTrigger
}).click();
};
var updateIcon = function updateIcon() {
return byHook(updateDataHook);
};
var removeIcon = function removeIcon() {
return byHook(removeDataHook);
};
var updateButton = function updateButton() {
return buttonTestkitFactory({ wrapper: element, dataHook: updateDataHook });
};
var removeButton = function removeButton() {
return buttonTestkitFactory({ wrapper: element, dataHook: removeDataHook });
};
return {
getAddItemDataHook: function getAddItemDataHook() {
return addItemDataHook;
},
getElement: function getElement() {
return element;
},
getContainerStyles: function getContainerStyles() {
return element.getAttribute('style');
},
getImageUrl: function getImageUrl() {
return image().getAttribute('src');
},
getErrorTooltipContent: function getErrorTooltipContent() {
return tooltipDriverFactory({
element: errorIcon()
}).hoverAndGetContent();
},
getAddTooltipContent: function getAddTooltipContent() {
return tooltipDriver.hoverAndGetContent();
},
getUpdateTooltipContent: function getUpdateTooltipContent() {
return tooltipDriverFactory({
element: updateIcon()
}).hoverAndGetContent();
},
getRemoveTooltipContent: function getRemoveTooltipContent() {
return tooltipDriverFactory({
element: removeIcon()
}).hoverAndGetContent();
},
isAddItemVisible: function isAddItemVisible() {
return !!addItem();
},
isImageVisible: function isImageVisible() {
return !!image();
},
isErrorVisible: function isErrorVisible() {
return !!errorIcon();
},
clickAdd: function clickAdd() {
return addItemClick();
},
clickUpdate: function clickUpdate() {
return updateButton().click();
},
clickRemove: function clickRemove() {
return removeButton().click();
},
updateExists: function updateExists() {
return updateButton().exists();
},
exists: function exists() {
return !!element;
}
};
};
export default imageViewerDriverFactory;