UNPKG

wix-style-react

Version:
75 lines 2.63 kB
import { baseUniDriverFactory } from '../test-utils/utils/unidriver'; export const popoverUniDriverFactory = (base, body) => { const byHook = (hook) => base.$(`[data-hook="${hook}"]`); const queryDocumentOrElement = async (query) => { const elm = base.$$(query).get(0); if (await elm.exists()) { return elm; } return body.$(query); }; const getContentElement = async () => { const contentHook = await base.attr('data-content-hook'); const contentSelector = `[data-content-element="${contentHook}"]`; return queryDocumentOrElement(contentSelector); }; return { ...baseUniDriverFactory(base), /** * Clicks on the target element * @returns {Promise<void>} */ click: async () => byHook('popover-element').click(), /** * Gets the target element * @returns {Promise<any>} */ getTargetElement: async () => byHook('popover-element').getNative(), /** * Checks whether target element exists * @returns {Promise<boolean>} */ isTargetElementExists: async () => byHook('popover-element').exists(), /** * Gets the portal element * @returns {Promise<any>} */ getPortalElement: async () => byHook('popover-portal').getNative(), /** * Gets the content element * @returns {Promise<any>} */ getContentElement: async () => (await getContentElement()).getNative(), /** * Checks whether content element exists * @returns {Promise<boolean>} */ isContentElementExists: async () => (await getContentElement()).exists(), /** * Triggers a mouseEnter event * @returns {Promise<void>} */ mouseEnter: () => base.hover(), /** * Triggers a mouseLeave event * @returns {Promise<void>} */ mouseLeave: async () => base.mouse.leave(), /** * Clicks outside the target element (triggers mouseDown and mouseUp events) * @returns {Promise<void>} */ clickOutside: async () => body.click(), /** * Gets the arrow offset * @returns {Promise<any>} */ getArrowOffset: async () => (await byHook('popover-arrow').getNative()).style, /** * Gets content as unidriver element * @private */ getContentElementUniDriver: async () => getContentElement(), }; }; //# sourceMappingURL=Popover.uni.driver.js.map