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
@@ -22,7 +22,7 @@ export default class DSLargeInputTextCO extends PageObject {
22
22
  static applyAriaDisabled = new Urlbuilder(PATH_E2E_CONTROLLEDLARGEINPUT, 'apply-aria-disabled-test');
23
23
 
24
24
  static async getInputs() {
25
- return $$('[data-testid="ds-controlled-large-text-input"]');
25
+ return $$('[data-testid="ds-controlledlargetextinput-input"]');
26
26
  }
27
27
 
28
28
  static getDialogTrigger() {
@@ -32,19 +32,19 @@ export default class DSLargeInputTextCO extends PageObject {
32
32
  static getInputByIndex = async (index) => getElementByIndex(this.getInputs, index);
33
33
 
34
34
  static getCounter() {
35
- return $('[data-testid="ds-form-layout-block-item-counter"]');
35
+ return $('[data-testid="ds-formlayoutblockitem-counter"]');
36
36
  }
37
37
 
38
38
  static getErrorMessage() {
39
- return $('[data-testid="ds-form-layout-block-item-error-message"]');
39
+ return $('[data-testid="ds-formlayoutblockitem-error-message"]');
40
40
  }
41
41
 
42
42
  static getFeedbackMessage() {
43
- return $('[data-testid="ds-form-layout-block-item-message"]');
43
+ return $('[data-testid="ds-formlayoutblockitem-message"]');
44
44
  }
45
45
 
46
46
  static getLabel() {
47
- return $('[data-testid="ds-form-layout-block-item-label"]');
47
+ return $('[data-testid="ds-formlayoutblockitem-label"]');
48
48
  }
49
49
 
50
50
  static getTriggerBtn() {
@@ -7,10 +7,15 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
7
7
  const errorOnGo = await DSLargeInputTextCO.applyAriaDisabled.go();
8
8
  if (errorOnGo) throw errorOnGo;
9
9
  });
10
- it('01: aria-disabled LargeInput should be focused', async () => {
10
+ it('01: aria-disabled LargeInput should be default', async () => {
11
+ await browser.eyesOpen();
12
+ const snapshot = await browser.eyesCheckSnapshot(DSLargeInputTextCO.snapshotPath('large-input-aria-dis-default'));
13
+ await expect(snapshot).toEqual(0);
14
+ });
15
+ it('02: aria-disabled LargeInput should be focused', async () => {
11
16
  await browser.eyesOpen();
12
17
  await browser.keys(Key.Tab);
13
- const snapshot = await browser.eyesCheckSnapshot(DSLargeInputTextCO.snapshotPath('large-input-aria-disabled'));
18
+ const snapshot = await browser.eyesCheckSnapshot(DSLargeInputTextCO.snapshotPath('large-input-aria-dis-focus'));
14
19
  await expect(snapshot).toEqual(0);
15
20
  });
16
21
  });
@@ -13,7 +13,7 @@ if (
13
13
  const errorOnGo = await DSLargeInputTextCO.readOnlyURL.go();
14
14
  if (errorOnGo) throw errorOnGo;
15
15
  });
16
- it('01: should pass axe-core scan without violations', async () => {
16
+ it('01: should have readOnly large text input and pass axe-core scan without violations', async () => {
17
17
  const input = await DSLargeInputTextCO.getInputByIndex(0);
18
18
  await input.waitForDisplayed();
19
19
  const result = await axeCoreCheck();
@@ -0,0 +1,39 @@
1
+ /* eslint-disable max-len */
2
+ import { Key } from 'webdriverio';
3
+ import DSLargeInputTextCO from '../DSLargeInputTextCO';
4
+ import { axeCoreCheck, type } from '../../../helpers';
5
+
6
+ const longText =
7
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. In placerat dictum orci, non lacinia lorem congue a. Nullam vel tempus nibh. Nullam sed felis id est malesuada luctus. Morbi tortor quam, sollicitudin ut efficitur vel, congue nec leo. Donec venenatis ultricies ultrices. Pellentesque hendrerit est ac sapien tincidunt convallis. Fusce bibendum lorem ut fringilla fringilla. Sed sagittis lectus non condimentum tristique. In sit amet orci sit amet dolor egestas elementum. Donec malesuada dui nisl, non feugiat libero malesuada a. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin vitae porttitor nunc. Nulla nec mi non augue volutpat semper sed a sem. Ut porttitor ultricies urna pellentesque tincidunt. Vivamus ultricies metus non ipsum malesuada, eu venenatis erat efficitur.';
8
+
9
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
10
+ describe('PUI-15015 - LargeInputText:: Read Only: Basic -Func', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSLargeInputTextCO.readOnlyURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: should have readOnly attribute', async () => {
16
+ const input = await DSLargeInputTextCO.getInputByIndex(0);
17
+ await input.waitForDisplayed();
18
+ const result = await axeCoreCheck();
19
+ expect(result.length).toBe(0);
20
+ });
21
+ it('02: should be able to focus but not be able to type', async () => {
22
+ const input = await DSLargeInputTextCO.getInputByIndex(0);
23
+ await input.click();
24
+ await type('New text');
25
+ const content = await input.getText();
26
+ await expect(input).toBeFocused();
27
+ await expect(content).toBe(longText);
28
+ });
29
+ it('03: should not be able to delete', async () => {
30
+ const input = await DSLargeInputTextCO.getInputByIndex(0);
31
+ await input.click();
32
+ await browser.keys(Key.ArrowRight);
33
+ await browser.keys(Key.Backspace);
34
+ const content = await input.getText();
35
+ await expect(input).toBeFocused();
36
+ await expect(content).toBe(longText);
37
+ });
38
+ });
39
+ }
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable max-len */
2
+ import { Key } from 'webdriverio';
2
3
  import DSLargeInputTextCO from '../DSLargeInputTextCO';
3
4
 
4
5
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
@@ -11,7 +12,17 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
11
12
  await browser.eyesOpen();
12
13
  const input = await DSLargeInputTextCO.getInputByIndex(0);
13
14
  await input.waitForDisplayed();
14
- const snapshot = await browser.eyesCheckSnapshot(DSLargeInputTextCO.snapshotPath('large-input-text-read-only'));
15
+ const snapshot = await browser.eyesCheckSnapshot(
16
+ DSLargeInputTextCO.snapshotPath('large-input-read-only-default'),
17
+ );
18
+ await expect(snapshot).toEqual(0);
19
+ });
20
+ it('02: should display focused LargeInputText with readOnly', async () => {
21
+ await browser.eyesOpen();
22
+ await browser.keys(Key.Tab);
23
+ const input = await DSLargeInputTextCO.getInputByIndex(0);
24
+ await input.waitForDisplayed();
25
+ const snapshot = await browser.eyesCheckSnapshot(DSLargeInputTextCO.snapshotPath('large-input-read-onl-focused'));
15
26
  await expect(snapshot).toEqual(0);
16
27
  });
17
28
  });
@@ -1,3 +1,4 @@
1
+ /* eslint-disable max-len */
1
2
  /* eslint-disable max-lines */
2
3
  import { Key } from 'webdriverio';
3
4
  import { type } from '../../helpers';
@@ -9,14 +10,14 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
9
10
  const errorOnGo = await DSInputTextCO.clearable.go();
10
11
  if (errorOnGo) throw errorOnGo;
11
12
  });
12
- it('should write some text on the input and change the input value', async () => {
13
+ it('01: should write some text on the input and change the input value', async () => {
13
14
  const input = await DSInputTextCO.getInputText();
14
15
  await input.click();
15
16
  await type('Hola');
16
17
  const inputValue = await input.getAttribute('value');
17
18
  await expect(inputValue).toEqual('Hola');
18
19
  });
19
- it('should erase the content from within the input and have an empty value for the input', async () => {
20
+ it('02: should erase the content from within the input and have an empty value for the input', async () => {
20
21
  const input = await DSInputTextCO.getInputText();
21
22
  await input.click();
22
23
  await browser.keys(Key.Backspace);
@@ -33,44 +34,45 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
33
34
  const errorOnGo = await DSInputTextCO.autocompleteURL.go();
34
35
  if (errorOnGo) throw errorOnGo;
35
36
  });
36
- it('should not open the autocomplete list if there are no characters even with focus', async () => {
37
+ it('01: should not open the autocomplete list if there are no characters even with focus', async () => {
37
38
  const input = await DSInputTextCO.getInputText();
38
39
  await input.click();
39
40
  const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
40
41
  await expect(autocompleteList).not.toBeDisplayedInViewport();
41
42
  });
42
- it('should display autocomplete list after getting one character in the input', async () => {
43
+ it('02: should display autocomplete list after getting one character in the input', async () => {
43
44
  await type('4');
44
45
  const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
45
46
  await expect(autocompleteList).toBeDisplayedInViewport();
46
47
  });
47
- it('should not close the autocomplete list after getting more characters', async () => {
48
+ it('03: should not close the autocomplete list after getting more characters', async () => {
48
49
  await type('4');
49
50
  const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
50
51
  await expect(autocompleteList).toBeDisplayedInViewport();
51
52
  });
52
- it('should close the autocomplete list after getting more characters which dont match any option', async () => {
53
+ it('04: should close the autocomplete list after getting more characters which dont match any option', async () => {
53
54
  await type('Z');
54
55
  const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
55
56
  await expect(autocompleteList).not.toBeDisplayedInViewport();
56
57
  });
57
- it('should display autocomplete options after erasing the character which caused a mismatch', async () => {
58
+ it('05: should display autocomplete options after erasing the character which caused a mismatch', async () => {
58
59
  await browser.keys(Key.Backspace);
59
60
  const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
60
61
  await expect(autocompleteList).toBeDisplayedInViewport();
61
62
  });
62
- it('should not close the autocomplete list after deleting a character if there are characters left', async () => {
63
+ it('06: should not close the autocomplete list after deleting a character if there are characters left', async () => {
63
64
  await browser.keys(Key.Backspace);
64
65
  const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
65
66
  await expect(autocompleteList).toBeDisplayedInViewport();
66
67
  });
67
- it('should close the autocomplete list after deleting a character if there are no characters left', async () => {
68
+ it('07: should close the autocomplete list after deleting a character if there are no characters left', async () => {
68
69
  await browser.keys(Key.Backspace);
69
70
  const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
70
71
  await expect(autocompleteList).not.toBeDisplayedInViewport();
71
72
  });
72
- it('should select the first autocomplete list item and change the value of the input', async () => {
73
+ it('08: should select the first autocomplete list item and change the value of the input', async () => {
73
74
  await type('4');
75
+ await browser.keys(Key.ArrowDown);
74
76
  await browser.keys(Key.Enter);
75
77
  const input = await DSInputTextCO.getInputText();
76
78
  const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
@@ -85,7 +87,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
85
87
  const errorOnGo = await DSInputTextCO.autocompleteURL.go();
86
88
  if (errorOnGo) throw errorOnGo;
87
89
  });
88
- it('should click an autocomplete option and the input should have that value', async () => {
90
+ it('01: should click an autocomplete option and the input should have that value', async () => {
89
91
  const input = await DSInputTextCO.getInputText();
90
92
  await input.click();
91
93
  await type('44');
@@ -103,7 +105,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
103
105
  const errorOnGo = await DSInputTextCO.clearable.go();
104
106
  if (errorOnGo) throw errorOnGo;
105
107
  });
106
- it('should click an autocomplete option and the input should have that value', async () => {
108
+ it('01: should click an autocomplete option and the input should have that value', async () => {
107
109
  const input = await DSInputTextCO.getInputText();
108
110
  await input.click();
109
111
  await type('Hola');
@@ -1,8 +1,9 @@
1
1
  // eslint-disable-next-line import/no-relative-packages
2
+ import { DSInputTextDataTestIds } from '@elliemae/ds-form-input-text';
2
3
  import { PATH_E2E_CONTROLLEDINPUT } from '../../../environments/storybook/paths';
3
4
  import { PageObject, Urlbuilder, getElementByIndex } from '../../helpers';
4
5
 
5
- export default class DSLargeInputCO extends PageObject {
6
+ export default class DSInputTextCO extends PageObject {
6
7
  static clearable = new Urlbuilder(PATH_E2E_CONTROLLEDINPUT, 'clearable-E-2-e');
7
8
 
8
9
  static formLayoutBlockURL = new Urlbuilder(PATH_E2E_CONTROLLEDINPUT, 'with-form-layout-block-item');
@@ -23,6 +24,8 @@ export default class DSLargeInputCO extends PageObject {
23
24
 
24
25
  static placeholderURL = new Urlbuilder(PATH_E2E_CONTROLLEDINPUT, 'place-holder-test');
25
26
 
27
+ static readOnly = new Urlbuilder(PATH_E2E_CONTROLLEDINPUT, 'read-only-test');
28
+
26
29
  static async getAutocompleteMenuList() {
27
30
  return $('[data-testid="autocomplete-menu-list"]');
28
31
  }
@@ -33,22 +36,22 @@ export default class DSLargeInputCO extends PageObject {
33
36
 
34
37
  static getAutocompleteOptionByIndex = async (index) => getElementByIndex(this.getAutocompleteOptions, index);
35
38
 
36
- static async getInputTexContainer() {
37
- return $('//input[@data-testid="ds-input-text"]/ancestor::div');
38
- }
39
-
40
39
  static async getInputText() {
41
- return $('[data-testid="ds-input-text-input"]');
40
+ return $(`[data-testid="${DSInputTextDataTestIds.INPUT}"]`);
42
41
  }
43
42
 
44
43
  static async getInputTexts() {
45
- return $$('[data-testid="ds-input-text-input"]');
44
+ return $$(`[data-testid="${DSInputTextDataTestIds.INPUT}"]`);
45
+ }
46
+
47
+ static async getInputValue(value) {
48
+ return $(`[data-testid="${DSInputTextDataTestIds.INPUT}"][value="${value}"]`);
46
49
  }
47
50
 
48
51
  static getInputTextByIndex = async (index) => getElementByIndex(this.getInputTexts, index);
49
52
 
50
53
  static async getClearBtn() {
51
- return $('[data-testid="ds-input-text-clear-button"]');
54
+ return $(`[data-testid="${DSInputTextDataTestIds.CLEAR_BUTTON}"]`);
52
55
  }
53
56
 
54
57
  static snapshotPath(example = 'basic') {
@@ -0,0 +1,23 @@
1
+ /* eslint-disable max-lines */
2
+ import DSInputTextCO from '../DSInputTextCO';
3
+
4
+ if (
5
+ (!browser.capabilities['ice:options'].isPhone &&
6
+ !browser.capabilities['ice:options'].isTablet &&
7
+ browser.capabilities.browserName === 'chrome') ||
8
+ browser.capabilities.browserName === 'Chrome'
9
+ ) {
10
+ describe('PUI-15257 - [InputText] applyAriaDisabled prop - func test', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSInputTextCO.applyAriaDisabled.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: first aria-disabled Input should not display the caret', async () => {
16
+ const input1 = await DSInputTextCO.getInputTextByIndex(0);
17
+ await input1.click();
18
+ const caretColor = await input1.getCSSProperty('caret-color');
19
+ const caretValue = caretColor.value;
20
+ await expect(caretValue).toBe('rgba(0,0,0,0)');
21
+ });
22
+ });
23
+ }
@@ -0,0 +1,23 @@
1
+ /* eslint-disable max-lines */
2
+ import { axeCoreCheck } from '../../../helpers';
3
+ import DSInputTextCO from '../DSInputTextCO';
4
+
5
+ if (
6
+ (!browser.capabilities['ice:options'].isPhone &&
7
+ !browser.capabilities['ice:options'].isTablet &&
8
+ browser.capabilities.browserName === 'chrome') ||
9
+ browser.capabilities.browserName === 'Chrome'
10
+ ) {
11
+ describe('PUI-15331 - [InputText] readOnly prop - axe-core test', () => {
12
+ before('loading page', async () => {
13
+ const errorOnGo = await DSInputTextCO.readOnly.go();
14
+ if (errorOnGo) throw errorOnGo;
15
+ });
16
+ it('01: first readOnly Input should be focused and pass axe-core scan', async () => {
17
+ const input1 = await DSInputTextCO.getInputTextByIndex(0);
18
+ await input1.click();
19
+ const result = await axeCoreCheck();
20
+ expect(result.length).toBe(0);
21
+ });
22
+ });
23
+ }
@@ -0,0 +1,23 @@
1
+ /* eslint-disable max-lines */
2
+ import DSInputTextCO from '../DSInputTextCO';
3
+
4
+ if (
5
+ (!browser.capabilities['ice:options'].isPhone &&
6
+ !browser.capabilities['ice:options'].isTablet &&
7
+ browser.capabilities.browserName === 'chrome') ||
8
+ browser.capabilities.browserName === 'Chrome'
9
+ ) {
10
+ describe('PUI-15332 - [InputText] readOnly prop - func test', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSInputTextCO.readOnly.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: first readOnly Input should not display the caret', async () => {
16
+ const input1 = await DSInputTextCO.getInputTextByIndex(0);
17
+ await input1.click();
18
+ const caretColor = await input1.getCSSProperty('caret-color');
19
+ const caretValue = caretColor.value;
20
+ await expect(caretValue).toBe('rgba(0,0,0,0)');
21
+ });
22
+ });
23
+ }
@@ -0,0 +1,28 @@
1
+ /* eslint-disable max-lines */
2
+ /* eslint-disable prettier/prettier */
3
+ import { Key } from 'webdriverio';
4
+ import DSInputTextCO from '../DSInputTextCO';
5
+ import { type } from '../../../helpers';
6
+
7
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
8
+ describe('PUI-15330 - [InputText] readOnly prop - visual Test', () => {
9
+ before('loading page', async () => {
10
+ const errorOnGo = await DSInputTextCO.readOnly.go();
11
+ if (errorOnGo) throw errorOnGo;
12
+ });
13
+ it('01: first read-only Input should be focused', async () => {
14
+ await browser.eyesOpen();
15
+ const firstInput = await DSInputTextCO.getInputTextByIndex(0);
16
+ await firstInput.click();
17
+ const snapshot = await browser.eyesCheckSnapshot(DSInputTextCO.snapshotPath('input-text-read-only-mouse'));
18
+ await expect(snapshot).toEqual(0);
19
+ });
20
+ it('02: second read-only InputText should be focused and value not changed', async () => {
21
+ await browser.eyesOpen();
22
+ await browser.keys(Key.Tab);
23
+ await type('Test');
24
+ const snapshot = await browser.eyesCheckSnapshot(DSInputTextCO.snapshotPath('input-text-read-only-kb-nav'));
25
+ await expect(snapshot).toEqual(0);
26
+ });
27
+ });
28
+ }
@@ -3,6 +3,7 @@
3
3
  import { Key } from 'webdriverio';
4
4
  import ReactHookCO from './ReactHookCO';
5
5
  import { type } from '../../helpers';
6
+ import DSInputTextCO from '../ds-input-text/DSInputTextCO';
6
7
 
7
8
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
8
9
  describe('PUI-8180 - ds-controlled-form: with React Hook', () => {
@@ -11,7 +12,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
11
12
  if (errorOnGo) throw errorOnGo;
12
13
  });
13
14
  it('should correctly change the text input value sending keys', async () => {
14
- const input = await ReactHookCO.getInputByIndex(0);
15
+ const input = await DSInputTextCO.getInputTextByIndex(0);
15
16
  await input.click();
16
17
  await type('Lucas caminador de cielos');
17
18
  const inputValue = await input.getAttribute('value');
@@ -1,6 +1,7 @@
1
1
  import { Key } from 'webdriverio';
2
2
  import { type } from '../../helpers';
3
3
  import ReactHookCO from './ReactHookCO';
4
+ import DSInputTextCO from '../ds-input-text/DSInputTextCO';
4
5
 
5
6
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
7
  describe('PUI-8081 - ds-controlled-form: with React Hook', () => {
@@ -9,7 +10,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
9
10
  if (errorOnGo) throw errorOnGo;
10
11
  });
11
12
  it('should interact elements, combobox open and checkbox checked', async () => {
12
- const input = await ReactHookCO.getInput();
13
+ const input = await DSInputTextCO.getInputText();
13
14
  await input.click();
14
15
  await type('Lucas caminador de cielos');
15
16
  await browser.keys(Key.Tab);
@@ -19,6 +20,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
19
20
  const comboBox = await ReactHookCO.getCombobox();
20
21
  await comboBox.click();
21
22
  await browser.keys(Key.ArrowDown);
23
+ await browser.keys(Key.ArrowDown);
22
24
  await browser.keys(Key.Return);
23
25
  await browser.keys(Key.ArrowDown);
24
26
  await browser.keys(Key.Return);
@@ -4,10 +4,6 @@ import { PageObject, Urlbuilder, getElementByIndex } from '../../helpers';
4
4
  export default class ReactHookCO extends PageObject {
5
5
  static basicURL = new Urlbuilder(PATH_E2E_HOOK_FORM, 'on-submit-validation-form');
6
6
 
7
- static async getInput() {
8
- return $('[data-testid="ds-input-text-input"]');
9
- }
10
-
11
7
  static async getCombobox() {
12
8
  return $('[data-testid="combobox-controls-wrapper"]');
13
9
  }
@@ -20,12 +16,6 @@ export default class ReactHookCO extends PageObject {
20
16
  return $('[data-testid="ds-controlled-toggle-checkbox"]');
21
17
  }
22
18
 
23
- static async getInputs() {
24
- return $$('[data-testid="ds-input-text-input"]');
25
- }
26
-
27
- static getInputByIndex = async (index) => getElementByIndex(this.getInputs, index);
28
-
29
19
  static async getMonthInputs() {
30
20
  return $$('[data-testid="ds-controlled-date-time-picker-month-input"]');
31
21
  }