@elastic-suite/gally-admin-components
Version:
Components package for gally admin BO
148 lines (143 loc) • 5.39 kB
text/typescript
// TODO: factorize this with front/e2e/tests/helper/testIds.ts
export enum TestId {
CATALOGS = 'catalogs',
NB_ACTIVE_LOCALES = 'nbActiveLocales',
LANGUAGE = 'language',
INPUT_TEXT = 'inputText',
INPUT_INTEGER = 'inputInteger',
INPUT_FLOAT = 'inputFloat',
RANGE_TO_INPUT = 'rangeToInput',
RANGE_FROM_INPUT = 'rangeFromInput',
SLIDER = 'slider',
RANGE_DATE_FROM = 'rangeDateFrom',
RANGE_DATE_TO = 'rangeDateTo',
RULE_ENGINE = 'ruleEngine',
REQUEST_TYPE = 'requestType',
REQUEST_TYPE_ITEM = 'requestTypeItem',
SYNONYM = 'synonym',
SYNONYM_ADD_BUTTON = 'synonymAddButton',
SYNONYM_REMOVE_BUTTON = 'synonymRemoveButton',
TEXT_FIELD_TAGS = 'textFieldTags',
TEXT_FIELD_TAGS_CLEAN_BUTTON = 'textFieldTagsCleanButton',
TEXT_FIELD_TAGS_MULTIPLE = 'textFieldTagsMultiple',
TEXT_FIELD_TAGS_MULTIPLE_ADD_BUTTON = 'textFieldTagsMultipleAddButton',
EXPANSION = 'expansion',
EXPANSION_REFERENCE_TERM = 'expensionReferenceTerm',
EXPANSION_TERMS = 'expensionTerms',
EXPANSION_TRASH_BUTTON = 'expensionTrashButton',
EXPANSION_ADD_BUTTON = 'expensionAddButton',
MULTIPLE_INPUT = 'multipleInput',
SELECT = 'select',
SWITCH = 'switch',
TREE_SELECTOR = 'treeSelector',
DROPDOWN = 'dropdown',
DROPDOWN_OPTION = 'dropdownOption',
DROPDOWN_COLLAPSING_ICON = 'dropdownCollapsingIcon',
DROPDOWN_OPTION_GROUP_TITLE = 'dropdownOptionGroupTitle',
DROPDOWN_CLEAR_ICON = 'dropdownClearIcon',
HELPER_TEXT = 'helperText',
CHECKBOX = 'checkbox',
CHIP = 'chip',
CHIP_DELETE_ICON = 'chipDeleteIcon',
IONICON = 'ionicon',
FILTER = 'filter',
FILTER_CHIPS_BOX = 'filterChipsBox',
FILTER_APPLY_BUTTON = 'filterApplyButton',
FILTER_CLEAR_BUTTON = 'filterClearIcon',
FILTER_NB_ACTIVE_FILTERS = 'filterNbActiveFilters',
FILTER_TOGGLE_BUTTON = 'filterToggleButton',
FILTER_SEARCH_BAR = 'filterSearchBar',
BUTTON = 'button',
APP_BAR = 'appBar',
USER_MENU = 'userMenu',
USER_MENU_CONTENT = 'userMenuContent',
LOG_OUT_BUTTON = 'logOutButton',
ALERT = 'alert',
TABLE = 'table',
PAGINATION = 'pagination',
PAGINATION_FROM = 'paginationFrom',
PAGINATION_TO = 'paginationTo',
PAGINATION_COUNT = 'paginationCount',
POPIN_CATALOGS = 'popinCatalogs',
SIDE_BAR = 'sidebar',
SIDE_BAR_COLLAPSING_BUTTON = 'sidebarCollapsingButton',
MENU_ITEM = 'menuItem',
MENU_ITEM_CHILDREN = 'menuItemChildren',
MENU_ITEM_CHILDREN_COLLAPSING_BUTTON = 'menuItemChildrenCollapsingButton',
MENU_ITEM_ICON = 'menuItemIcon',
LABEL_MENU_ITEM_ICON = 'labelMenuItemIcon',
MENU_ITEM_LINK = 'menuItemLink',
MENU_ITEM_LINK_LABEL = 'menuItemLinkLabel',
BREADCRUMBS = 'breadcrumbs',
HELP_TOOLTIP = 'helpTooltip',
HELP_OVER = 'helpOver',
USER_NAME = 'userName',
USER_EMAIL = 'userEmail',
SCORE = 'score',
SCORE_CONTAINER = 'scoreContainer',
STOCK = 'stock',
PRICE = 'price',
OTHER_READABLE_FIELD = 'otherReadableField',
EXPLAIN_DETAILS = 'explainDetails',
EXPLAIN_DETAILS_NAME = 'explainDetailsName',
EXPLAIN_DETAILS_GENERAL_INFORMATION = 'explainDetailsGeneralInformation',
READ_ONLY_TABLE = 'readOnlyTable',
READ_ONLY_TABLE_ROW = 'readOnlyTableRow',
READ_ONLY_TABLE_ROW_IMPORTANT = 'readOnlyTableRowImportant',
READ_ONLY_TABLE_COLLAPSING_BUTTON = 'readOnlyTableCollapsingButton',
DIALOG = 'dialog',
DIALOG_CONTENT = 'dialogContent',
DIALOG_CLOSE_BUTTON = 'dialogCloseButton',
DIALOG_CANCEL_BUTTON = 'dialogCancelButton',
DIALOG_CONFIRM_BUTTON = 'dialogConfirmButton',
GRID_CREATE_BUTTON = 'gridCreateButton',
GRID_JOB_BUTTON = 'gridJobButton',
FIELD_SET = 'fieldSet',
PREVIEW_REQUIRED_MESSAGE = 'previewRequiredMessage',
RESOURCE_TABLE_NB_CUSTOM_VALUES_MESSAGE = 'resourceTableNbCustomValuesMessage',
TREE = 'tree',
TREE_ITEM_TITLE_BUTTON = 'treeItemTitleButton',
TREE_COLLAPSING_ITEM_LIST_BUTTON = 'treeCollapsingItemListButton',
FACETS_SETTINGS_BUTTON = 'facetDefaultValuesButton',
FACETS_PAGE_TITLE = 'facetsPageTitle',
PAGE_TITLE = 'pageTitle',
PRODUCTS_CONTAINER = 'productsContainer',
PRODUCTS_CONTAINER_SAVE_BUTTON = 'productsContainerSaveButton',
PRODUCTS_CONTAINER_SEARCH_BAR = 'productsContainerSearchBar',
TOP_AND_BOTTOM_TABLE = 'topAndBottomTable',
TITLE_BLOCK = 'titleBlock',
TABS = 'tabs',
TAB = 'tab',
RULES_MANAGER = 'rulesManager',
COMBINATION_RULES = 'combinationRules',
CONFIGURATION_FORM = 'configurationForm',
IMPORT_EXPORT_PROFILE_RUN = 'importExportProfileRun',
LOGS = 'logs',
JOBFILE = 'jobFile',
JOBPROFILE = 'jobProfile',
STATUS = 'status',
UPLOAD_JOB_FILE_MODAL = 'uploadJobFileModal',
UPLOAD_JOB_FILE_MODAL_TITLE = 'uploadJobFileModalTitle',
FILE_UPLOAD_DROPZONE = 'fileUploadDropZone',
FILE_UPLOAD_DROPZONE_SELECTED_FILE_NAME = 'selectedFileName',
FILE_DOWNLOADER = 'fileDownloader',
KPI = 'kpi',
KPI_GROUP = 'kpiGroup',
KPI_FILTERS = 'kpiFilters',
}
export const TEST_ID_SEPARATOR = '|'
type ItemIds = (TestId | string)[]
type ItemId = `${typeof TEST_ID_SEPARATOR}${TestId | string}` | ''
export type FullTestId = `${TestId}${ItemId}`
function normalizeItemId(itemIds: ItemIds): ItemId {
const filtered = itemIds.filter((itemId) => itemId)
return filtered.length > 0
? (`${TEST_ID_SEPARATOR}${filtered.join(TEST_ID_SEPARATOR)}` as ItemId)
: ''
}
export function generateTestId(
testId: TestId,
...itemIds: ItemIds
): FullTestId {
return `${testId}${normalizeItemId(itemIds)}`
}