import { StylableDOMUtil } from '@stylable/dom-test-kit'; import { buttonDriverFactory as coreButtonDriverFactory, ButtonDriver as CoreButtonDriver } from 'wix-ui-core/drivers/vanilla'; import { DriverFactory, BaseDriver, ComponentFactory } from 'wix-ui-test-utils/driver-factory'; import style from './Button.st.css'; import { Skin, Priority, Size } from './constants'; export interface ButtonDriver extends CoreButtonDriver { getSkin: () => Skin; getPriority: () => Priority; getSize: () => Size; } export const buttonDriverFactory: DriverFactory = (factoryParams: ComponentFactory): ButtonDriver => { const { element } = factoryParams; const stylableDOMUtil = new StylableDOMUtil(style, element); const getStyleState = (stateName: string) => stylableDOMUtil.getStyleState(element, stateName) as any as T | null; return { ...coreButtonDriverFactory(factoryParams), getSkin: () => getStyleState('skin'), getPriority: () => getStyleState('priority'), getSize: () => getStyleState('size'), }; };