UNPKG

wix-style-react

Version:
76 lines 3.54 kB
import { baseUniDriverFactory } from '../test-utils/utils/unidriver'; import { infoIconDriverFactory } from '../InfoIcon/InfoIcon.uni.driver'; import { textUniDriverFactory } from '../Text/Text.uni.driver'; import { dataHooks } from './constants'; export const formFieldUniDriverFactory = (base, body) => { const charactersCounter = () => base.$(`[data-hook*="${dataHooks.counter}"]`); return { ...baseUniDriverFactory(base), /** get children */ getChildren: async () => { const baseUniDriverElement = base.$(`[data-hook*="${dataHooks.children}"]`); return (await baseUniDriverElement.exists()) ? baseUniDriverElement.getNative() // eslint-disable-line no-restricted-properties : null; }, /** get label */ getLabel: async () => { const baseUniDriverElement = base.$(`[data-hook*="${dataHooks.label}"]`); return (await baseUniDriverElement.exists()) ? baseUniDriverElement.getNative() // eslint-disable-line no-restricted-properties : null; }, /** returns label size */ getLabelSize: async () => { const labelDriver = textUniDriverFactory(base.$(`[data-hook="${dataHooks.label}"]`)); return labelDriver.getSize(); }, /** returns true whether form field is required */ isRequired: async () => base.$(`[data-hook*="${dataHooks.asterisk}"]`).exists(), /** returns the length left */ getLengthLeft: async () => { const counter = charactersCounter(); return (await counter.exists()) ? parseInt(await counter._prop('innerHTML'), 10) : null; }, /** returns whether the form field length is exceeded */ isLengthExceeded: async () => { const counter = charactersCounter(); if (await counter.exists()) { const length = parseInt(await counter._prop('innerHTML'), 10); return length < 0; } return false; }, /** returns true whether form field has tooltip */ hasTooltip: async () => { return base.$(`[data-hook="${dataHooks.infoIcon}"]`).exists(); }, /** returns tooltip text of the info content */ getInfoContent: async () => { const testkit = infoIconDriverFactory(base.$(`[data-hook="${dataHooks.infoIcon}"]`), body); return testkit.getContent(); }, /** get form field suffix */ getSuffix: async () => { const suffixElement = base.$(`[data-hook="${dataHooks.suffix}"]`); return (await suffixElement.exists()) ? suffixElement.getNative() // eslint-disable-line no-restricted-properties : null; }, /** hovers over the formfield infoicon */ hoverInfoIcon: async () => { const testkit = infoIconDriverFactory(base.$(`[data-hook="${dataHooks.infoIcon}"]`), body); return testkit.hover(); }, /** returns status message text */ getStatusMessage: async () => { const testkit = textUniDriverFactory(base.$(`[data-hook="${dataHooks.statusMessage}"]`), body); return testkit.getText(); }, /** return true if it has a given status */ hasStatus: async (status) => (await base.attr('data-status')) === status, }; }; //# sourceMappingURL=FormField.uni.driver.js.map