import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';
import {
InputWithOptionsUniDriver,
TabsUniDriver,
} from '@wix/design-system/dist/testkit/unidriver';
import { baseUniDriverFactory } from '../../unidriver';
export function TabsFilterUniDriver(base: UniDriver, body: UniDriver) {
const tabsBase = () => base.$('[data-hook="tabs-default"]');
const tabsUniDriver = TabsUniDriver(tabsBase(), body);
const getTabs = () => tabsBase().$$('[data-hook="tabs-filter-tab-title"]');
const getTabAt = (index: number) => getTabs().get(index);
return {
/**
* Wait for tabs filter to render
* @param timeout
*/
wait: (timeout?: number) => base.wait(timeout),
...baseUniDriverFactory(base),
/**
* Get all tabs titles text
*/
getTitles: () =>
getTabs().map((e) => e.$('[data-hook="title-text"]').text()),
/**
*
* Get all tabs total text (requires )
*/
getParensTotals: () =>
getTabs().map((e) =>
e.$('[data-hook="title-badge"]').$('[data-hook="total"]').text(),
),
/**
* Get all tabs total text (requires )
*/
getCounterBadgeTotals: () =>
getTabs().map((e) => e.$('[data-hook="title-badge"]').text()),
/**
* Get the index of the current active tab
*/
getActiveTabIndex: () => tabsUniDriver.getActiveTabIndex(),
/**
* Click a tab
* @param index
*/
clickTabAt: (index: number) => tabsUniDriver.clickTabAt(index),
/**
* Hover a tab
* @param index
*/
hoverTabAt: (index: number) => getTabAt(index).hover(),
/**
* Get the title text of a tab
* @param index
*/
getTitleTextAt: (index: number) =>
getTabs().get(index).$('[data-hook="title-text"]').text(),
/**
* Get the total text of a tab (requires )
* @param index
*/
getTotalBadgeTextAt: (index: number) =>
getTabs().get(index).$('[data-hook="title-badge"]').text(),
/**
* Get the total text of a tab (requires )
* @param index
*/
getTotalParensTextAt: (index: number) =>
getTabs()
.get(index)
.$('[data-hook="title-badge"]')
.$('[data-hook="total"]')
.text(),
dropdown: () =>
InputWithOptionsUniDriver(base.$('[data-hook="tabs-dropdown"]'), body),
tabsBadgesExists: () =>
getTabs().at(0).$('[data-hook="title-badge"]').exists(),
};
}
export default TabsFilterUniDriver;