Skip to content

Commit 0d86d00

Browse files
committed
add dataset e2e opensource tests
1 parent c9321b3 commit 0d86d00

File tree

44 files changed

+1723
-44
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1723
-44
lines changed

src/shared/constants/qa/components.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,17 @@ export enum DialogDashWidgetQA {
145145
export const enum DialogFieldEditorQA {
146146
ApplyButton = 'dialog-field-editor-apply-button',
147147
CancelButton = 'dialog-field-editor-cancel-button',
148+
EditNameButton = 'dialog-field-editor-edit-name-button',
148149
}
149150

151+
export const DialogFilterQA = {
152+
Dialog: 'dialog-filter',
153+
ApplyButton: 'dialog-filter-apply-button',
154+
CancelButton: 'dialog-filter-cancel-button',
155+
ListItem: 'dialog-filter-list-item',
156+
OperationSelect: 'operation-select',
157+
} as const;
158+
150159
export const enum NavigationMinimalPlaceSelectQa {
151160
Connections = 'navigation-minimal-place-connections',
152161
Datasets = 'navigation-minimal-place-datasets',

src/shared/constants/qa/datasets.ts

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,57 @@ export enum ParametersQA {
99
ParametersTabSection = 'parameters-tab-section',
1010
}
1111

12+
export const FiltersQA = {
13+
FiltersTabSection: 'filters-tab-section',
14+
TableDeleteRowBtn: 'filters-table-delete-row-button',
15+
} as const;
16+
17+
export const RelationsMapQA = {
18+
RelationsMap: 'ds-relations-map',
19+
} as const;
20+
1221
export enum DatasetFieldsTabQa {
22+
DatasetEditor = 'ds-editor',
1323
TableRow = 'dataset-fields-table-row',
1424
FieldNameColumnInput = 'dataset-fields-name-column-input',
25+
FieldIndexColumnCheckbox = 'dataset-fields-index-column-checkbox',
26+
FieldIndexHeaderColumnCheckbox = 'dataset-fields-index-header-column-checkbox',
27+
FieldIdColumnInput = 'dataset-fields-id-column-input',
28+
FieldDescriptionColumnInput = 'dataset-fields-description-column-input',
29+
FieldSourceColumnBtn = 'dataset-fields-source-column-btn',
1530
FieldSettingsColumnIcon = 'dataset-fields-settings-column-icon',
31+
FieldVisibleColumnIcon = 'dataset-fields-visible-column-icon',
32+
FieldTypeColumnBtn = 'dataset-fields-type-column-btn',
33+
FieldAggregationColumnBtn = 'dataset-fields-aggregation-column-btn',
34+
FieldTypeColumnItem = 'dataset-fields-type-column-item',
35+
FieldContextMenuBtn = 'dataset-fields-context-menu-btn',
36+
FieldContextMenuPopup = 'dataset-fields-context-menu-popup',
37+
TableSettingsBtn = 'dataset-editor-table-settings-btn',
38+
BatchActionsPanel = 'dataset-editor-actions-panel',
1639
}
1740

41+
export const DatasetFieldTabBatchPanelQa = {
42+
BatchDelete: 'ds-fields-batch-delete',
43+
BatchHide: 'ds-fields-batch-hide',
44+
BatchShow: 'ds-fields-batch-show',
45+
BatchType: 'ds-fields-batch-type',
46+
BatchAggregation: 'ds-fields-batch-aggregation',
47+
} as const;
48+
49+
export const DatasetFieldContextMenuItemsQA = {
50+
DUPLICATE: 'ds-field-context-menu-duplicate',
51+
EDIT: 'ds-field-context-menu-edit',
52+
RLS: 'ds-field-context-menu-rls',
53+
COPY_GUID: 'ds-field-context-menu-copy-guid',
54+
REMOVE: 'ds-field-context-menu-remove',
55+
INSPECT: 'ds-field-context-menu-inspect',
56+
} as const;
57+
58+
export const DatasetEditorTableSettingsItems = {
59+
ShowHidden: 'ds-table-settings-menu-show-hidden',
60+
ShowId: 'ds-table-settings-menu-show-id',
61+
} as const;
62+
1863
export enum DatasetFieldSettingsDialogQa {
1964
Dialog = 'dataset-field-settings-dialog',
2065
ColorSettingsButton = 'dataset-field-settings-dialog-color-settings-btn',
@@ -79,8 +124,20 @@ export const DatasetSourcesTableQa = {
79124
SourceContextMenuBtn: 'ds-source-context-menu-btn',
80125
SourceContextMenuDelete: 'ds-source-context-menu-delete',
81126
SourceContextMenuModify: 'ds-source-context-menu-modify',
127+
SourcesAddItemBtn: 'ds-source-add-item-button',
82128
} as const;
83129

84130
export enum DatasetPreviewQA {
85131
Preview = 'dataset-preview',
132+
RowCountInput = 'ds-preview-header-row-count-input',
133+
ClosePreviewBtn = 'ds-preview-header-close-btn',
86134
}
135+
136+
export const DatasetSourceEditorDialogQA = {
137+
Dialog: 'source-editor-dialog',
138+
EditTitleInput: 'source-editor-title',
139+
EditPathInput: 'source-editor-path',
140+
SourceEditorSwitch: 'datasets-source-switcher',
141+
ApplyBtn: 'source-editor-apply',
142+
CancelBtn: 'source-editor-cancel',
143+
} as const;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export const EditHistoryQA = {
2+
UndoBtn: 'edit-history-undo-btn',
3+
RedoBtn: 'edit-history-redo-btn',
4+
};

src/shared/constants/qa/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ export * from './uikit';
1515
export * from './wizard';
1616
export * from './workbooks';
1717
export * from './shared-entries';
18+
export * from './edit-history';

src/ui/components/DatasetFieldList/DatasetFieldList.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import block from 'bem-cn-lite';
66

77
import {I18n} from '../../../i18n';
88
import type {DatasetField} from '../../../shared';
9-
import {DatasetFieldType, isParameter} from '../../../shared';
9+
import {DatasetFieldType, DialogFilterQA, isParameter} from '../../../shared';
1010
import DataTypeIcon from '../DataTypeIcon/DataTypeIcon';
1111

1212
import './DatasetFieldList.scss';
@@ -30,7 +30,7 @@ const DatasetFieldList: React.FC<DatasetFieldListProps> = (props) => {
3030
const fieldType = isParameter(field) ? DatasetFieldType.Parameter : type;
3131

3232
return (
33-
<div className={b('field')}>
33+
<div className={b('field')} data-qa={DialogFilterQA.ListItem}>
3434
<DataTypeIcon
3535
className={b('field-icon')}
3636
fieldType={fieldType}

src/ui/components/DialogFilter/DialogFilter.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import type {
1515
WorkbookId,
1616
} from 'shared';
1717
import {
18+
DialogFilterQA,
1819
Operations,
1920
TIMEOUT_90_SEC,
2021
getFieldsApiV2RequestSection,
@@ -211,6 +212,7 @@ class DialogFilter extends React.Component<DialogFilterProps, DialogFilterState>
211212
}
212213
this.onApply();
213214
}}
215+
qa={DialogFilterQA.Dialog}
214216
>
215217
<div className={b()}>
216218
{this.renderHeader()}
@@ -321,7 +323,7 @@ class DialogFilter extends React.Component<DialogFilterProps, DialogFilterState>
321323
value={value}
322324
options={options}
323325
onUpdate={this.onChangeOperation}
324-
qa="operation-select"
326+
qa={DialogFilterQA.OperationSelect}
325327
/>
326328
</div>
327329
</div>
@@ -404,8 +406,12 @@ class DialogFilter extends React.Component<DialogFilterProps, DialogFilterState>
404406
onClickButtonApply={onClickButtonApply}
405407
textButtonApply={textButtonApply}
406408
textButtonCancel={i18n('button_cancel')}
409+
propsButtonCancel={{
410+
qa: DialogFilterQA.CancelButton,
411+
}}
407412
propsButtonApply={{
408413
disabled: this.isApplyButtonDisabled(),
414+
qa: DialogFilterQA.ApplyButton,
409415
}}
410416
>
411417
{useSuggest && dimensions.length === VALUES_LOAD_LIMIT && (

src/ui/components/FieldEditor/components/NameHeader.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import React from 'react';
33
import {Pencil} from '@gravity-ui/icons';
44
import {Button, Flex, Icon, Text} from '@gravity-ui/uikit';
55
import block from 'bem-cn-lite';
6+
import {DialogFieldEditorQA} from 'shared';
67

78
const b = block('dl-field-editor');
89

@@ -17,7 +18,12 @@ export const NameHeader = ({title, onStartEdit}: NameFieldProps) => {
1718
<Text variant="subheader-3" ellipsis={true}>
1819
{title}
1920
</Text>
20-
<Button view="flat" onClick={onStartEdit} className={b('settings-field-name-icon')}>
21+
<Button
22+
qa={DialogFieldEditorQA.EditNameButton}
23+
view="flat"
24+
onClick={onStartEdit}
25+
className={b('settings-field-name-icon')}
26+
>
2127
<Icon data={Pencil} size={16} />
2228
</Button>
2329
</Flex>

src/ui/hooks/useEditHistoryActions.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import React from 'react';
33
import {ArrowUturnCcwLeft, ArrowUturnCwRight} from '@gravity-ui/icons';
44
import {I18n} from 'i18n';
55
import {useDispatch, useSelector} from 'react-redux';
6+
import {EditHistoryQA} from 'shared';
67
import type {AdditionalButtonTemplate} from 'ui/components/ActionPanel/components/ChartSaveControls/types';
78
import {useAdditionalItems} from 'ui/components/ActionPanel/components/ChartSaveControls/useAdditionalItems';
89
import {REDO_HOTKEY, UNDO_HOTKEY} from 'ui/constants/misc';
@@ -70,6 +71,7 @@ export function useEditHistoryActions(options: UseEditHistoryActionsOptions) {
7071
disabled: !canGoBack,
7172
title: i18n('button_undo'),
7273
hotkey: UNDO_HOTKEY.join('+'),
74+
qa: EditHistoryQA.UndoBtn,
7375
},
7476
{
7577
key: 'redo',
@@ -79,6 +81,7 @@ export function useEditHistoryActions(options: UseEditHistoryActionsOptions) {
7981
disabled: !canGoForward,
8082
title: i18n('button_redo'),
8183
hotkey: REDO_HOTKEY.join('+'),
84+
qa: EditHistoryQA.RedoBtn,
8285
},
8386
];
8487
}, [canGoBack, canGoForward, handleGoBack, handleGoForward, iconSize]);

src/ui/units/datasets/components/DatasetTable/columns/Description.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React from 'react';
33
import type {Column} from '@gravity-ui/react-data-table';
44
import block from 'bem-cn-lite';
55
import {I18n} from 'i18n';
6-
import type {DatasetField} from 'shared';
6+
import {type DatasetField, DatasetFieldsTabQa} from 'shared';
77

88
import {TableTextInput} from '../components';
99
import type {ColumnItem} from '../types';
@@ -41,6 +41,7 @@ export const getDescriptionColumn = (args: GetDescriptionColumnArgs) => {
4141
index={index}
4242
setActiveRow={setActiveRow}
4343
onUpdate={getUpdateHandler(row)}
44+
qa={DatasetFieldsTabQa.FieldDescriptionColumnInput}
4445
disabled={readonly}
4546
/>
4647
);

src/ui/units/datasets/components/DatasetTable/columns/Hidden.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {Button, Icon} from '@gravity-ui/uikit';
77
import block from 'bem-cn-lite';
88
import {I18n} from 'i18n';
99
import type {DatasetField} from 'shared';
10+
import {DatasetFieldsTabQa} from 'shared';
1011

1112
import {isHiddenSupported} from '../utils';
1213

@@ -39,6 +40,7 @@ export const getHiddenColumn = ({
3940
title={value ? i18n('button_display-field') : i18n('button_hide-field')}
4041
disabled={unsupported || readonly}
4142
onClick={() => onUpdate(row)}
43+
qa={DatasetFieldsTabQa.FieldVisibleColumnIcon}
4244
>
4345
<Icon
4446
className={b('hidden', {hidden: Boolean(value && !unsupported), unsupported})}

0 commit comments

Comments
 (0)