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.
Files changed (181) hide show
  1. package/CHANGELOG.md +337 -258
  2. package/ds-apppicker/DSAppPickerCO.js +2 -6
  3. package/ds-apppicker/basic/DSAppPicker.basic.axe-core.spec.js +2 -2
  4. package/ds-apppicker/basic/DSAppPicker.basic.func.spec.js +3 -3
  5. package/ds-apppicker/basic/DSAppPicker.basic.keyboard-nav.func.spec.js +2 -2
  6. package/ds-apppicker/basic/DSAppPicker.basic.visual.spec.js +6 -3
  7. package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.axe-core.spec.js +2 -2
  8. package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.func.spec.js +2 -2
  9. package/ds-apppicker/maxHeight/DSAppPicker.max-height.visual.spec.js +2 -2
  10. package/ds-apppicker/minHeight/DSAppPicker.minHeight.visual.spec.js +1 -1
  11. package/ds-autocomplete/DSAutocomplete.func.spec.js +5 -4
  12. package/ds-autocomplete/DSAutocompleteCO.js +1 -8
  13. package/ds-banner/DSBanner.func.spec.js +55 -0
  14. package/ds-banner/DSBanner.visual.spec.js +14 -0
  15. package/ds-banner/DSBannerCO.js +30 -0
  16. package/ds-breadcrumb/DSBreadcrumb.axe-core.func.spec.js +21 -6
  17. package/ds-breadcrumb/DSBreadcrumb.func.spec.js +69 -40
  18. package/ds-breadcrumb/DSBreadcrumb.visual.spec.js +20 -15
  19. package/ds-breadcrumb/DSBreadcrumbCO.js +19 -3
  20. package/ds-button-v3/DSButtonV3.func.spec.js +22 -0
  21. package/ds-button-v3/DSButtonV3.visual.spec.js +8 -2
  22. package/ds-button-v3/DSButtonV3CO.js +14 -0
  23. package/ds-card-v3/DSCardV3CO.js +10 -10
  24. package/ds-card-v3/global-attributes/DSCardV3.global-attributes.func.spec.js +4 -4
  25. package/ds-comments-card/DSComments.visual.spec.js +3 -4
  26. package/ds-comments-card/DSCommentsCO.js +3 -3
  27. package/ds-controlled-form/ds-combobox/DSCombobox.func.spec.js +1 -0
  28. package/ds-controlled-form/ds-combobox/DSCombobox.smoke.spec.js +4 -56
  29. package/ds-controlled-form/ds-combobox/DSComboboxCO.js +2 -10
  30. package/ds-controlled-form/ds-combobox/creatable/DSCombobox.keyboard-creatable.func.spec.js +3 -0
  31. package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.axe-core.spec.js +0 -1
  32. package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.keyboard.func.spec.js +5 -0
  33. package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.keyboard-multi-select.func.spec.js +6 -68
  34. package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.mouse-touch-multi-select.func.spec.js +0 -58
  35. package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.multi.visual.spec.js +1 -16
  36. package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.ten-thousand-options.func.spec.js +2 -22
  37. package/ds-controlled-form/ds-combobox/single-select/DSCombobox.keyboard-single-select.func.spec.js +4 -0
  38. package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.func.spec.js +15 -41
  39. package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.keyboard-nav.func.spec.js +51 -0
  40. package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.visual.spec.js +14 -16
  41. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.axe-core.spec.js +85 -0
  42. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.functional.spec.js +242 -0
  43. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.visual.spec.js +115 -0
  44. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePickerCO.js +56 -2
  45. package/ds-controlled-form/ds-controlled-date-range-picker/read-only/DSControlledDateRangePicker.ReadOnly.axe-core.spec.js +17 -0
  46. package/ds-controlled-form/ds-controlled-date-time-picker/DSControlledDateTimePickerCO.js +12 -0
  47. package/ds-controlled-form/ds-controlled-date-time-picker/date-full/DateFull.axe-core.func.spec.js +27 -0
  48. package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.axe-core.func.spec.js +27 -0
  49. package/ds-controlled-form/ds-controlled-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +27 -0
  50. package/ds-controlled-form/ds-controlled-date-time-picker/date-time-input/DateTimeInput.axe-core.func.spec.js +27 -0
  51. package/ds-controlled-form/ds-controlled-date-time-picker/time-full/TimeFull.axe-core.func.spec.js +27 -0
  52. package/ds-controlled-form/ds-controlled-date-time-picker/time-input/TimeInput.axe-core.func.spec.js +27 -0
  53. package/ds-controlled-form/ds-controlled-inputgroup/DSControlledInputGroupCO.js +4 -14
  54. package/ds-controlled-form/ds-controlled-inputgroup/autocomplete/DSControlledInputGroup.autocomplete.axe-core.func.spec.js +6 -6
  55. package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.axe-core.func.spec.js +3 -2
  56. package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.visual.spec.js +3 -2
  57. package/ds-controlled-form/ds-controlled-inputgroup/combobox/DSControlledInputGroup.combobox.axe-core.func.spec.js +1 -1
  58. package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.axe-core.func.spec.js +2 -1
  59. package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.func.spec.js +3 -2
  60. package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.axe-core.func.spec.js +3 -2
  61. package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.func.spec.js +2 -1
  62. package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.visual.spec.js +2 -1
  63. package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +5 -5
  64. package/ds-controlled-form/ds-controlled-large-input-text/aria-disabled/DSLargeInputText.aria-disabled.visual.spec.js +7 -2
  65. package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.axe-core.func.spec.js +1 -1
  66. package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.func.spec.js +39 -0
  67. package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.visual.spec.js +12 -1
  68. package/ds-controlled-form/ds-input-text/DSInputText.func.spec.js +14 -12
  69. package/ds-controlled-form/ds-input-text/DSInputTextCO.js +11 -8
  70. package/ds-controlled-form/ds-input-text/aria-disabled/DSInputText.aria-disabled.func.spec.js +23 -0
  71. package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.axe-core.func.spec.js +23 -0
  72. package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.func.spec.js +23 -0
  73. package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.visual.spec.js +28 -0
  74. package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +2 -1
  75. package/ds-controlled-form/react-hook-form/ReactHook.visual.spec.js +3 -1
  76. package/ds-controlled-form/react-hook-form/ReactHookCO.js +0 -10
  77. package/ds-controlled-form/useMask/Number/UseNumberMask.func.spec.js +47 -46
  78. package/ds-controlled-form/useMask/Number/UseNumberMask.visual.spec.js +7 -6
  79. package/ds-controlled-form/useMask/Phone/UsePhoneMask.func.spec.js +9 -8
  80. package/ds-controlled-form/useMask/Phone/UsePhoneMask.visual.spec.js +4 -3
  81. package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.func.spec.js +4 -3
  82. package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.visual.spec.js +5 -4
  83. package/ds-controlled-form/useMask/RegExp/UseRegExpMask.func.spec.js +6 -5
  84. package/ds-controlled-form/useMask/SSN/UseSsnMask.func.spec.js +7 -6
  85. package/ds-controlled-form/useMask/ZipCode/UseZipCodeMask.func.spec.js +6 -5
  86. package/ds-controlled-form/useMask/useMaskCO.js +1 -11
  87. package/ds-data-table-async/DSDataTable.smoke.spec.js +4 -0
  88. package/ds-data-table-async/DSDataTableCO.js +8 -0
  89. package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +2 -2
  90. package/ds-data-table-async/basic/DSDataTable.usecases.func.spec.js +5 -4
  91. package/ds-data-table-async/basic/DSDataTable.usecases.visual.spec.js +1 -0
  92. package/ds-data-table-async/components/FiltersCOextra.js +1 -1
  93. package/ds-data-table-async/components/HeaderCO.js +1 -1
  94. package/ds-data-table-async/components/OnRowClickCO.js +1 -1
  95. package/ds-data-table-async/components/RowCO.js +6 -0
  96. package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +1 -1
  97. package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +4 -0
  98. package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +1 -0
  99. package/ds-data-table-async/more/DSDataTable.extraactions.func.spec.js +33 -0
  100. package/ds-data-table-async/select/DSDataTable.select.axe-core.func.spec.js +2 -0
  101. package/ds-data-table-async/select/DSDataTable.select.func.spec.js +2 -86
  102. package/ds-data-table-async/select/DSDataTable.select.shift.func.spec.js +126 -0
  103. package/ds-data-table-async/toolbar/DSDataTable.Toolbar.visual.spec.js +15 -0
  104. package/ds-data-table-async/vissibility/DSDataTable.vissibility.visual.spec.js +39 -0
  105. package/ds-dialog/DSDialog.func.spec.js +14 -14
  106. package/ds-dialog/DSDialogCO.js +1 -1
  107. package/ds-dialog/components/DialogFormsCO.js +1 -1
  108. package/ds-dropdownmenu-v2/DSDDMenuV2.axe-core.func.spec.js +2 -0
  109. package/ds-dropdownmenu-v2/DSDDMenuV2CO.js +6 -2
  110. package/ds-floating-context/DSFloatingContext.visual.spec.js +15 -0
  111. package/ds-floating-context/DSFloatingContextCO.js +2 -0
  112. package/ds-form-combobox-multi/DSComboboxMultiCO.js +5 -10
  113. package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +2 -11
  114. package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.axe-core.func.spec.js +23 -0
  115. package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.keyboard-nav.func.spec.js +27 -0
  116. package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.visual.spec.js +33 -0
  117. package/ds-form-combobox-multi/virtualization/DSComboboxMulti.virtualization.visual.spec.js +29 -0
  118. package/ds-form-combobox-single/DSComboboxSingleCO.js +4 -9
  119. package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.axe-core.func.spec.js +23 -0
  120. package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.keyboard-nav.func.spec.js +27 -0
  121. package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.visual.spec.js +33 -0
  122. package/ds-form-combobox-single/virtualization/DSComboboxSingle.virtualization.visual.spec.js +30 -0
  123. package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +11 -7
  124. package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroup.visual.spec.js +1 -1
  125. package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroupCO.js +2 -2
  126. package/ds-menu-button/DSMenuButtonCO.js +16 -12
  127. package/ds-menu-button/activable/DSMenuButton.activableMenuItem.func.spec.js +32 -0
  128. package/ds-menu-button/{basic/DSMenuButton.activableMenuItem.func.spec.js → activable/DSMenuButton.activableMenuItem.keyboardnav.func.spec.js} +1 -26
  129. package/ds-menu-button/disabled/DSMenuButton.axe-core.disabled.func.spec.js +20 -0
  130. package/ds-menu-button/disabled/DSMenuButton.disabled.func.spec.js +28 -0
  131. package/ds-menu-button/leftdecorations/DSMenuButton.axe-core.leftDecor.func.spec.js +20 -0
  132. package/ds-menu-button/multiselect/DSMenuButton.axe-core.multiselect.func.spec.js +28 -0
  133. package/ds-menu-button/multiselect/DSMenuButton.multiSelectItem.func.spec.js +34 -0
  134. package/ds-menu-button/{basic/DSMenuButton.multiSelectItem.func.spec.js → multiselect/DSMenuButton.multiSelectItem.keyboardnav.func.spec.js} +0 -29
  135. package/ds-menu-button/singleSelect/DSMenuButton.axe-core.singleSelect.func.spec.js +28 -0
  136. package/ds-menu-button/singleSelect/DSMenuButton.singleSelectItem.func.spec.js +39 -0
  137. package/ds-menu-button/{basic/DSMenuButton.singleSelectItem.func.spec.js → singleSelect/DSMenuButton.singleSelectItem.keyboardnav.func.spec.js} +11 -42
  138. package/ds-menu-button/submenu/DSMenuButton.axe-core.subMenu.func.spec.js +20 -0
  139. package/ds-menu-button/submenu/DSMenuButton.subMenuItem.func.spec.js +42 -0
  140. package/ds-menu-button/{basic/DSMenuButton.subMenuItem.func.spec.js → submenu/DSMenuButton.subMenuItem.keyboardnav.func.spec.js} +1 -38
  141. package/ds-menu-item/DSMenuItemsCO.js +2 -0
  142. package/ds-menu-item/aria-disabled/DSMenuItems.aria-disabled.visual.spec.js +1 -1
  143. package/ds-menu-item/read-only/DSMenuItems.read-only.axe-core.func.spec.js +35 -0
  144. package/ds-menu-item/read-only/DSMenuItems.read-only.visual.spec.js +66 -0
  145. package/ds-mobile/MobileLoadingPage/MobileLoadingPageCO.js +1 -1
  146. package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +1 -0
  147. package/ds-pills-v2/DSPills.axe-core.func.spec.js +2 -2
  148. package/ds-pills-v2/DSPills.func.spec.js +26 -0
  149. package/ds-pills-v2/DSPills.visual.spec.js +1 -1
  150. package/ds-pills-v2/DSPillsV2CO.js +19 -1
  151. package/ds-pills-v2/selection/DSPills.axe-core.func.spec.js +77 -0
  152. package/ds-pills-v2/selection/DSPills.func.spec.js +155 -0
  153. package/ds-pills-v2/selection/DSPills.visual.spec.js +72 -0
  154. package/ds-query-builder/DSQueryBuilder.visual.spec.js +2 -1
  155. package/ds-query-builder/DSQueryBuilderCO.js +1 -6
  156. package/ds-shuttle-v2/DSShuttleV2CO.js +4 -4
  157. package/ds-shuttle-v2/Dnd/DSShuttleV2.DnD.visual.spec.js +0 -5
  158. package/ds-shuttle-v2/basic/DSShuttleV2.keyboard.func.spec.js +46 -66
  159. package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.kb.func.spec.js +3 -5
  160. package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +19 -0
  161. package/ds-shuttle-v2/filtering/DSShuttleV2.filter.func.spec.js +0 -6
  162. package/ds-shuttle-v2/filtering/DSShuttleV2.filter.kb.func.spec.js +1 -9
  163. package/ds-shuttle-v2/globalcheckbox/DSShuttleV2.globalcheckbox.kb.func.spec.js +0 -2
  164. package/ds-shuttle-v2/items/DSShuttleV2.items.kb.func.spec.js +0 -2
  165. package/ds-shuttle-v2/skipped/DSShuttleV2.filter.axe-core.skipped.js +0 -2
  166. package/ds-slider-v2/DSSliderV2.axe-core.func.spec.js +14 -0
  167. package/ds-slider-v2/DSSliderV2.func.spec.js +18 -0
  168. package/ds-slider-v2/DSSliderV2.visual.spec.js +15 -0
  169. package/ds-slider-v2/DSSliderV2CO.js +12 -10
  170. package/ds-toast/DSToast.func.spec.js +2 -2
  171. package/ds-toast/DSToastCO.js +2 -2
  172. package/ds-toggle/DSToggle.func.spec.js +21 -18
  173. package/ds-toggle/DSToggle.visual.spec.js +56 -12
  174. package/package.json +119 -119
  175. package/ds-apppicker/DSAppPicker.smoke.spec.js +0 -52
  176. package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckbox.smoke.spec.js +0 -125
  177. package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.DateInput.visual.spec.js +0 -57
  178. package/ds-menu-button/DSMenuButton.axe-core.func.spec.js +0 -66
  179. /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.custom.attributes.spec.js +0 -0
  180. /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.func.spec.js +0 -0
  181. /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-6983 - DataTable, Column header truncated -visual', async () => {
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 country header and sort the rows descending by this column changing the headers icon', async () => {
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('Should interact the datatable and get the AllDataCSV correctly', async () => {
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('Should have the datatable previously interacted and export the SelectedCSV', async () => {
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('Should have the datatable previously interacted and export the FilteredCSV', async () => {
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-input-text-input"]');
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-data-table-header-cell-wrapper"]')[index];
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-input-text-input"]');
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 below (not within) row 3', async () => {
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, pressShiftKey, releaseShiftKey } from '../helpers';
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
  }