dimsum-e2e-tests 3.50.0-next.2 → 3.50.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +337 -258
- package/ds-apppicker/DSAppPickerCO.js +2 -6
- package/ds-apppicker/basic/DSAppPicker.basic.axe-core.spec.js +2 -2
- package/ds-apppicker/basic/DSAppPicker.basic.func.spec.js +3 -3
- package/ds-apppicker/basic/DSAppPicker.basic.keyboard-nav.func.spec.js +2 -2
- package/ds-apppicker/basic/DSAppPicker.basic.visual.spec.js +6 -3
- package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.axe-core.spec.js +2 -2
- package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.func.spec.js +2 -2
- package/ds-apppicker/maxHeight/DSAppPicker.max-height.visual.spec.js +2 -2
- package/ds-apppicker/minHeight/DSAppPicker.minHeight.visual.spec.js +1 -1
- package/ds-autocomplete/DSAutocomplete.func.spec.js +5 -4
- package/ds-autocomplete/DSAutocompleteCO.js +1 -8
- package/ds-banner/DSBanner.func.spec.js +55 -0
- package/ds-banner/DSBanner.visual.spec.js +14 -0
- package/ds-banner/DSBannerCO.js +30 -0
- package/ds-breadcrumb/DSBreadcrumb.axe-core.func.spec.js +21 -6
- package/ds-breadcrumb/DSBreadcrumb.func.spec.js +69 -40
- package/ds-breadcrumb/DSBreadcrumb.visual.spec.js +20 -15
- package/ds-breadcrumb/DSBreadcrumbCO.js +19 -3
- package/ds-button-v3/DSButtonV3.func.spec.js +22 -0
- package/ds-button-v3/DSButtonV3.visual.spec.js +8 -2
- package/ds-button-v3/DSButtonV3CO.js +14 -0
- package/ds-card-v3/DSCardV3CO.js +10 -10
- package/ds-card-v3/global-attributes/DSCardV3.global-attributes.func.spec.js +4 -4
- package/ds-comments-card/DSComments.visual.spec.js +3 -4
- package/ds-comments-card/DSCommentsCO.js +3 -3
- package/ds-controlled-form/ds-combobox/DSCombobox.func.spec.js +1 -0
- package/ds-controlled-form/ds-combobox/DSCombobox.smoke.spec.js +4 -56
- package/ds-controlled-form/ds-combobox/DSComboboxCO.js +2 -10
- package/ds-controlled-form/ds-combobox/creatable/DSCombobox.keyboard-creatable.func.spec.js +3 -0
- package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.axe-core.spec.js +0 -1
- package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.keyboard.func.spec.js +5 -0
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.keyboard-multi-select.func.spec.js +6 -68
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.mouse-touch-multi-select.func.spec.js +0 -58
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.multi.visual.spec.js +1 -16
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.ten-thousand-options.func.spec.js +2 -22
- package/ds-controlled-form/ds-combobox/single-select/DSCombobox.keyboard-single-select.func.spec.js +4 -0
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.func.spec.js +15 -41
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.keyboard-nav.func.spec.js +51 -0
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.visual.spec.js +14 -16
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.axe-core.spec.js +85 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.functional.spec.js +242 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.visual.spec.js +115 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePickerCO.js +56 -2
- package/ds-controlled-form/ds-controlled-date-range-picker/read-only/DSControlledDateRangePicker.ReadOnly.axe-core.spec.js +17 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/DSControlledDateTimePickerCO.js +12 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-full/DateFull.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-time-input/DateTimeInput.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/time-full/TimeFull.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/time-input/TimeInput.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-inputgroup/DSControlledInputGroupCO.js +4 -14
- package/ds-controlled-form/ds-controlled-inputgroup/autocomplete/DSControlledInputGroup.autocomplete.axe-core.func.spec.js +6 -6
- package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.axe-core.func.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.visual.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/combobox/DSControlledInputGroup.combobox.axe-core.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.axe-core.func.spec.js +2 -1
- package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.func.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.axe-core.func.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.func.spec.js +2 -1
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.visual.spec.js +2 -1
- package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +5 -5
- package/ds-controlled-form/ds-controlled-large-input-text/aria-disabled/DSLargeInputText.aria-disabled.visual.spec.js +7 -2
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.axe-core.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.func.spec.js +39 -0
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.visual.spec.js +12 -1
- package/ds-controlled-form/ds-input-text/DSInputText.func.spec.js +14 -12
- package/ds-controlled-form/ds-input-text/DSInputTextCO.js +11 -8
- package/ds-controlled-form/ds-input-text/aria-disabled/DSInputText.aria-disabled.func.spec.js +23 -0
- package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.axe-core.func.spec.js +23 -0
- package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.func.spec.js +23 -0
- package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.visual.spec.js +28 -0
- package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +2 -1
- package/ds-controlled-form/react-hook-form/ReactHook.visual.spec.js +3 -1
- package/ds-controlled-form/react-hook-form/ReactHookCO.js +0 -10
- package/ds-controlled-form/useMask/Number/UseNumberMask.func.spec.js +47 -46
- package/ds-controlled-form/useMask/Number/UseNumberMask.visual.spec.js +7 -6
- package/ds-controlled-form/useMask/Phone/UsePhoneMask.func.spec.js +9 -8
- package/ds-controlled-form/useMask/Phone/UsePhoneMask.visual.spec.js +4 -3
- package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.func.spec.js +4 -3
- package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.visual.spec.js +5 -4
- package/ds-controlled-form/useMask/RegExp/UseRegExpMask.func.spec.js +6 -5
- package/ds-controlled-form/useMask/SSN/UseSsnMask.func.spec.js +7 -6
- package/ds-controlled-form/useMask/ZipCode/UseZipCodeMask.func.spec.js +6 -5
- package/ds-controlled-form/useMask/useMaskCO.js +1 -11
- package/ds-data-table-async/DSDataTable.smoke.spec.js +4 -0
- package/ds-data-table-async/DSDataTableCO.js +8 -0
- package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +2 -2
- package/ds-data-table-async/basic/DSDataTable.usecases.func.spec.js +5 -4
- package/ds-data-table-async/basic/DSDataTable.usecases.visual.spec.js +1 -0
- package/ds-data-table-async/components/FiltersCOextra.js +1 -1
- package/ds-data-table-async/components/HeaderCO.js +1 -1
- package/ds-data-table-async/components/OnRowClickCO.js +1 -1
- package/ds-data-table-async/components/RowCO.js +6 -0
- package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +1 -1
- package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +4 -0
- package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +1 -0
- package/ds-data-table-async/more/DSDataTable.extraactions.func.spec.js +33 -0
- package/ds-data-table-async/select/DSDataTable.select.axe-core.func.spec.js +2 -0
- package/ds-data-table-async/select/DSDataTable.select.func.spec.js +2 -86
- package/ds-data-table-async/select/DSDataTable.select.shift.func.spec.js +126 -0
- package/ds-data-table-async/toolbar/DSDataTable.Toolbar.visual.spec.js +15 -0
- package/ds-data-table-async/vissibility/DSDataTable.vissibility.visual.spec.js +39 -0
- package/ds-dialog/DSDialog.func.spec.js +14 -14
- package/ds-dialog/DSDialogCO.js +1 -1
- package/ds-dialog/components/DialogFormsCO.js +1 -1
- package/ds-dropdownmenu-v2/DSDDMenuV2.axe-core.func.spec.js +2 -0
- package/ds-dropdownmenu-v2/DSDDMenuV2CO.js +6 -2
- package/ds-floating-context/DSFloatingContext.visual.spec.js +15 -0
- package/ds-floating-context/DSFloatingContextCO.js +2 -0
- package/ds-form-combobox-multi/DSComboboxMultiCO.js +5 -10
- package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +2 -11
- package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.axe-core.func.spec.js +23 -0
- package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.keyboard-nav.func.spec.js +27 -0
- package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.visual.spec.js +33 -0
- package/ds-form-combobox-multi/virtualization/DSComboboxMulti.virtualization.visual.spec.js +29 -0
- package/ds-form-combobox-single/DSComboboxSingleCO.js +4 -9
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.axe-core.func.spec.js +23 -0
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.keyboard-nav.func.spec.js +27 -0
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.visual.spec.js +33 -0
- package/ds-form-combobox-single/virtualization/DSComboboxSingle.virtualization.visual.spec.js +30 -0
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +11 -7
- package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroup.visual.spec.js +1 -1
- package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroupCO.js +2 -2
- package/ds-menu-button/DSMenuButtonCO.js +16 -12
- package/ds-menu-button/activable/DSMenuButton.activableMenuItem.func.spec.js +32 -0
- package/ds-menu-button/{basic/DSMenuButton.activableMenuItem.func.spec.js → activable/DSMenuButton.activableMenuItem.keyboardnav.func.spec.js} +1 -26
- package/ds-menu-button/disabled/DSMenuButton.axe-core.disabled.func.spec.js +20 -0
- package/ds-menu-button/disabled/DSMenuButton.disabled.func.spec.js +28 -0
- package/ds-menu-button/leftdecorations/DSMenuButton.axe-core.leftDecor.func.spec.js +20 -0
- package/ds-menu-button/multiselect/DSMenuButton.axe-core.multiselect.func.spec.js +28 -0
- package/ds-menu-button/multiselect/DSMenuButton.multiSelectItem.func.spec.js +34 -0
- package/ds-menu-button/{basic/DSMenuButton.multiSelectItem.func.spec.js → multiselect/DSMenuButton.multiSelectItem.keyboardnav.func.spec.js} +0 -29
- package/ds-menu-button/singleSelect/DSMenuButton.axe-core.singleSelect.func.spec.js +28 -0
- package/ds-menu-button/singleSelect/DSMenuButton.singleSelectItem.func.spec.js +39 -0
- package/ds-menu-button/{basic/DSMenuButton.singleSelectItem.func.spec.js → singleSelect/DSMenuButton.singleSelectItem.keyboardnav.func.spec.js} +11 -42
- package/ds-menu-button/submenu/DSMenuButton.axe-core.subMenu.func.spec.js +20 -0
- package/ds-menu-button/submenu/DSMenuButton.subMenuItem.func.spec.js +42 -0
- package/ds-menu-button/{basic/DSMenuButton.subMenuItem.func.spec.js → submenu/DSMenuButton.subMenuItem.keyboardnav.func.spec.js} +1 -38
- package/ds-menu-item/DSMenuItemsCO.js +2 -0
- package/ds-menu-item/aria-disabled/DSMenuItems.aria-disabled.visual.spec.js +1 -1
- package/ds-menu-item/read-only/DSMenuItems.read-only.axe-core.func.spec.js +35 -0
- package/ds-menu-item/read-only/DSMenuItems.read-only.visual.spec.js +66 -0
- package/ds-mobile/MobileLoadingPage/MobileLoadingPageCO.js +1 -1
- package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +1 -0
- package/ds-pills-v2/DSPills.axe-core.func.spec.js +2 -2
- package/ds-pills-v2/DSPills.func.spec.js +26 -0
- package/ds-pills-v2/DSPills.visual.spec.js +1 -1
- package/ds-pills-v2/DSPillsV2CO.js +19 -1
- package/ds-pills-v2/selection/DSPills.axe-core.func.spec.js +77 -0
- package/ds-pills-v2/selection/DSPills.func.spec.js +155 -0
- package/ds-pills-v2/selection/DSPills.visual.spec.js +72 -0
- package/ds-query-builder/DSQueryBuilder.visual.spec.js +2 -1
- package/ds-query-builder/DSQueryBuilderCO.js +1 -6
- package/ds-shuttle-v2/DSShuttleV2CO.js +4 -4
- package/ds-shuttle-v2/Dnd/DSShuttleV2.DnD.visual.spec.js +0 -5
- package/ds-shuttle-v2/basic/DSShuttleV2.keyboard.func.spec.js +46 -66
- package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.kb.func.spec.js +3 -5
- package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +19 -0
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.func.spec.js +0 -6
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.kb.func.spec.js +1 -9
- package/ds-shuttle-v2/globalcheckbox/DSShuttleV2.globalcheckbox.kb.func.spec.js +0 -2
- package/ds-shuttle-v2/items/DSShuttleV2.items.kb.func.spec.js +0 -2
- package/ds-shuttle-v2/skipped/DSShuttleV2.filter.axe-core.skipped.js +0 -2
- package/ds-slider-v2/DSSliderV2.axe-core.func.spec.js +14 -0
- package/ds-slider-v2/DSSliderV2.func.spec.js +18 -0
- package/ds-slider-v2/DSSliderV2.visual.spec.js +15 -0
- package/ds-slider-v2/DSSliderV2CO.js +12 -10
- package/ds-toast/DSToast.func.spec.js +2 -2
- package/ds-toast/DSToastCO.js +2 -2
- package/ds-toggle/DSToggle.func.spec.js +21 -18
- package/ds-toggle/DSToggle.visual.spec.js +56 -12
- package/package.json +119 -119
- package/ds-apppicker/DSAppPicker.smoke.spec.js +0 -52
- package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckbox.smoke.spec.js +0 -125
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.DateInput.visual.spec.js +0 -57
- package/ds-menu-button/DSMenuButton.axe-core.func.spec.js +0 -66
- /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.custom.attributes.spec.js +0 -0
- /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.func.spec.js +0 -0
- /package/ds-query-builder/{DSQueryBuilder.error-states.spec.js → DSQueryBuilder.error-states.func.spec.js} +0 -0
|
@@ -188,6 +188,10 @@ export default class DataTableCO extends PageObject {
|
|
|
188
188
|
|
|
189
189
|
static customCellRowAndHeaderTest = new Urlbuilder(PATH_DATA_TABLE, 'custom-cell-row-and-header');
|
|
190
190
|
|
|
191
|
+
static groupingWithHiddenColumnsTest = new Urlbuilder(PATH_E2E_DATATABLE, 'column-grouping-with-hidden-columns-test');
|
|
192
|
+
|
|
193
|
+
static pui15245 = new Urlbuilder(PATH_E2E_DATATABLE, 'pui-15245');
|
|
194
|
+
|
|
191
195
|
// SELECTORS
|
|
192
196
|
|
|
193
197
|
static getTable = async () => $('[data-testid="data-table-table"]');
|
|
@@ -247,6 +251,10 @@ export default class DataTableCO extends PageObject {
|
|
|
247
251
|
return $('button*=Toggle');
|
|
248
252
|
}
|
|
249
253
|
|
|
254
|
+
static getButtonByLabel(label) {
|
|
255
|
+
return $(`button*=${label}`);
|
|
256
|
+
}
|
|
257
|
+
|
|
250
258
|
static getOpenSlideBtn() {
|
|
251
259
|
return $('button*=Open Slide');
|
|
252
260
|
}
|
|
@@ -90,13 +90,13 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
90
90
|
await expect(snapshot).toEqual(0);
|
|
91
91
|
});
|
|
92
92
|
});
|
|
93
|
-
describe('PUI-
|
|
93
|
+
describe('PUI-7041 - DataTable, Column header truncated -visual', async () => {
|
|
94
94
|
before('loading page', async () => {
|
|
95
95
|
const errorOnGo = await DSDataTableCO.sortByColumn.go();
|
|
96
96
|
if (errorOnGo) throw errorOnGo;
|
|
97
97
|
await DSDataTableCO.waitForDataTable();
|
|
98
98
|
});
|
|
99
|
-
it('Should click on
|
|
99
|
+
it('Should click on name header and sort the rows ascending by this column changing the headers icon', async () => {
|
|
100
100
|
const countryHeader = await HeaderCO.getHeaderCellByIndex(1);
|
|
101
101
|
await countryHeader.click();
|
|
102
102
|
await asyncMouseOver(countryHeader);
|
|
@@ -14,13 +14,14 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
14
14
|
if (errorOnGo) throw errorOnGo;
|
|
15
15
|
await DSDataTableCO.waitForDataTable();
|
|
16
16
|
});
|
|
17
|
-
it('should open the filter', async () => {
|
|
17
|
+
it('01: should open the filter', async () => {
|
|
18
18
|
await FiltersCO.openFilterPopperByColumnName('position', 0);
|
|
19
19
|
const inputSingleSelect = await FiltersCO.getFilterSingleSelectInput();
|
|
20
20
|
await expect(inputSingleSelect).toBeFocused();
|
|
21
21
|
});
|
|
22
|
-
it('
|
|
22
|
+
it('02: should interact the datatable and get the AllDataCSV correctly', async () => {
|
|
23
23
|
await type('Dev');
|
|
24
|
+
await browser.keys(Key.ArrowDown);
|
|
24
25
|
await browser.keys(Key.Enter);
|
|
25
26
|
const checkBox1 = await RowCO.getRowCheckBoxByIndex(2);
|
|
26
27
|
await checkBox1.click();
|
|
@@ -51,7 +52,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
51
52
|
"19","John ""lil finger"" doe","Developer/Coffe-maker, $_maker","","9856","7/19/2020","7/19/2019"
|
|
52
53
|
"20","Francisco 'the singer' de la vega","Designer || U.I. master","ARG","0,123.451235 !@#$%^&*() bitcoins","8/20/2020","8/20/2019"`);
|
|
53
54
|
});
|
|
54
|
-
it('
|
|
55
|
+
it('03: should have the datatable previously interacted and export the SelectedCSV', async () => {
|
|
55
56
|
const getSelectedBtn = await ExportCsvCO.getBtnSelectedDataCSV();
|
|
56
57
|
await getSelectedBtn.click();
|
|
57
58
|
const getSelectedTxt = await ExportCsvCO.getSelectedDataCSV();
|
|
@@ -60,7 +61,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
60
61
|
"5","John ""lil finger"" doe","Developer/Coffe-maker, $_maker","","9856","5/5/2020","5/5/2019"
|
|
61
62
|
"11","John ""lil finger"" doe","Developer/Coffe-maker, $_maker","","9856","11/11/2020","11/11/2019"`);
|
|
62
63
|
});
|
|
63
|
-
it('
|
|
64
|
+
it('04: should have the datatable previously interacted and export the FilteredCSV', async () => {
|
|
64
65
|
const getFilteredBtn = await ExportCsvCO.getBtnFilteredDataCSV();
|
|
65
66
|
await getFilteredBtn.click();
|
|
66
67
|
const getFilteredTxt = await ExportCsvCO.getFilteredDataCSV();
|
|
@@ -134,6 +134,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
134
134
|
});
|
|
135
135
|
it('Should show datatable with filterbar', async () => {
|
|
136
136
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
137
|
+
await browser.keys(Key.ArrowDown);
|
|
137
138
|
await browser.keys(Key.Return);
|
|
138
139
|
const snapshot = await browser.checkSnapshot(DSDataTableCO.snapshotPath('datatable-filterbar-present'));
|
|
139
140
|
await expect(snapshot).toEqual(0);
|
|
@@ -4,7 +4,7 @@ import { getElementByIndex, throttleTyping } from '../helpers';
|
|
|
4
4
|
export default class FiltersCOextra extends PageObject {
|
|
5
5
|
static filterCurrencyPopper = async () => $('[data-testid="data-table-currency-range"]');
|
|
6
6
|
static async filterCurrencyInputs() {
|
|
7
|
-
return (await this.filterCurrencyPopper()).$$('[data-testid="ds-
|
|
7
|
+
return (await this.filterCurrencyPopper()).$$('[data-testid="ds-inputtext-input"]');
|
|
8
8
|
}
|
|
9
9
|
static async filterCurrencyLeftInput() {
|
|
10
10
|
return getElementByIndex(await this.filterCurrencyInputs.bind(this), 0);
|
|
@@ -35,7 +35,7 @@ export default class HeaderCO extends PageObject {
|
|
|
35
35
|
|
|
36
36
|
static getWriteAllCheckbox = async () => $('[id="write-all"]');
|
|
37
37
|
|
|
38
|
-
static getHeaderWrapperByIndex = async (index = 0) => $$('[data-testid="ds-
|
|
38
|
+
static getHeaderWrapperByIndex = async (index = 0) => $$('[data-testid="ds-datatable-header-cell-wrapper"]')[index];
|
|
39
39
|
|
|
40
40
|
static getResizeHandler = async (index) => $$('[data-testid="column"],[aria-label="Resize column"]')[index];
|
|
41
41
|
|
|
@@ -20,7 +20,7 @@ export default class OnRowClickCO extends PageObject {
|
|
|
20
20
|
|
|
21
21
|
static getPickerTrigger = async () => $('[data-testid="ds-controlled-date-time-picker-calendar-trigger-icon"]');
|
|
22
22
|
|
|
23
|
-
static getInputText = async () => $$('[data-testid="ds-
|
|
23
|
+
static getInputText = async () => $$('[data-testid="ds-inputtext-input"]');
|
|
24
24
|
|
|
25
25
|
static getInputTextByIndex = async (index) => getElementByIndex(this.getInputText, index);
|
|
26
26
|
}
|
|
@@ -43,6 +43,10 @@ export default class RowCO extends PageObject {
|
|
|
43
43
|
return rows.$('[data-testid="data-table-checkbox"]');
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
+
static getCheckboxById(id) {
|
|
47
|
+
return $(`[id*="checkbox-${id}"]`);
|
|
48
|
+
}
|
|
49
|
+
|
|
46
50
|
static getRowExpandButtonByRow = async (row) => row.$('[data-testid="data-table-row-expand-cell"]');
|
|
47
51
|
|
|
48
52
|
static getRowExpandButtonByIndex = async (index) => $$('[data-testid="data-table-row-expand-cell"]')[index];
|
|
@@ -71,4 +75,6 @@ export default class RowCO extends PageObject {
|
|
|
71
75
|
static isExpanded = async (expandBtn) => expandBtn.getAttribute('aria-expanded');
|
|
72
76
|
|
|
73
77
|
static getExpandedRow = async (index) => $$('[data-is-row-expanded="true"]')[index];
|
|
78
|
+
|
|
79
|
+
static getToolbarTrigger = async () => $('[data-testid="data-table-toolbar-trigger"');
|
|
74
80
|
}
|
|
@@ -183,7 +183,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
183
183
|
if (errorOnGo) throw errorOnGo;
|
|
184
184
|
await DSDataTableCO.waitForDataTable();
|
|
185
185
|
});
|
|
186
|
-
it('Should show expanded rows, row 1
|
|
186
|
+
it('Should show expanded rows, row 1 within row 3', async () => {
|
|
187
187
|
const globalExpandBtn = await HeaderCO.getHeaderExpandButton();
|
|
188
188
|
await globalExpandBtn.click();
|
|
189
189
|
const secondRow = await RowCO.getRowByIndex(1);
|
|
@@ -29,6 +29,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
29
29
|
});
|
|
30
30
|
it('03: should create a new option', async () => {
|
|
31
31
|
await type('OHN');
|
|
32
|
+
await browser.keys(Key.ArrowDown);
|
|
32
33
|
await browser.keys(Key.Enter);
|
|
33
34
|
const pill = await FilterBarCO.getPillByText('JOHN');
|
|
34
35
|
await expect(pill).toBeDisplayedInViewport();
|
|
@@ -38,6 +39,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
38
39
|
await pillCloseBtn.click();
|
|
39
40
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
40
41
|
await type('John');
|
|
42
|
+
await browser.keys(Key.ArrowDown);
|
|
41
43
|
await browser.keys(Key.Enter);
|
|
42
44
|
const results = await RowCO.getRows();
|
|
43
45
|
const filteredNames = await DSDataTableCO.getAllColumnResults(results, 1);
|
|
@@ -68,6 +70,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
68
70
|
});
|
|
69
71
|
it('03: should create a new option', async () => {
|
|
70
72
|
await type('act');
|
|
73
|
+
await browser.keys(Key.ArrowDown);
|
|
71
74
|
await browser.keys(Key.Enter);
|
|
72
75
|
const pill = await FilterBarCO.getPillByText('React');
|
|
73
76
|
const menuItems = await FiltersCO.getFilterMultiSelectMenuItems();
|
|
@@ -77,6 +80,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
77
80
|
});
|
|
78
81
|
it('04: type a valid value', async () => {
|
|
79
82
|
await type('React dev');
|
|
83
|
+
await browser.keys(Key.ArrowDown);
|
|
80
84
|
await browser.keys(Key.Enter);
|
|
81
85
|
const results = await RowCO.getRows();
|
|
82
86
|
const filteredNames = await DSDataTableCO.getAllColumnResults(results, 2);
|
|
@@ -35,6 +35,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
35
35
|
await expect(inputSingleSelect).toBeFocused();
|
|
36
36
|
});
|
|
37
37
|
it('05: should show only one value on the datatable and focus should be on filter button', async () => {
|
|
38
|
+
await browser.keys(Key.ArrowDown);
|
|
38
39
|
await browser.keys(Key.Enter);
|
|
39
40
|
const dataTableValues = (await RowCO.getRows()).length;
|
|
40
41
|
const filterBtn = await HeaderCO.getFilterBtnByIndex(0);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
/* eslint-disable max-len */
|
|
3
|
+
/* eslint-disable prettier/prettier */
|
|
4
|
+
import { Key } from 'webdriverio';
|
|
5
|
+
import DSDataTableCO from '../DSDataTableCO';
|
|
6
|
+
import { FilterBarCO } from '../components';
|
|
7
|
+
import DSTypographyCO from '../../ds-typography/DSTypographyCO';
|
|
8
|
+
|
|
9
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
10
|
+
describe('PUI-15282 - DataTable: Dropdown extra dropdown actions - Func.', async () => {
|
|
11
|
+
before('loading page', async () => {
|
|
12
|
+
const errorOnGo = await DSDataTableCO.filterEmpty.go();
|
|
13
|
+
if (errorOnGo) throw errorOnGo;
|
|
14
|
+
await DSDataTableCO.waitForDataTable();
|
|
15
|
+
});
|
|
16
|
+
it('01: should trigger extra dropdown menu actions with KB', async () => {
|
|
17
|
+
await browser.keys(Key.Tab);
|
|
18
|
+
await browser.keys(Key.Return);
|
|
19
|
+
await browser.keys(Key.ArrowDown);
|
|
20
|
+
await browser.keys(Key.Return);
|
|
21
|
+
const counter = await (await DSTypographyCO.getTypography()).getText();
|
|
22
|
+
await expect(counter).toBe('Test Action triggered: 1');
|
|
23
|
+
});
|
|
24
|
+
it('02: should trigger extra dropdown menu actions with MOUSE', async () => {
|
|
25
|
+
const filterBarMenuBtn = await FilterBarCO.getFilterBarDropdownMenuButton();
|
|
26
|
+
await filterBarMenuBtn.click();
|
|
27
|
+
const clearFilters = await FilterBarCO.getFilterBarDropDownOption('Clear Filters');
|
|
28
|
+
await clearFilters.click();
|
|
29
|
+
const counter = await (await DSTypographyCO.getTypography()).getText();
|
|
30
|
+
await expect(counter).toBe('Test Action triggered: 2');
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
@@ -67,6 +67,8 @@ if (
|
|
|
67
67
|
});
|
|
68
68
|
it('02: should scroll to last row and pass axe-core', async () => {
|
|
69
69
|
await browser.keys(Key.End);
|
|
70
|
+
const lastRow = await RowCO.getRowAriaIndex(99);
|
|
71
|
+
await lastRow.waitForDisplayed();
|
|
70
72
|
const result = await axeCoreCheck();
|
|
71
73
|
await expect(result.length).toBe(0);
|
|
72
74
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { Key } from 'webdriverio';
|
|
4
4
|
import DSDataTableCO from '../DSDataTableCO';
|
|
5
5
|
import { HeaderCO, RowCO, FiltersCO } from '../components';
|
|
6
|
-
import { getRadioValue
|
|
6
|
+
import { getRadioValue } from '../helpers';
|
|
7
7
|
import { tabStops, isChecked, type } from '../../helpers';
|
|
8
8
|
import DSToggleCO from '../../ds-toggle/DSToggleCO';
|
|
9
9
|
|
|
@@ -52,91 +52,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
52
52
|
await expect(firstRowCheckboxButton).not.toBeClickable();
|
|
53
53
|
});
|
|
54
54
|
});
|
|
55
|
-
if (browser.capabilities.browserName !== 'Firefox') {
|
|
56
|
-
describe('PUI-7219 - DataTable, Row selection with shift + click', () => {
|
|
57
|
-
before('loading page', async () => {
|
|
58
|
-
const errorOnGo = await DSDataTableCO.multiSelect.go();
|
|
59
|
-
if (errorOnGo) throw errorOnGo;
|
|
60
|
-
await DSDataTableCO.waitForDataTable();
|
|
61
|
-
});
|
|
62
|
-
it('should select all the rows in the range except the ones that are disabled', async () => {
|
|
63
|
-
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
64
|
-
const checkbox4 = await RowCO.getRowCheckBoxByIndex(4);
|
|
65
|
-
await pressShiftKey('Shift');
|
|
66
|
-
await browser.pause(200);
|
|
67
|
-
await checkbox1.click();
|
|
68
|
-
await checkbox4.click();
|
|
69
|
-
await browser.pause(200);
|
|
70
|
-
await releaseShiftKey('Shift');
|
|
71
|
-
const checkBoxRow1 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
72
|
-
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
73
|
-
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
74
|
-
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
75
|
-
await expect(checkBoxRow1).toBe('true');
|
|
76
|
-
await expect(checkBoxRow2).toBe('true');
|
|
77
|
-
await expect(checkBoxRow3).toBe('false');
|
|
78
|
-
await expect(checkBoxRow4).toBe('true');
|
|
79
|
-
});
|
|
80
|
-
it('should unselect all the rows in the range', async () => {
|
|
81
|
-
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
82
|
-
const checkbox4 = await RowCO.getRowCheckBoxByIndex(4);
|
|
83
|
-
await pressShiftKey('Shift');
|
|
84
|
-
await browser.pause(200);
|
|
85
|
-
await checkbox4.click();
|
|
86
|
-
await checkbox1.click();
|
|
87
|
-
await browser.pause(200);
|
|
88
|
-
await releaseShiftKey('Shift');
|
|
89
|
-
const checkBoxRow1 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
90
|
-
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
91
|
-
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
92
|
-
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
93
|
-
await expect(checkBoxRow1).toBe('false');
|
|
94
|
-
await expect(checkBoxRow2).toBe('false');
|
|
95
|
-
await expect(checkBoxRow3).toBe('false');
|
|
96
|
-
await expect(checkBoxRow4).toBe('false');
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
describe('PUI-7220 - DataTable, Row selection with shift + space - keyboard', () => {
|
|
101
|
-
before('loading page', async () => {
|
|
102
|
-
const errorOnGo = await DSDataTableCO.multiSelect.go();
|
|
103
|
-
if (errorOnGo) throw errorOnGo;
|
|
104
|
-
await DSDataTableCO.waitForDataTable();
|
|
105
|
-
});
|
|
106
|
-
it('should select all the rows in the range except the ones that are disabled', async () => {
|
|
107
|
-
await tabStops(10);
|
|
108
|
-
await browser.keys(Key.Space);
|
|
109
|
-
await browser.pause(200);
|
|
110
|
-
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
111
|
-
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
112
|
-
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
113
|
-
await browser.keys([Key.Shift, Key.Space]);
|
|
114
|
-
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
115
|
-
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
116
|
-
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
117
|
-
const checkBoxRow5 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
118
|
-
await expect(checkBoxRow2).toBe('true');
|
|
119
|
-
await expect(checkBoxRow3).toBe('true');
|
|
120
|
-
await expect(checkBoxRow4).toBe('false');
|
|
121
|
-
await expect(checkBoxRow5).toBe('true');
|
|
122
|
-
});
|
|
123
|
-
it('should unselect all the rows in the range', async () => {
|
|
124
|
-
await browser.keys(Key.Space);
|
|
125
|
-
await browser.pause(200);
|
|
126
|
-
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
127
|
-
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
128
|
-
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
129
|
-
await browser.keys([Key.Shift, Key.Space]);
|
|
130
|
-
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
131
|
-
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
132
|
-
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
133
|
-
const checkBoxRow5 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
134
|
-
await expect(checkBoxRow2).toBe('false');
|
|
135
|
-
await expect(checkBoxRow3).toBe('false');
|
|
136
|
-
await expect(checkBoxRow4).toBe('false');
|
|
137
|
-
await expect(checkBoxRow5).toBe('false');
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
55
|
describe('PUI-11233 - DataTable, Multi select disabled selection with uniqueRowAccessor', () => {
|
|
141
56
|
before('loading page', async () => {
|
|
142
57
|
const errorOnGo = await DSDataTableCO.multiSelectDisabledWithUniqueRowAccessor.go();
|
|
@@ -236,6 +151,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
236
151
|
await rowCheckBox.click();
|
|
237
152
|
await FiltersCO.openFilterPopperByColumnName('id', 0);
|
|
238
153
|
await type('1');
|
|
154
|
+
await browser.keys(Key.ArrowDown);
|
|
239
155
|
await browser.keys(Key.Return);
|
|
240
156
|
const globalCheckbox = await (await HeaderCO.getHeaderSelectCheckBox()).getAttribute('aria-checked');
|
|
241
157
|
const items = (await RowCO.getRows()).length;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
/* eslint-disable wdio/no-pause */
|
|
3
|
+
import { Key } from 'webdriverio';
|
|
4
|
+
import DSDataTableCO from '../DSDataTableCO';
|
|
5
|
+
import { RowCO } from '../components';
|
|
6
|
+
import { pressShiftKey, releaseShiftKey } from '../helpers';
|
|
7
|
+
import { tabStops } from '../../helpers';
|
|
8
|
+
|
|
9
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
10
|
+
if (browser.capabilities.browserName !== 'Firefox') {
|
|
11
|
+
describe('PUI-7219 - DataTable, Row selection with shift + click', () => {
|
|
12
|
+
before('loading page', async () => {
|
|
13
|
+
const errorOnGo = await DSDataTableCO.multiSelect.go();
|
|
14
|
+
if (errorOnGo) throw errorOnGo;
|
|
15
|
+
await DSDataTableCO.waitForDataTable();
|
|
16
|
+
});
|
|
17
|
+
it('01: should select all the rows in the range except the ones that are disabled', async () => {
|
|
18
|
+
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
19
|
+
const checkbox4 = await RowCO.getRowCheckBoxByIndex(4);
|
|
20
|
+
await pressShiftKey('Shift');
|
|
21
|
+
await browser.pause(200);
|
|
22
|
+
await checkbox1.click();
|
|
23
|
+
await checkbox4.click();
|
|
24
|
+
await browser.pause(200);
|
|
25
|
+
await releaseShiftKey('Shift');
|
|
26
|
+
const checkBoxRow1 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
27
|
+
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
28
|
+
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
29
|
+
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
30
|
+
await expect(checkBoxRow1).toBe('true');
|
|
31
|
+
await expect(checkBoxRow2).toBe('true');
|
|
32
|
+
await expect(checkBoxRow3).toBe('false');
|
|
33
|
+
await expect(checkBoxRow4).toBe('true');
|
|
34
|
+
});
|
|
35
|
+
it('02: should unselect all the rows in the range', async () => {
|
|
36
|
+
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
37
|
+
const checkbox4 = await RowCO.getRowCheckBoxByIndex(4);
|
|
38
|
+
await pressShiftKey('Shift');
|
|
39
|
+
await browser.pause(200);
|
|
40
|
+
await checkbox4.click();
|
|
41
|
+
await checkbox1.click();
|
|
42
|
+
await browser.pause(200);
|
|
43
|
+
await releaseShiftKey('Shift');
|
|
44
|
+
const checkBoxRow1 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
45
|
+
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
46
|
+
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
47
|
+
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
48
|
+
await expect(checkBoxRow1).toBe('false');
|
|
49
|
+
await expect(checkBoxRow2).toBe('false');
|
|
50
|
+
await expect(checkBoxRow3).toBe('false');
|
|
51
|
+
await expect(checkBoxRow4).toBe('false');
|
|
52
|
+
});
|
|
53
|
+
it('03: should select all the rows in the range from the begining to the middle of the table', async () => {
|
|
54
|
+
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
55
|
+
await checkbox1.click();
|
|
56
|
+
await browser.pause(200);
|
|
57
|
+
await browser.keys(Key.PageDown);
|
|
58
|
+
await pressShiftKey('Shift');
|
|
59
|
+
const checkbox31 = await RowCO.getCheckboxById(31);
|
|
60
|
+
await checkbox31.click();
|
|
61
|
+
await browser.pause(200);
|
|
62
|
+
await releaseShiftKey('Shift');
|
|
63
|
+
const checkBoxRow11 = await (await RowCO.getCheckboxById(11)).getAttribute('aria-checked');
|
|
64
|
+
const checkBoxRow21 = await (await RowCO.getCheckboxById(21)).getAttribute('aria-checked');
|
|
65
|
+
const checkBoxRow31 = await (await RowCO.getCheckboxById(31)).getAttribute('aria-checked');
|
|
66
|
+
await expect(checkBoxRow11).toBe('true');
|
|
67
|
+
await expect(checkBoxRow21).toBe('true');
|
|
68
|
+
await expect(checkBoxRow31).toBe('true');
|
|
69
|
+
});
|
|
70
|
+
it('04: should select all the rows in the table', async () => {
|
|
71
|
+
await browser.keys(Key.End);
|
|
72
|
+
await pressShiftKey('Shift');
|
|
73
|
+
const checkbox100 = await RowCO.getCheckboxById(100);
|
|
74
|
+
await checkbox100.click();
|
|
75
|
+
await browser.pause(200);
|
|
76
|
+
await releaseShiftKey('Shift');
|
|
77
|
+
const checkBoxRow81 = await (await RowCO.getCheckboxById(81)).getAttribute('aria-checked');
|
|
78
|
+
const checkBoxRow91 = await (await RowCO.getCheckboxById(91)).getAttribute('aria-checked');
|
|
79
|
+
const checkBoxRow100 = await (await RowCO.getCheckboxById(100)).getAttribute('aria-checked');
|
|
80
|
+
await expect(checkBoxRow81).toBe('true');
|
|
81
|
+
await expect(checkBoxRow91).toBe('true');
|
|
82
|
+
await expect(checkBoxRow100).toBe('true');
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
describe('PUI-7220 - DataTable, Row selection with shift + space - keyboard', () => {
|
|
87
|
+
before('loading page', async () => {
|
|
88
|
+
const errorOnGo = await DSDataTableCO.multiSelect.go();
|
|
89
|
+
if (errorOnGo) throw errorOnGo;
|
|
90
|
+
await DSDataTableCO.waitForDataTable();
|
|
91
|
+
});
|
|
92
|
+
it('01: should select all the rows in the range except the ones that are disabled', async () => {
|
|
93
|
+
await tabStops(10);
|
|
94
|
+
await browser.keys(Key.Space);
|
|
95
|
+
await browser.pause(200);
|
|
96
|
+
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
97
|
+
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
98
|
+
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
99
|
+
await browser.keys([Key.Shift, Key.Space]);
|
|
100
|
+
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
101
|
+
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
102
|
+
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
103
|
+
const checkBoxRow5 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
104
|
+
await expect(checkBoxRow2).toBe('true');
|
|
105
|
+
await expect(checkBoxRow3).toBe('true');
|
|
106
|
+
await expect(checkBoxRow4).toBe('false');
|
|
107
|
+
await expect(checkBoxRow5).toBe('true');
|
|
108
|
+
});
|
|
109
|
+
it('02: should unselect all the rows in the range', async () => {
|
|
110
|
+
await browser.keys(Key.Space);
|
|
111
|
+
await browser.pause(200);
|
|
112
|
+
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
113
|
+
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
114
|
+
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
115
|
+
await browser.keys([Key.Shift, Key.Space]);
|
|
116
|
+
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
117
|
+
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
118
|
+
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
119
|
+
const checkBoxRow5 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
120
|
+
await expect(checkBoxRow2).toBe('false');
|
|
121
|
+
await expect(checkBoxRow3).toBe('false');
|
|
122
|
+
await expect(checkBoxRow4).toBe('false');
|
|
123
|
+
await expect(checkBoxRow5).toBe('false');
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
@@ -31,4 +31,19 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
31
31
|
await expect(snapshot).toEqual(0);
|
|
32
32
|
});
|
|
33
33
|
});
|
|
34
|
+
describe('PUI-15362 - DataTable, Verify Scroll Behavior in DSDataTable -visual.', async () => {
|
|
35
|
+
before('loading page', async () => {
|
|
36
|
+
const errorOnGo = await DSDataTableCO.pui15245.go();
|
|
37
|
+
if (errorOnGo) throw errorOnGo;
|
|
38
|
+
await DSDataTableCO.waitForDataTable();
|
|
39
|
+
});
|
|
40
|
+
it('The row should remain fully visible and accessible', async () => {
|
|
41
|
+
await browser.eyesOpen();
|
|
42
|
+
const toolbar = await RowCO.getToolbarTrigger();
|
|
43
|
+
await toolbar.click();
|
|
44
|
+
await toolbar.click();
|
|
45
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('datatable-scrollbar-behavior'));
|
|
46
|
+
await expect(snapshot).toEqual(0);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
34
49
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable max-statements */
|
|
1
2
|
/* eslint-disable max-len */
|
|
2
3
|
import { Key } from 'webdriverio';
|
|
3
4
|
import DSDataTableCO from '../DSDataTableCO';
|
|
@@ -60,22 +61,60 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
60
61
|
it('should display two row of pills and the pagination correctly rendered', async () => {
|
|
61
62
|
await browser.eyesOpen();
|
|
62
63
|
await FiltersCO.openFilterPopperByColumnName('id', 0);
|
|
64
|
+
await browser.keys(Key.ArrowDown);
|
|
63
65
|
await browser.keys(Key.Return);
|
|
64
66
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
67
|
+
await browser.keys(Key.ArrowDown);
|
|
65
68
|
await browser.keys(Key.Return);
|
|
66
69
|
await FiltersCO.openFilterPopperByColumnName('position', 0);
|
|
67
70
|
await browser.keys(Key.ArrowDown);
|
|
71
|
+
await browser.keys(Key.ArrowDown);
|
|
68
72
|
await browser.keys(Key.Return);
|
|
69
73
|
await browser.keys(Key.ArrowDown);
|
|
70
74
|
await browser.keys(Key.Return);
|
|
71
75
|
await browser.keys(Key.ArrowDown);
|
|
72
76
|
await browser.keys(Key.Return);
|
|
73
77
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
78
|
+
await browser.keys(Key.ArrowDown);
|
|
74
79
|
await browser.keys(Key.Return);
|
|
75
80
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
81
|
+
await browser.keys(Key.ArrowDown);
|
|
76
82
|
await browser.keys(Key.Return);
|
|
77
83
|
const checkSnap = await browser.eyesCheckSnapshot(await DSDataTableCO.snapshotPath('datatable-double-pill-row'));
|
|
78
84
|
await expect(checkSnap).toEqual(0);
|
|
79
85
|
});
|
|
80
86
|
});
|
|
87
|
+
describe('PUI-15277 - DataTable, Grouping with Hidden Columns - Visual Test', async () => {
|
|
88
|
+
before('loading page', async () => {
|
|
89
|
+
const errorOnGo = await DSDataTableCO.groupingWithHiddenColumnsTest.go();
|
|
90
|
+
if (errorOnGo) throw errorOnGo;
|
|
91
|
+
await DSDataTableCO.waitForDataTable();
|
|
92
|
+
});
|
|
93
|
+
it('01: should display all columns', async () => {
|
|
94
|
+
await browser.eyesOpen();
|
|
95
|
+
const checkSnap = await browser.eyesCheckSnapshot(await DSDataTableCO.snapshotPath('all-columns-displayed'));
|
|
96
|
+
await expect(checkSnap).toEqual(0);
|
|
97
|
+
});
|
|
98
|
+
it('02: should hide Name column correctly', async () => {
|
|
99
|
+
await browser.eyesOpen();
|
|
100
|
+
const toggleBtn = await DSDataTableCO.getButtonByLabel('Name');
|
|
101
|
+
await toggleBtn.click();
|
|
102
|
+
const checkSnap = await browser.eyesCheckSnapshot(await DSDataTableCO.snapshotPath('name-column-hidden'));
|
|
103
|
+
await expect(checkSnap).toEqual(0);
|
|
104
|
+
});
|
|
105
|
+
it('03: should hide Date Range column correctly', async () => {
|
|
106
|
+
await browser.eyesOpen();
|
|
107
|
+
const toggleBtn = await DSDataTableCO.getButtonByLabel('Date Range');
|
|
108
|
+
await toggleBtn.click();
|
|
109
|
+
const checkSnap = await browser.eyesCheckSnapshot(await DSDataTableCO.snapshotPath('date-range-column-hidden'));
|
|
110
|
+
await expect(checkSnap).toEqual(0);
|
|
111
|
+
});
|
|
112
|
+
it('04: should hide Info (group) column correctly', async () => {
|
|
113
|
+
await browser.eyesOpen();
|
|
114
|
+
const toggleBtn = await DSDataTableCO.getButtonByLabel('Info');
|
|
115
|
+
await toggleBtn.click();
|
|
116
|
+
const checkSnap = await browser.eyesCheckSnapshot(await DSDataTableCO.snapshotPath('info-column-hidden'));
|
|
117
|
+
await expect(checkSnap).toEqual(0);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
81
120
|
}
|