wix-style-react
Version:
wix-style-react
57 lines • 2.31 kB
JavaScript
import { tooltipDriverFactory } from '../Tooltip/Tooltip.uni.driver';
import { buttonCoreDriverFactory } from '../Button/ButtonCore/ButtonCore.uni.driver';
import { baseUniDriverFactory, findByHook, getDataAttributeValue, } from '../test-utils/utils/unidriver';
import { dataHooks, dataAttr } from './constants';
export const toggleButtonDriverFactory = (base, body) => {
const buttonBaseElement = findByHook(base, dataHooks.button);
const tooltipBaseElement = base;
const tooltipDriver = tooltipDriverFactory(tooltipBaseElement, body);
const buttonDriver = buttonCoreDriverFactory(buttonBaseElement);
async function getLabelPlacement() {
return getDataAttributeValue(buttonBaseElement, dataAttr.placement);
}
function getTooltipText() {
return tooltipDriver.getTooltipText();
}
return {
...baseUniDriverFactory(buttonBaseElement, body),
/**
* Checks whether ToggleButton is disabled
* @returns {Promise<boolean>}
*/
isButtonDisabled: buttonDriver.isButtonDisabled,
/**
* Gets the ToggleButton skin
* @returns {Promise<string | null>}
*/
getSkin: async () => await getDataAttributeValue(buttonBaseElement, dataAttr.skin),
/**
* Checks whether ToggleButton is selected
* @returns {Promise<boolean>}
*/
isButtonSelected: async () => (await getDataAttributeValue(buttonBaseElement, dataAttr.selected)) ===
'true',
/**
* Gets the ToggleButton label placement
* @returns {Promise<string>}
*/
getLabelPlacement,
/**
* Gets the ToggleButton label placement value
* @returns {Promise<string>}
*/
getLabelValue: async () => {
const placement = await getLabelPlacement();
if (placement === 'tooltip') {
return getTooltipText();
}
return findByHook(buttonBaseElement, dataHooks.label).text();
},
/**
* Gets the ToggleButton shape
* @returns {Promise<string | null>}
*/
getShape: async () => await getDataAttributeValue(buttonBaseElement, dataAttr.shape),
};
};
//# sourceMappingURL=ToggleButton.uni.driver.js.map