wix-style-react
Version:
70 lines (58 loc) • 1.69 kB
JavaScript
import {
baseUniDriverFactory,
findByHook,
isElementFocused,
ReactBase,
} from '../../test/utils/unidriver';
import { textUniDriverFactory } from '../Text/Text.uni.driver';
import { tooltipDriverFactory } from '../Tooltip/Tooltip.uni.driver';
import { dataHooks } from './constants';
export const addItemUniDriverFactory = (base, body) => {
const tooltipDriver = tooltipDriverFactory(base, body);
const textDriver = textUniDriverFactory(
findByHook(base, dataHooks.itemText),
body,
);
const subtitleTextDriver = textUniDriverFactory(
findByHook(base, dataHooks.itemSubtitle),
body,
);
const addItemElement = findByHook(base, dataHooks.addItem);
const reactBaseElement = ReactBase(addItemElement);
return {
...baseUniDriverFactory(addItemElement, body),
/**
* Gets AddItem text
* @return {Promise<string>}
*/
getText: () => textDriver.getText(),
/**
* Checks whether AddItem text exist
* @returns {Promise<boolean>}
*/
textExists: () => textDriver.exists(),
/**
* Gets tooltip text
* @return {Promise<string>}
*/
getTooltipContent: () => tooltipDriver.getTooltipText(),
/**
* Gets AddItem subtitle
* @return {Promise<string>}
*/
getSubtitle: () => subtitleTextDriver.getText(),
/**
* Checks whether AddItem is focused
* @returns {Promise<boolean>}
*/
isFocused: async () => isElementFocused(addItemElement),
/**
* Sets focus on the element
*/
focus: async () => await reactBaseElement.focus(),
/**
* Removes focus on the element
*/
blur: async () => await reactBaseElement.blur(),
};
};