mirror of
https://github.com/apache/superset.git
synced 2024-09-06 22:07:34 -04:00
680 lines
25 KiB
TypeScript
680 lines
25 KiB
TypeScript
/**
|
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
* or more contributor license agreements. See the NOTICE file
|
|
* distributed with this work for additional information
|
|
* regarding copyright ownership. The ASF licenses this file
|
|
* to you under the Apache License, Version 2.0 (the
|
|
* "License"); you may not use this file except in compliance
|
|
* with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
|
|
const dataTestLocator = (value: string) => `[data-test='${value}']`;
|
|
|
|
export function dataTestChartName(chartName: string): string {
|
|
return `[data-test-chart-name='${chartName}']`;
|
|
}
|
|
|
|
export const pageHeader = {
|
|
logo: '.navbar-brand > img',
|
|
headerNavigationItem: '.ant-menu-submenu-title',
|
|
headerNavigationDropdown: "[aria-label='triangle-down']",
|
|
headerNavigationItemMenu: '.ant-menu-item-group-list',
|
|
plusIcon: ':nth-child(2) > .ant-menu-submenu-title',
|
|
plusIconMenuOptions: {
|
|
sqlQueryOption: dataTestLocator('menu-item-SQL query'),
|
|
chartOption: dataTestLocator('menu-item-Chart'),
|
|
dashboardOption: dataTestLocator('menu-item-Dashboard'),
|
|
},
|
|
plusMenu: '.ant-menu-submenu-popup',
|
|
barButtons: '[role="presentation"]',
|
|
sqlLabMenu: '[id="item_3$Menu"]',
|
|
dataMenu: '[id="item_4$Menu"]',
|
|
};
|
|
|
|
export const profile = {
|
|
activeTab: '.ant-tabs-tab-active',
|
|
inactiveTab: '.ant-tabs-tab',
|
|
emptyFavoritedPlaceholder: '.ant-empty-normal',
|
|
tableRow: '.table-row',
|
|
favoritesSpace: '#rc-tabs-0-panel-2',
|
|
};
|
|
export const securityAccess = {
|
|
rolesBubble: '.ant-badge-count',
|
|
};
|
|
export const homePage = {
|
|
homeSection: {
|
|
sectionArea: '.ant-collapse-content-box',
|
|
sectionElement: '.ant-card-meta-title',
|
|
},
|
|
sections: {
|
|
expandedSection: '.ant-collapse-item-active',
|
|
expandedSectionHeader: '[aria-expanded="true"]',
|
|
collapseExpandButton: '.ant-collapse-arrow',
|
|
collapsedSection: '[class="ant-collapse-item"]',
|
|
collapsedSectionHeader: '[aria-expanded="false"]',
|
|
section: '[class^="ant-collapse-item"]',
|
|
sectionsMenuContainer: "[role='navigation']",
|
|
sectionsMenuItem: "[role='menuitem']",
|
|
card: dataTestLocator('styled-card'),
|
|
},
|
|
thumbnailsSection: {
|
|
container: "[class='switch']",
|
|
toggle: "[role ='switch']",
|
|
},
|
|
};
|
|
export const databasesPage = {
|
|
addDatabaseButton: dataTestLocator('btn-create-database'),
|
|
searchInput: dataTestLocator('search-input'),
|
|
table: {
|
|
tableRow: dataTestLocator('table-row'),
|
|
tableCell: dataTestLocator('table-row-cell'),
|
|
editButton: dataTestLocator('edit-alt'),
|
|
},
|
|
modal: {
|
|
header: '#rcDialogTitle0 > h4',
|
|
step: '.helper-top',
|
|
selectDbStepTitle: '.select-db > h4',
|
|
preferredBlockBigQuery: '.preferred > :nth-child(1)',
|
|
preferredBlockPostgreSQL: '.preferred > :nth-child(2)',
|
|
preferredBlockSnowflake: '.preferred > :nth-child(3)',
|
|
preferredBlockMySQL: '.preferred > :nth-child(4)',
|
|
preferredBlockAthena: '.preferred > :nth-child(5)',
|
|
preferredBlockSheets: '.preferred > :nth-child(6)',
|
|
supportedDatabasesText: '.control-label',
|
|
orChoose: '.available-label',
|
|
dbDropdown: '[class="ant-select-selection-search-input"]',
|
|
dbDropdownMenu: '.rc-virtual-list-holder-inner',
|
|
dbDropdownMenuItem: '[class="ant-select-item-option-content"]',
|
|
infoAlert: '.ant-alert',
|
|
serviceAccountInput: '[name="credentials_info"]',
|
|
connectionStep: {
|
|
modal: '.ant-modal-content',
|
|
modalBody: '.ant-modal-body',
|
|
stepTitle: '.css-7x6kk > h4',
|
|
helperBottom: '.helper-bottom',
|
|
postgresDatabase: '[name="database"]',
|
|
dbInput: '[name="database_name"]',
|
|
alertMessage: '.ant-alert-message',
|
|
errorField: '[role="alert"]',
|
|
uploadJson: '[title="Upload JSON file"]',
|
|
chooseFile: '[class="ant-btn input-upload-btn"]',
|
|
additionalParameters: '[name="query_input"]',
|
|
sqlAlchemyUriInput: dataTestLocator('sqlalchemy-uri-input'),
|
|
advancedTab: '#rc-tabs-0-tab-2',
|
|
activeTab: '.ant-tabs-tab-active',
|
|
securitySubMenu:
|
|
':nth-child(3) > .ant-collapse-header > .anticon > svg > path',
|
|
aceTextInput: '.ace_text-input',
|
|
aceContent: '.ace_content',
|
|
connectButton: '.css-16i3wh7',
|
|
hostInput: '[name="host"]',
|
|
portInput: '[name="port"]',
|
|
usernameInput: '[name="username"]',
|
|
passwordInput: '[name="password"]',
|
|
switch: '.ant-switch',
|
|
},
|
|
},
|
|
};
|
|
|
|
export const sqlLabView = {
|
|
sqlEditorLeftBar: {
|
|
sqlEditorLeftBar: '[data-test="sql-editor-left-bar"]',
|
|
databaseSchemaTableSection:
|
|
'[data-test="sql-editor-left-bar"] > :nth-child(1)',
|
|
tableSchemaSection:
|
|
'[data-test="sql-editor-left-bar"] > :nth-child(1) > :nth-child(3) > :nth-child(1)',
|
|
tableSchemaInputEmpty: '[aria-label="Select table or type table name"]',
|
|
},
|
|
databaseInput: '[data-test=DatabaseSelector] > :nth-child(1)',
|
|
emptyMenuOptionsPlaceholder: '[class="ant-empty-img-simple"]',
|
|
removeTabButton: '.ant-tabs-tab-remove > .anticon > svg',
|
|
tabsNavList: "[class='ant-tabs-nav-list']",
|
|
tab: "[class='ant-tabs-tab-btn']",
|
|
addTabButton: dataTestLocator('add-tab-icon'),
|
|
tooltip: '.ant-tooltip-content',
|
|
tabName: '.css-1suejie',
|
|
schemaInput: '[data-test=DatabaseSelector] > :nth-child(2)',
|
|
loadingIndicator: '.Select__loading-indicator',
|
|
menuItem: '[class="ant-select-item-option-content"]',
|
|
examplesMenuItem: '[title="examples"]',
|
|
tableInput: ':nth-child(4) > .select > :nth-child(1)',
|
|
sqlEditor: '#brace-editor textarea',
|
|
saveAsButton: '.SaveQuery > .ant-btn',
|
|
saveAsModal: {
|
|
footer: '.ant-modal-footer',
|
|
queryNameInput: 'input[class^="ant-input"]',
|
|
},
|
|
sqlToolbar: {
|
|
toolbar: '#js-sql-toolbar',
|
|
runButton: '.css-d3dxop',
|
|
},
|
|
rowsLimit: {
|
|
dropdown: '.ant-dropdown-menu',
|
|
limitButton: '.ant-dropdown-menu-item',
|
|
limitButtonText: '.css-151uxnz',
|
|
limitTextWithValue: '[class="ant-dropdown-trigger"]',
|
|
},
|
|
renderedTableHeader: '.ReactVirtualized__Table__headerRow',
|
|
renderedTableRow: '.ReactVirtualized__Table__row',
|
|
errorBody: '.error-body',
|
|
alertMessage: '.ant-alert-message',
|
|
historyTable: {
|
|
header: '[role=columnheader]',
|
|
table: '.QueryTable',
|
|
row: dataTestLocator('table-row'),
|
|
failureMarkIcon: '[aria-label=x-small]',
|
|
successMarkIcon: '[aria-label=check]',
|
|
},
|
|
};
|
|
export const queryHistory = {
|
|
tableHeader: dataTestLocator('sort-header'),
|
|
row: dataTestLocator('table-row'),
|
|
cell: dataTestLocator('table-row-cell'),
|
|
action: '[aria-label=full]',
|
|
};
|
|
export const savedQuery = {
|
|
tableHeader: dataTestLocator('sort-header'),
|
|
row: dataTestLocator('table-row'),
|
|
cell: dataTestLocator('table-row-cell'),
|
|
trash: dataTestLocator('delete-action'),
|
|
deleteQueryIcon: '[data-test="delete-action"]',
|
|
deleteModal: {
|
|
deleteInput: dataTestLocator('delete-modal-input'),
|
|
deleteButton: dataTestLocator('modal-confirm-button'),
|
|
},
|
|
};
|
|
export const annotationLayersView = {
|
|
emptyDescription: {
|
|
description: '.ant-empty-description',
|
|
addAnnotationLayerButton: '.ant-empty-footer > .ant-btn',
|
|
},
|
|
modal: {
|
|
content: {
|
|
content: '.ant-modal-body',
|
|
title: '.ant-modal-body > :nth-child(2) > input',
|
|
description: "[name='descr']",
|
|
},
|
|
footer: {
|
|
footer: '.ant-modal-footer',
|
|
addButton: dataTestLocator('modal-confirm-button'),
|
|
cancelButton: dataTestLocator('modal-cancel-button'),
|
|
},
|
|
},
|
|
};
|
|
export const datasetsList = {
|
|
newDatasetButton: '.css-yff34v',
|
|
searchInput: dataTestLocator('filters-search'),
|
|
newDatasetModal: {
|
|
inputField: '[class="section"]',
|
|
addButton: dataTestLocator('modal-confirm-button'),
|
|
body: '.ant-modal-body',
|
|
},
|
|
table: {
|
|
tableRow: {
|
|
row: dataTestLocator('table-row'),
|
|
rowText: dataTestLocator('cell-text'),
|
|
rowCell: dataTestLocator('table-row-cell'),
|
|
},
|
|
tableRowHeader: {
|
|
header: dataTestLocator('sort-header'),
|
|
unsorted: '[aria-label="sort"]',
|
|
sortAsc: '[aria-label="sort-asc"]',
|
|
sortDesc: '[aria-label="sort-desc"]',
|
|
},
|
|
rowActionItems: dataTestLocator('table-row-cell'),
|
|
actionButton: '.action-button',
|
|
editButton: '[aria-label="edit-alt"]',
|
|
},
|
|
editDatasetModal: {
|
|
modal: dataTestLocator('edit-dataset-tabs'),
|
|
sourceNavigationTab: '#table-tabs-tab-0',
|
|
metricsNavigationTab: dataTestLocator('collection-tab-Metrics'),
|
|
columnsNavigationTab: dataTestLocator('collection-tab-Columns'),
|
|
calculatedColumnsNavigationTab: dataTestLocator(
|
|
'collection-tab-Calculated columns',
|
|
),
|
|
settingsNavigationTab: '#table-tabs-tab-4',
|
|
saveButton: dataTestLocator('datasource-modal-save'),
|
|
sourceContent: '#table-tabs-panel-0',
|
|
metricsContent: '#table-tabs-panel-1',
|
|
columnsContent: '#table-tabs-panel-2',
|
|
calculatedColumnsContent: '#table-tabs-panel-3',
|
|
settingsContent: '#table-tabs-panel-4',
|
|
aceTextInput: '.ace_text-input',
|
|
sourceSQLInput: '.ace_content',
|
|
sourceVirtualSQLRadio: ':nth-child(2) > .ant-radio > .ant-radio-inner',
|
|
sourcePadlock: '[aria-label=lock-locked]',
|
|
legacy: {
|
|
panel: '.panel-body',
|
|
sqlInput: '#sql',
|
|
save: '.well > .btn-primary',
|
|
description: '#description',
|
|
},
|
|
},
|
|
deleteDatasetModal: {
|
|
modal: '.ant-modal-content',
|
|
deleteInput: dataTestLocator('delete-modal-input'),
|
|
deleteButton: dataTestLocator('modal-confirm-button'),
|
|
text: '.css-kxmt87',
|
|
},
|
|
};
|
|
export const chartListView = {
|
|
filtersBar: {
|
|
searchField: dataTestLocator('filters-search'),
|
|
},
|
|
top: {
|
|
bulkSelect: dataTestLocator('bulk-select'),
|
|
},
|
|
header: {
|
|
cardView: '[aria-label="card-view"]',
|
|
listView: '[aria-label="list-view"]',
|
|
sort: '[class="ant-select-selection-search-input"][aria-label="Sort"]',
|
|
sortRecentlyModifiedMenuOption: '[label="Recently modified"]',
|
|
sortAlphabeticalMenuOption: '[label="Alphabetical"]',
|
|
sortDropdown: '.Select__menu',
|
|
},
|
|
card: {
|
|
card: dataTestLocator('styled-card'),
|
|
cardCover: '[class="ant-card-cover"]',
|
|
cardImage: '[class="gradient-container"]',
|
|
selectedStarIcon: "[aria-label='favorite-selected']",
|
|
unselectedStarIcon: "[aria-label='favorite-unselected']",
|
|
starIcon: dataTestLocator('fave-unfave-icon'),
|
|
},
|
|
deleteModal: {
|
|
deleteInput: dataTestLocator('delete-modal-input'),
|
|
deleteButton: dataTestLocator('modal-confirm-button'),
|
|
},
|
|
table: {
|
|
bulkSelect: {
|
|
checkboxOff: '[aria-label="checkbox-off"]',
|
|
checkboxOn: '[aria-label="checkbox-on"]',
|
|
action: dataTestLocator('bulk-select-action'),
|
|
},
|
|
tableList: dataTestLocator('listview-table'),
|
|
table: '[role="rowgroup"]',
|
|
tableRowHeader: {
|
|
header: dataTestLocator('sort-header'),
|
|
unsorted: '[aria-label="sort"]',
|
|
sortAsc: '[aria-label="sort-asc"]',
|
|
sortDesc: '[aria-label="sort-desc"]',
|
|
},
|
|
tableRow: {
|
|
row: dataTestLocator('table-row'),
|
|
rowText: dataTestLocator('cell-text'),
|
|
rowCell: dataTestLocator('table-row-cell'),
|
|
},
|
|
},
|
|
addChartButton: '.css-yff34v',
|
|
};
|
|
export const nativeFilters = {
|
|
modal: {
|
|
container: '.ant-modal',
|
|
footer: '.ant-modal-footer',
|
|
saveButton: dataTestLocator('native-filter-modal-save-button'),
|
|
cancelButton: dataTestLocator('native-filter-modal-cancel-button'),
|
|
yesCancelButton: '[type="button"]',
|
|
alertXUnsavedFilters: '.ant-alert-message',
|
|
tabsList: {
|
|
filterItemsContainer: dataTestLocator('filter-title-container'),
|
|
tabsContainer: '[class="ant-tabs-nav-list"]',
|
|
tab: '.ant-tabs-tab',
|
|
removeTab: '[aria-label="trash"]',
|
|
},
|
|
addFilter: dataTestLocator('add-filter-button'),
|
|
defaultValueCheck: '.ant-checkbox-checked',
|
|
},
|
|
addFilterButton: {
|
|
button: `.ant-modal-content [data-test="new-dropdown-icon"]`,
|
|
dropdownItem: '.ant-dropdown-menu-item',
|
|
},
|
|
filtersPanel: {
|
|
filterName: dataTestLocator('filters-config-modal__name-input'),
|
|
datasetName: dataTestLocator('filters-config-modal__datasource-input'),
|
|
filterInfoInput: '.ant-select-selection-search-input',
|
|
inputDropdown: '.ant-select-item-option-content',
|
|
columnEmptyInput: '.ant-select-selection-placeholder',
|
|
filterTypeInput: dataTestLocator('filters-config-modal__filter-type'),
|
|
fieldInput: dataTestLocator('field-input'),
|
|
filterTypeItem: '.ant-select-selection-item',
|
|
},
|
|
filterFromDashboardView: {
|
|
filterValueInput: '[class="ant-select-selection-search-input"]',
|
|
expand: dataTestLocator('filter-bar__expand-button'),
|
|
collapse: dataTestLocator('filter-bar__collapse-button'),
|
|
filterName: dataTestLocator('filter-control-name'),
|
|
filterContent: '.ant-select-selection-item',
|
|
createFilterButton: dataTestLocator('filter-bar__create-filter'),
|
|
timeRangeFilterContent: dataTestLocator('time-range-trigger'),
|
|
},
|
|
createFilterButton: dataTestLocator('filter-bar__create-filter'),
|
|
removeFilter: '[aria-label="remove"]',
|
|
silentLoading: '.loading inline-centered css-101mkpk',
|
|
filterConfigurationSections: {
|
|
sectionHeader: '.ant-collapse-header',
|
|
displayedSection: 'div[style="height: 100%; overflow-y: auto;"]',
|
|
collapseExpandButton: '.ant-collapse-arrow',
|
|
checkedCheckbox: '.ant-checkbox-wrapper-checked',
|
|
infoTooltip: '[aria-label="Show info tooltip"]',
|
|
parentFilterInput: dataTestLocator('parent-filter-input'),
|
|
filterPlaceholder: '.ant-select-selection-placeholder',
|
|
collapsedSectionContainer: '[class="ant-collapse-content-box"]',
|
|
},
|
|
filtersList: {
|
|
list: '.ant-tabs-nav-list',
|
|
listItemNotActive: '[class="ant-tabs-tab ant-tabs-tab-with-remove"]',
|
|
listItemActive:
|
|
'[class="ant-tabs-tab ant-tabs-tab-with-remove ant-tabs-tab-active"]',
|
|
removeIcon: '[aria-label="trash"]',
|
|
},
|
|
filterItem: dataTestLocator('form-item-value'),
|
|
filterItemDropdown: '.ant-select-selection-search',
|
|
applyFilter: dataTestLocator('filter-bar__apply-button'),
|
|
defaultInput: dataTestLocator('default-input'),
|
|
filterIcon: dataTestLocator('filter-icon'),
|
|
slider: {
|
|
slider: '[class="ant-slider"]',
|
|
startHandle: '[class="ant-slider-handle ant-slider-handle-1"]',
|
|
endHandle: '[class="ant-slider-handle ant-slider-handle-2"]',
|
|
sliderText: '[class="ant-slider-mark-text ant-slider-mark-text-active"]',
|
|
},
|
|
};
|
|
export const dashboardListView = {
|
|
dashboardListView: dataTestLocator('dashboard-list-view'),
|
|
editItemAction: dataTestLocator('edit-alt'),
|
|
filtersBar: {
|
|
searchField: dataTestLocator('filters-search'),
|
|
},
|
|
top: {
|
|
bulkSelect: dataTestLocator('bulk-select'),
|
|
},
|
|
card: {
|
|
card: dataTestLocator('styled-card'),
|
|
cardCover: '[class="ant-card-cover"]',
|
|
cardImage: '[class="gradient-container"]',
|
|
selectedStarIcon: "[aria-label='favorite-selected']",
|
|
unselectedStarIcon: "[aria-label='favorite-unselected']",
|
|
starIcon: dataTestLocator('fave-unfave-icon'),
|
|
},
|
|
deleteModal: {
|
|
deleteInput: dataTestLocator('delete-modal-input'),
|
|
deleteButton: dataTestLocator('modal-confirm-button'),
|
|
},
|
|
table: {
|
|
starIcon: dataTestLocator('fave-unfave-icon'),
|
|
selectedStarIcon: "[aria-label='favorite-selected']",
|
|
unselectedStarIcon: "[aria-label='favorite-unselected']",
|
|
bulkSelect: {
|
|
checkboxOff: '[aria-label="checkbox-off"]',
|
|
checkboxOn: '[aria-label="checkbox-on"]',
|
|
action: dataTestLocator('bulk-select-action'),
|
|
},
|
|
tableRow: {
|
|
sortHeader: dataTestLocator('sort-header'),
|
|
row: dataTestLocator('table-row'),
|
|
rowText: dataTestLocator('cell-text'),
|
|
rowCell: dataTestLocator('table-row-cell'),
|
|
},
|
|
tableRowList: '[role="rowgroup"]',
|
|
tableList: dataTestLocator('listview-table'),
|
|
trashIcon: dataTestLocator('dashboard-list-trash-icon'),
|
|
},
|
|
actions: {
|
|
importButton: dataTestLocator('import-button'),
|
|
newDashboardButton: '.css-yff34v',
|
|
},
|
|
importModal: {
|
|
selectFileButton: '.ant-upload > .ant-btn > span',
|
|
importButton: dataTestLocator('modal-confirm-button'),
|
|
},
|
|
header: {
|
|
cardView: '[aria-label="card-view"]',
|
|
listView: '[aria-label="list-view"]',
|
|
sort: dataTestLocator('sort-header'),
|
|
sortDropdown: '.Select__menu',
|
|
statusFilterInput: `${dataTestLocator(
|
|
'filters-select',
|
|
)}[aria-label='Status']`,
|
|
ownerFilterInput: `${dataTestLocator(
|
|
'filters-select',
|
|
)}[aria-label='Owner']`,
|
|
createdByFilterInput: `${dataTestLocator(
|
|
'filters-select',
|
|
)}[aria-label='Created by']`,
|
|
FavoriteFilterInput: `${dataTestLocator(
|
|
'filters-select',
|
|
)}[aria-label='Favorite']`,
|
|
searchFilterInput: `${dataTestLocator(
|
|
'filters-search',
|
|
)}[name='dashboard_title']`,
|
|
draftStatusFilterOption: "[title='Draft']",
|
|
},
|
|
};
|
|
export const exploreView = {
|
|
openDatasourceMenu: dataTestLocator('open-datasource-tab'),
|
|
sectionsHeader: '.ant-collapse-header',
|
|
datasourceMenuThreeDots: dataTestLocator('datasource-menu-trigger'),
|
|
threeDotsMenuDropdown: {
|
|
editDataset: dataTestLocator('edit-dataset'),
|
|
},
|
|
chartContainer: dataTestLocator('chart-container'),
|
|
chartHeading: {
|
|
queryMenu: '#query',
|
|
viewQueryButton: dataTestLocator('view-query-menu-item'),
|
|
shortLinkButton: dataTestLocator('short-link-button'),
|
|
embedCodeButton: dataTestLocator('embed-code-button'),
|
|
},
|
|
chartAreaItem: '.nv-legend-text',
|
|
viewQueryModal: {
|
|
container: '.ant-modal-content',
|
|
closeButton: 'button.ant-modal-close',
|
|
},
|
|
embedCodeModal: {
|
|
container: dataTestLocator('embed-code-popover'),
|
|
textfield: dataTestLocator('embed-code-textarea'),
|
|
},
|
|
saveModal: {
|
|
modal: '.ant-modal-content',
|
|
chartNameInput: dataTestLocator('new-chart-name'),
|
|
dashboardNameInput: '.ant-select-selection-search-input',
|
|
addToDashboardInput: dataTestLocator(
|
|
'save-chart-modal-select-dashboard-form',
|
|
),
|
|
saveButton: dataTestLocator('btn-modal-save'),
|
|
saveAsCircle: dataTestLocator('saveas-radio'),
|
|
overwriteCircle: dataTestLocator('save-overwrite-radio'),
|
|
saveAndGoToDashboard: '#btn_modal_save_goto_dash',
|
|
},
|
|
controlPanel: {
|
|
panel: dataTestLocator('control-tabs'),
|
|
categoryArea: '.ant-collapse-content-box',
|
|
dragField: dataTestLocator('datasource'),
|
|
metricsField: dataTestLocator('metrics'),
|
|
optionField: dataTestLocator('option-label'),
|
|
fieldInput: '.Select__control input',
|
|
removeFieldValue: dataTestLocator('remove-control-button'),
|
|
addFieldValue: '[aria-label="plus-small"]',
|
|
vizType: dataTestLocator('visualization-type'),
|
|
runButton: dataTestLocator('run-query-button'),
|
|
saveQuery: dataTestLocator('query-save-button'),
|
|
fieldValue: dataTestLocator('control-label'),
|
|
addMetricModal: {
|
|
container: dataTestLocator('metrics-edit-popover'),
|
|
metricNameEdit: {
|
|
editButton: dataTestLocator('AdhocMetricEditTitle#trigger'),
|
|
input: dataTestLocator('AdhocMetricEditTitle#input'),
|
|
},
|
|
simpleTab: {
|
|
tab: '#adhoc-metric-edit-tabs-tab-SIMPLE',
|
|
columnInput: '[name="select-column"]',
|
|
aggregateInput: '[name="select-aggregate"]',
|
|
},
|
|
customSQLTab: {
|
|
tab: '#adhoc-metric-edit-tabs-tab-SQL',
|
|
inputContainerField: '.ace_content',
|
|
input: '.ace_text-input',
|
|
},
|
|
saveButton: dataTestLocator('AdhocMetricEdit#save'),
|
|
},
|
|
querySection: {
|
|
groupByField: dataTestLocator('groupby'),
|
|
filtersField: dataTestLocator('adhoc_filters'),
|
|
filterValue: dataTestLocator('adhoc-filter-simple-value'),
|
|
filterModal: {
|
|
customSQL: {
|
|
tab: '#adhoc-filter-edit-tabs-tab-SQL',
|
|
inputArea: '.ace_content',
|
|
input: '.ace_text-input',
|
|
},
|
|
simple: {
|
|
tab: '#adhoc-filter-edit-tabs-tab-SIMPLE',
|
|
},
|
|
container: dataTestLocator('filter-edit-popover'),
|
|
saveButton: dataTestLocator('adhoc-filter-edit-popover-save-button'),
|
|
},
|
|
},
|
|
annotationLayerSection: {
|
|
addAnnotationLayer: dataTestLocator('annotation_layers'),
|
|
addAnnotationLayerModal: {
|
|
container: dataTestLocator('popover-content'),
|
|
name: dataTestLocator('annotation-layer-name-header'),
|
|
formula: dataTestLocator('annotation-layer-value-header'),
|
|
input: dataTestLocator(''),
|
|
},
|
|
},
|
|
timeSection: {
|
|
timeRangeFilter: dataTestLocator('time-range-trigger'),
|
|
timeRangeFilterModal: {
|
|
container: '.ant-popover-content',
|
|
footer: '.footer',
|
|
cancelButton: dataTestLocator('cancel-button'),
|
|
configureLastTimeRange: {
|
|
container: '.ant-radio-group',
|
|
checkedItem: '.ant-radio-checked + span',
|
|
},
|
|
configureCustomTimeRange: {
|
|
container: dataTestLocator('custom-frame'),
|
|
timeInput: '.ant-input-number-input-wrap > input',
|
|
},
|
|
configureNoFilterTimeRange: {
|
|
container: dataTestLocator('no-filter'),
|
|
},
|
|
},
|
|
},
|
|
advancedAnalyticsSection: {
|
|
timeShift: {
|
|
container: dataTestLocator('time_compare'),
|
|
input: 'input[type=text]',
|
|
selectedValues: '.Select__multi-value__label',
|
|
},
|
|
},
|
|
},
|
|
editDatasetModal: {
|
|
container: '.ant-modal-content',
|
|
datasetTabsContainer: dataTestLocator('edit-dataset-tabs'),
|
|
saveButton: dataTestLocator('datasource-modal-save'),
|
|
metricsTab: {
|
|
addItem: dataTestLocator('crud-add-table-item'),
|
|
rowsContainer: dataTestLocator('table-content-rows'),
|
|
},
|
|
confirmModal: {
|
|
okButton: '.ant-modal-confirm-btns .ant-btn-primary',
|
|
},
|
|
},
|
|
visualizationTypeModal: {
|
|
vizTypeButton: dataTestLocator('viztype-selector-container'),
|
|
},
|
|
};
|
|
export const createChartView = {
|
|
chooseDatasetInput: '.ant-select-selection-search-input',
|
|
chooseDatasetOption: '.ant-select-item-option-content',
|
|
chooseDatasetList: '.rc-virtual-list-holder-inner',
|
|
tableVizType: "[alt='Table']",
|
|
};
|
|
export const editDashboardView = {
|
|
dashboardName: dataTestLocator('dashboard-title-input'),
|
|
dashboardEditingContainer: dataTestLocator('dashboard-content'),
|
|
editComponent: dataTestLocator('new-component'),
|
|
discardChanges: dataTestLocator('discard-changes-button'),
|
|
chartBox: dataTestLocator('chart-grid-component'),
|
|
tabsList: {
|
|
tabsContainer: '[class="ant-tabs-nav-list"]',
|
|
tab: '.ant-tabs-tab',
|
|
},
|
|
};
|
|
export const dashboardView = {
|
|
dashboardContainer: dataTestLocator('grid-container'),
|
|
dashboardAlert: {
|
|
modal: dataTestLocator('toast-container'),
|
|
closeButton: dataTestLocator('close-button'),
|
|
},
|
|
saveModal: {
|
|
modal: '.ant-modal-content',
|
|
dashboardNameInput: '.ant-input',
|
|
saveButton: dataTestLocator('modal-save-dashboard-button'),
|
|
},
|
|
dashboardProperties: {
|
|
modal: '.ant-modal-content',
|
|
dashboardTitleInput: dataTestLocator('dashboard-title-input'),
|
|
modalButton: '[type="button"]',
|
|
},
|
|
chart: {
|
|
trashIcon: dataTestLocator('dashboard-delete-component-button'),
|
|
refreshChart: dataTestLocator('refresh-chart-menu-item'),
|
|
},
|
|
threeDotsMenuIcon:
|
|
'.header-with-actions .right-button-panel .ant-dropdown-trigger',
|
|
threeDotsMenuDropdown: dataTestLocator('header-actions-menu'),
|
|
refreshDashboard: dataTestLocator('refresh-dashboard-menu-item'),
|
|
saveAsMenuOption: dataTestLocator('save-as-menu-item'),
|
|
dashboardTab: dataTestLocator('dragdroppable-object'),
|
|
salesDashboardSpecific: {
|
|
vehicleSalesFilterTimeRange: dataTestLocator('time-range-trigger'),
|
|
secondTabSalesDashboard: dataTestLocator('dragdroppable-object'),
|
|
},
|
|
timeRangeModal: {
|
|
rangeTypeField: '.ant-select-selection-item',
|
|
startTimeInputNumber: '.ant-input-number-input',
|
|
datePicker: '.ant-picker-input',
|
|
applyButton: dataTestLocator('date-filter-control__apply-button'),
|
|
radioGroup: '.ant-radio-group',
|
|
radioButton: '.ant-radio',
|
|
finalFilterRangePreviewCustom:
|
|
'.css-c2bup7 > :nth-child(6) > :nth-child(2)',
|
|
finalFilterRangePreviewLast: '.css-c2bup7 > :nth-child(7) > :nth-child(2)',
|
|
finalFilterRangePreviewPrevious:
|
|
'.css-c2bup7 > :nth-child(7) > :nth-child(2)',
|
|
},
|
|
treeMapChartModal: {
|
|
selectItem: '.Select_control',
|
|
selectItemInput: '.Select__control input[type=text]',
|
|
applyButton: '.filter button:not(:disabled)',
|
|
clearItemIcon: '.Select__clear-indicator',
|
|
},
|
|
sliceThreeDots: '[aria-label="More Options"]',
|
|
sliceThreeDotsDropdown: '[role="menu"]',
|
|
editDashboardButton: '[aria-label="Edit dashboard"]',
|
|
starIcon: dataTestLocator('fave-unfave-icon'),
|
|
dashboardHeader: dataTestLocator('dashboard-header'),
|
|
dashboardSectionContainer: dataTestLocator(
|
|
'grid-row-background--transparent',
|
|
),
|
|
markdownEditor: dataTestLocator('dashboard-markdown-editor'),
|
|
dashboardComponent: dataTestLocator('dashboard-component-chart-holder'),
|
|
tabsList: {
|
|
tabsContainer: dataTestLocator('dashboard-component-tabs'),
|
|
tabsNavList: dataTestLocator('nav-list'),
|
|
tabs: '.ant-tabs-nav-list',
|
|
tab: '.ant-tabs-tab',
|
|
},
|
|
};
|