UNPKG

wix-style-react

Version:
70 lines 3.04 kB
import { baseUniDriverFactory } from '../test-utils/utils/unidriver'; import { DATA_HOOKS, DATA_ATTRIBUTES, SIZES, THEMES } from './constnats'; export const breadcrumbsUniDriverFactory = base => { const optionAt = async (position) => base.$(`[data-hook="${DATA_HOOKS.ITEM_WRAPPER}-${position}"]`); return { ...baseUniDriverFactory(base), /** * Gets number of breadcrumbs * @return {Promise<number>} */ breadcrumbsLength: async () => await base.$$(`[data-hook^="${DATA_HOOKS.ITEM_WRAPPER}-"]`).count(), /** * Gets breadcrumb content at position * @param {number} position Breadcrumb index * @return {Promise<string>} */ breadcrumbContentAt: async (position) => await (await optionAt(position)).text(), /** * Clicks on breadcrumb at position * @param {number} position Breadcrumb index * @return {Promise<void>} */ clickBreadcrumbAt: async (position) => base .$(`[data-hook^="${DATA_HOOKS.BREADCRUMB_CLICKABLE}-${position}"]`) .click(), /** * Gets the active breadcrumb position or null if no breadcrumb is active * @return {Promise<number | null>} */ getActiveItemId: async () => { const activeItem = await base.$$(`[${DATA_ATTRIBUTES.DATA_ACTIVE}="true"]`); return (await activeItem.count()) === 1 ? parseInt(await activeItem.get(0).attr(DATA_ATTRIBUTES.DATA_POSITION_ID)) : null; }, /** * Checks whether breadcrumbs are size large * @return {Promise<boolean>} */ isLarge: async () => (await base.attr(DATA_ATTRIBUTES.DATA_SIZE)) === SIZES.large, /** * Checks whether breadcrumbs are size medium * @return {Promise<boolean>} */ isMedium: async () => (await base.attr(DATA_ATTRIBUTES.DATA_SIZE)) === SIZES.medium, /** * Checks whether breadcrumbs are on white background * @return {Promise<boolean>} */ isOnWhiteBackground: async () => (await base.attr(DATA_ATTRIBUTES.DATA_THEME)) === THEMES.onWhiteBackground, /** * Checks whether breadcrumbs are on gray background * @return {Promise<boolean>} */ isOnGrayBackground: async () => (await base.attr(DATA_ATTRIBUTES.DATA_THEME)) === THEMES.onGrayBackground, /** * Checks whether breadcrumbs are on dark background * @return {Promise<boolean>} */ isOnDarkBackground: async () => (await base.attr(DATA_ATTRIBUTES.DATA_THEME)) === THEMES.onDarkBackground, /** * Checks whether breadcrumb at index is active * @param {number} index Breadcrumb index * @return {Promise<boolean>} */ isActiveLinkAt: async (index) => await (await optionAt(index)).$('a').exists(), }; }; //# sourceMappingURL=Breadcrumbs.uni.driver.js.map