dimsum-e2e-tests 3.70.0-next.7 → 3.70.0-next.71

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 (297) hide show
  1. package/CHANGELOG.md +1079 -721
  2. package/ds-accordion/DSAccordion.visual.spec.js +6 -0
  3. package/ds-accordion/DSAccordionCO.js +15 -3
  4. package/ds-accordion/QA_NOTES.md +105 -0
  5. package/ds-accordion/controlled/DSAccordion.controlled.func.spec.js +23 -0
  6. package/ds-accordion/header-structure/DSAccordion.header-structure.func.spec.js +65 -0
  7. package/ds-accordion/input-inside/DSAccordion.input-inside.func.spec.js +19 -0
  8. package/ds-apppicker/DSAppPickerCO.js +101 -3
  9. package/ds-apppicker/aria-pattern/DSAppPicker.aria-pattern.func.spec.js +100 -0
  10. package/ds-apppicker/basic/DSAppPicker.basic.keyboard-nav.func.spec.js +18 -7
  11. package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.func.spec.js +1 -1
  12. package/ds-apppicker/custom-trigger-focus/DSAppPicker.custom-trigger-focus.func.spec.js +82 -0
  13. package/ds-apppicker/label-expansion-dismissal/DSAppPicker.label-expansion-dismissal.visual.spec.js +108 -0
  14. package/ds-apppicker/reflow/DSAppPicker.reflow.func.spec.js +32 -0
  15. package/ds-apppicker/reflow/DSAppPicker.reflow.visual.spec.js +5 -6
  16. package/ds-apppicker/truncation/DSAppPicker.truncation.visual.spec.js +5 -9
  17. package/ds-autocomplete/DSAutocomplete.visual.spec.js +34 -0
  18. package/ds-autocomplete/DSAutocompleteCO.js +36 -1
  19. package/ds-autocomplete/aria-busy-loading/DSAutocomplete.aria-busy-loading.axe-core.func.spec.js +50 -0
  20. package/ds-autocomplete/aria-busy-loading/DSAutocomplete.aria-busy-loading.func.spec.js +122 -0
  21. package/ds-autocomplete/aria-busy-loading/DSAutocomplete.aria-busy-loading.visual.spec.js +48 -0
  22. package/ds-autocomplete/slots/DSAutocomplete.slots.func.spec.js +6 -1
  23. package/ds-banner/DSBanner.text-resize.visual.spec.js +5 -2
  24. package/ds-banner/DSBannerCO.js +4 -0
  25. package/ds-button-v3/DSButtonV3.aria-disabled-attribute.func.spec.js +33 -0
  26. package/ds-button-v3/DSButtonV3CO.js +10 -0
  27. package/ds-button-v3/theme-font/DSButtonV3.theme-font.func.spec.js +30 -0
  28. package/ds-card/DSCard.cardv2_v1.func.spec.js +54 -0
  29. package/ds-card/DSCard.cardv2_v1.visual.spec.js +29 -0
  30. package/ds-card/DSCardCO.js +50 -0
  31. package/ds-card/detail-slots/DSCard.detail-slots.axe-core.func.spec.js +29 -0
  32. package/ds-card/detail-slots/DSCard.detail-slots.func.spec.js +72 -0
  33. package/ds-card/detail-slots/DSCard.detail-slots.visual.spec.js +19 -0
  34. package/ds-card-v3/DSCardV3CO.js +93 -1
  35. package/ds-card-v3/accordion/DSCardV3.accordion-aria-structure.func.spec.js +41 -0
  36. package/ds-card-v3/accordion/DSCardV3.accordion-aria.keyboard.func.spec.js +49 -0
  37. package/ds-card-v3/accordion/DSCardV3.accordion.axe-core.func.spec.js +28 -0
  38. package/ds-card-v3/accordion/DSCardV3.accordion.visual.spec.js +4 -6
  39. package/ds-card-v3/action/DSCardV3.action.axe-core.func.spec.js +24 -0
  40. package/ds-card-v3/action/DSCardV3.action.func.spec.js +53 -0
  41. package/ds-card-v3/action/DSCardV3.action.visual.spec.js +28 -0
  42. package/ds-card-v3/drag-n-drop/DSCardV3.DnD.axe-core.func.spec.js +42 -0
  43. package/ds-card-v3/drag-n-drop/DSCardV3.DnD.func.spec.js +129 -0
  44. package/ds-card-v3/drag-n-drop/DSCardV3.DnD.reorder.func.spec.js +73 -0
  45. package/ds-card-v3/drag-n-drop/DSCardV3.DnD.visual.spec.js +5 -12
  46. package/ds-card-v3/global-attributes/DSCardV3.global-attributes.axe-core.func.spec.js +33 -0
  47. package/ds-card-v3/global-attributes/DSCardV3.global-attributes.visual.spec.js +20 -0
  48. package/ds-card-v3/multi-select/DSCardV3.multi-select.aria-grouping.func.spec.js +24 -0
  49. package/ds-card-v3/multi-select/DSCardV3.multiselect.axe-core.func.spec.js +47 -0
  50. package/ds-card-v3/multi-select/DSCardV3.multiselect.keyboard.func.spec.js +65 -0
  51. package/ds-card-v3/multi-select/DSCardV3.multiselect.visual.spec.js +17 -0
  52. package/ds-card-v3/multiple-action/DSCardV3.multiple-action.axe-core.func.spec.js +35 -0
  53. package/ds-card-v3/multiple-action/DSCardV3.multiple-action.func.spec.js +53 -0
  54. package/ds-card-v3/multiple-action/DSCardV3.multiple-action.visual.spec.js +18 -0
  55. package/ds-card-v3/multiple-control/DSCardV3.multi-control.axe-core.func.spec.js +34 -0
  56. package/ds-card-v3/multiple-control/DSCardV3.multi-control.func.spec.js +26 -0
  57. package/ds-card-v3/multiple-control/DSCardV3.multi-control.visual.spec.js +29 -0
  58. package/ds-card-v3/no-action/DSCardV3.no-action.axe-core.func.spec.js +22 -0
  59. package/ds-card-v3/no-action/DSCardV3.no-action.func.spec.js +23 -0
  60. package/ds-card-v3/no-action/DSCardV3.no-action.visual.spec.js +15 -0
  61. package/ds-card-v3/notification-badges/DSCardV3.notification-badges.axe-core.func.spec.js +33 -0
  62. package/ds-card-v3/notification-badges/DSCardV3.notification-badges.func.spec.js +19 -0
  63. package/ds-card-v3/notification-badges/DSCardV3.notification-badges.visual.spec.js +28 -0
  64. package/ds-card-v3/reflow/DSCardV3.reflow.axe-core.func.spec.js +28 -0
  65. package/ds-card-v3/reflow/DSCardV3.reflow.func.spec.js +36 -0
  66. package/ds-card-v3/reflow/DSCardV3.reflow.visual.spec.js +3 -2
  67. package/ds-card-v3/single-select/DSCardV3.single-select.aria-grouping.func.spec.js +24 -0
  68. package/ds-card-v3/single-select/DSCardV3.single-select.axe-core.func.spec.js +37 -0
  69. package/ds-card-v3/single-select/DSCardV3.single-select.visual.spec.js +1 -2
  70. package/ds-card-v3/slots/DSCardV3.slots.visual.spec.js +1 -2
  71. package/ds-card-v3/variant-accented/DSCardV3.variant-accented.axe-core.func.spec.js +45 -0
  72. package/ds-card-v3/variant-accented/DSCardV3.variant-accented.func.spec.js +28 -0
  73. package/ds-card-v3/variant-accented/DSCardV3.variant-accented.visual.spec.js +35 -0
  74. package/ds-card-v3/variant-accented-disabled/DSCardV3.variant-accented-disabled.axe-core.func.spec.js +35 -0
  75. package/ds-card-v3/variant-accented-disabled/DSCardV3.variant-accented-disabled.func.spec.js +53 -0
  76. package/ds-card-v3/variant-accented-disabled/DSCardV3.variant-accented-disabled.visual.spec.js +28 -0
  77. package/ds-card-v3/variant-disabled/DSCardV3.variant-disabled.axe-core.func.spec.js +22 -0
  78. package/ds-card-v3/variant-disabled/DSCardV3.variant-disabled.func.spec.js +61 -0
  79. package/ds-card-v3/variant-disabled/DSCardV3.variant-disabled.visual.spec.js +20 -0
  80. package/ds-card-v3/variant-disabled/DSCardV3.variantDisabled-non-interactive.func.spec.js +25 -0
  81. package/ds-chat/DSChat.axe-core.func.spec.js +2 -2
  82. package/ds-chat/DSChat.visual.spec.js +4 -4
  83. package/ds-chat/DSChatCO.js +18 -24
  84. package/ds-chat/bubbles/slots/DSChatBubble.slots.axe-core.func.spec.js +24 -0
  85. package/ds-chat/bubbles/slots/DSChatBubble.slots.func.spec.js +49 -0
  86. package/ds-chat/bubbles/slots/DSChatBubble.slots.visual.spec.js +25 -0
  87. package/ds-chat/card/slots/DSChatCard.slots.axe-core.func.spec.js +24 -0
  88. package/ds-chat/card/slots/DSChatCard.slots.func.spec.js +47 -0
  89. package/ds-chat/card/slots/DSChatCard.slots.visual.spec.js +18 -0
  90. package/ds-chat/card/truncated-text/DSChatCard.truncated-text.func.spec.js +32 -0
  91. package/ds-chat/card/truncated-text/DSChatCard.truncated-text.visual.spec.js +26 -0
  92. package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.axe-core.func.spec.js +23 -0
  93. package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.visual.spec.js +17 -0
  94. package/ds-chat/components/BubbleCO.js +46 -3
  95. package/ds-chat/components/CardCO.js +75 -0
  96. package/ds-chat/components/ComposerCO.js +6 -6
  97. package/ds-chat/components/FloatingButtonCO.js +5 -3
  98. package/ds-chat/components/HeaderCO.js +2 -2
  99. package/ds-chat/components/TileCO.js +82 -0
  100. package/ds-chat/components/index.js +3 -2
  101. package/ds-chat/floatingbutton/DSChat-floating-button.visual.spec.js +1 -1
  102. package/ds-chat/loadmore/DSChat-loadmore.func.spec.js +1 -1
  103. package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.axe-core.func.spec.js +2 -2
  104. package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.func.spec.js +1 -1
  105. package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.visual.spec.js +2 -2
  106. package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.axe-core.func.spec.js +2 -2
  107. package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.visual.spec.js +1 -1
  108. package/ds-chat/tile/slots/DSChatTile.slots.func.spec.js +53 -0
  109. package/ds-chat/tile/slots/DSChatTile.slots.visual.spec.js +18 -0
  110. package/ds-chip/label-expansion-dismissal/DSChip.label-expansion-dismissal.visual.spec.js +84 -0
  111. package/ds-controlled-form/ds-combobox/creatable/DSCombobox.creatable-tooltip.func.spec.js +47 -0
  112. package/ds-controlled-form/ds-combobox/creatable/DSCombobox.creatable.visual.spec.js +12 -21
  113. package/ds-controlled-form/ds-combobox/disabled/DSCombobox.disabled.visual.spec.js +6 -1
  114. package/ds-controlled-form/ds-controlled-checkbox/Basic/DSControlledCheckbox.axe-core.basic.func.spec.js +4 -4
  115. package/ds-controlled-form/ds-controlled-checkbox/Basic/DSControlledCheckbox.basic.visual.spec.js +56 -0
  116. package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckboxCO.js +54 -1
  117. package/ds-controlled-form/ds-controlled-checkbox/Disabled/DSControlledCheckbox.axe-core.disabled.func.spec.js +1 -1
  118. package/ds-controlled-form/ds-controlled-checkbox/Disabled/DSControlledCheckbox.disabled.visual.spec.js +1 -1
  119. package/ds-controlled-form/ds-controlled-checkbox/HasError/DSControlledCheckbox.axe-core.hasError.func.spec.js +4 -4
  120. package/ds-controlled-form/ds-controlled-checkbox/HasError/DSControlledCheckbox.has-error.visual.spec.js +71 -1
  121. package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.axe-core.mixed.func.spec.js +4 -4
  122. package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.visual.spec.js +1 -1
  123. package/ds-controlled-form/ds-controlled-checkbox/ReadOnly/DSControlledCheckbox.axe-core.read-only.func.spec.js +3 -3
  124. package/ds-controlled-form/ds-controlled-checkbox/ReadOnly/DSControlledCheckbox.read-only.visual.spec.js +1 -1
  125. package/ds-controlled-form/ds-controlled-checkbox/WithTooltip/DSControlledCheckbox.axe-core.with-tooltip.func.spec.js +1 -1
  126. package/ds-controlled-form/ds-controlled-checkbox/WithTooltip/DSControlledCheckbox.with-tooltip.visual.spec.js +1 -3
  127. package/ds-controlled-form/ds-controlled-checkbox/WrapLabel/DSControlledCheckbox.axe-core.wrap-label.func.spec.js +1 -1
  128. package/ds-controlled-form/ds-controlled-checkbox/WrapLabel/DSControlledCheckbox.wrap-label.visual.spec.js +1 -1
  129. package/ds-controlled-form/ds-controlled-checkbox/aria-disabled/DSControlledCheckbox.aria-disabled.visual.spec.js +2 -6
  130. package/ds-controlled-form/ds-controlled-checkbox/aria-disabled/DSControlledCheckbox.axe-core.aria-disabled.func.spec.js +1 -1
  131. package/ds-controlled-form/ds-controlled-checkbox/slots/DSControlledCheckbox.slots.func.spec.js +78 -0
  132. package/ds-controlled-form/ds-controlled-checkbox/theme-font/DSControlledCheckbox.theme-font.func.spec.js +30 -0
  133. package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroup.axe-core.func.spec.js +4 -4
  134. package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroup.visual.spec.js +1 -1
  135. package/ds-controlled-form/ds-controlled-radio/DSControlledRadioCO.js +50 -1
  136. package/ds-controlled-form/ds-controlled-radio/aria-disabled/DSControlledRadio.aria-disabled.axe-core.func.spec.js +16 -2
  137. package/ds-controlled-form/ds-controlled-radio/aria-disabled/DSControlledRadio.aria-disabled.func.spec.js +37 -0
  138. package/ds-controlled-form/ds-controlled-radio/slots/DSControlledRadio.slots.func.spec.js +78 -0
  139. package/ds-controlled-form/ds-controlled-radio/theme-font/DSControlledRadio.theme-font.func.spec.js +30 -0
  140. package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +1 -3
  141. package/ds-data-table-async/DSDataTableCO.js +187 -10
  142. package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +1 -1
  143. package/ds-data-table-async/components/FilterBarCO.js +7 -0
  144. package/ds-data-table-async/components/FiltersCO.js +1 -1
  145. package/ds-data-table-async/components/HeaderCO.js +37 -1
  146. package/ds-data-table-async/dnd/DSDataTable.dnd-keyboard-scroll.func.spec.js +51 -0
  147. package/ds-data-table-async/filter-menu-close/DSDataTable.filter-menu-close.func.spec.js +77 -0
  148. package/ds-data-table-async/filter-popover-boundary/DSDataTable.filter-popover-boundary.func.spec.js +98 -0
  149. package/ds-data-table-async/filters/DSDataTable.filters-creatable-active-descendant.func.spec.js +51 -0
  150. package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +55 -0
  151. package/ds-data-table-async/filters/DSDataTable.filters.axe-core.func.spec.js +11 -9
  152. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2-creatablemultiselect.keyboard.func.spec.js +2 -2
  153. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2-creatableselect.keyboard.func.spec.js +2 -2
  154. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2.axe-core.func.spec.js +45 -29
  155. package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.axe-core.func.spec.js +23 -0
  156. package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.func.spec.js +50 -0
  157. package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.visual.spec.js +21 -0
  158. package/ds-data-table-async/header-affordances/DSDataTable.header-affordances.func.spec.js +92 -0
  159. package/ds-data-table-async/helpers/getInputSelection.js +6 -0
  160. package/ds-data-table-async/helpers/index.js +1 -0
  161. package/ds-data-table-async/keyboard-scroll/DSDataTable.keyboard-scroll.func.spec.js +39 -0
  162. package/ds-data-table-async/menubutton/DSDataTable.MenuButton.keyboard.func.spec.js +8 -7
  163. package/ds-data-table-async/menubutton/DSDataTable.MenuButton.mouse.func.spec.js +6 -7
  164. package/ds-data-table-async/pagination/DSDataTable.pagination.func.spec.js +3 -2
  165. package/ds-data-table-async/resizable/DSDataTable.resize-min-clamp.func.spec.js +72 -0
  166. package/ds-data-table-async/resizable/DSDataTable.resizerA11y.axe-core.func.spec.js +42 -0
  167. package/ds-data-table-async/resizable/DSDataTable.resizerA11y.func.spec.js +98 -0
  168. package/ds-data-table-async/textwrapping/DSDataTable.header-wrap-alignment.axe-core.func.spec.js +23 -0
  169. package/ds-data-table-async/textwrapping/DSDataTable.header-wrap-alignment.visual.spec.js +106 -0
  170. package/ds-data-table-async/textwrapping/DSDataTable.text-wrap-toolbar.visual.spec.js +27 -0
  171. package/ds-data-table-async/toggle-cell-focus/DSDataTable.toggle-cell-enter-focus.func.spec.js +31 -0
  172. package/ds-data-table-async/vissibility/DSDataTable.vissibility.visual.spec.js +2 -0
  173. package/ds-dataviz/DSDataViz.axis.visual.spec.js +1 -2
  174. package/ds-dataviz/DSDataViz.ticks.visual.spec.js +1 -2
  175. package/ds-dataviz/DSDataVizCO.js +2 -0
  176. package/ds-dataviz/axecore/DSDataViz.axis.axe-core.func.spec.js +1 -1
  177. package/ds-floating-context/DSFloatingContextCO.js +10 -0
  178. package/ds-floating-context/placement/DSFloatingContext.placement.visual.spec.js +48 -0
  179. package/ds-form-combobox-multi/DSComboboxMultiCO.js +36 -9
  180. package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.axe-core.func.spec.js +55 -0
  181. package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.func.spec.js +57 -0
  182. package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +19 -2
  183. package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.axe-core.func.spec.js +24 -0
  184. package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.mouse.func.spec.js +0 -2
  185. package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.visual.spec.js +22 -0
  186. package/ds-form-combobox-multi/grouped/DSComboboxMulti.grouped.visual.spec.js +42 -0
  187. package/ds-form-combobox-multi/inline/DSComboboxMulti.inline.visual.spec.js +21 -0
  188. package/ds-form-combobox-multi/pills/DSComboboxMulti.pills.func.spec.js +59 -0
  189. package/ds-form-combobox-multi/pills/DSComboboxMulti.pills.visual.spec.js +39 -0
  190. package/ds-form-combobox-multi/skeleton/DSComboboxMulti.skeleton.visual.spec.js +25 -0
  191. package/ds-form-combobox-multi/theme-font/DSComboboxMulti.theme-font.func.spec.js +38 -0
  192. package/ds-form-combobox-multi/with-tooltip/DSComboboxMulti.with-tooltip.axe-core.func.spec.js +39 -0
  193. package/ds-form-combobox-multi/with-tooltip/DSComboboxMulti.with-tooltip.func.spec.js +39 -0
  194. package/ds-form-combobox-multi/with-tooltip/DSComboboxMulti.with-tooltip.visual.spec.js +29 -0
  195. package/ds-form-combobox-single/DSComboboxSingleCO.js +25 -9
  196. package/ds-form-combobox-single/aria-busy-loading/DSComboboxSingle.aria-busy-loading.axe-core.func.spec.js +49 -0
  197. package/ds-form-combobox-single/aria-busy-loading/DSComboboxSingle.aria-busy-loading.func.spec.js +54 -0
  198. package/ds-form-combobox-single/aria-disabled/DSComboboxSingle.aria-disabled.visual.spec.js +18 -0
  199. package/ds-form-combobox-single/creatable/DSComboboxSingle.creatable.visual.spec.js +30 -0
  200. package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.axe-core.func.spec.js +24 -0
  201. package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.mouse.func.spec.js +0 -2
  202. package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.visual.spec.js +22 -0
  203. package/ds-form-combobox-single/grouped/DSComboboxSingle.grouped.visual.spec.js +45 -0
  204. package/ds-form-combobox-single/inline/DSComboboxSingle.inline.visual.spec.js +23 -0
  205. package/ds-form-combobox-single/skeleton/DSComboboxSingle.skeleton.visual.spec.js +25 -0
  206. package/ds-form-combobox-single/theme-font/DSComboboxSingle.theme-font.func.spec.js +34 -0
  207. package/ds-form-combobox-single/with-tooltip/DSComboboxSingle.with-tooltip.axe-core.func.spec.js +39 -0
  208. package/ds-form-combobox-single/with-tooltip/DSComboboxSingle.with-tooltip.func.spec.js +39 -0
  209. package/ds-form-combobox-single/with-tooltip/DSComboboxSingle.with-tooltip.visual.spec.js +29 -0
  210. package/ds-form-date-range-picker/DateRangePicker.axe-core.spec.js +5 -0
  211. package/ds-form-date-range-picker/DateRangePicker.functional.spec.js +80 -18
  212. package/ds-form-date-range-picker/DateRangePickerCO.js +19 -0
  213. package/ds-form-date-range-picker/date-segment-aria-labels/DateRangePicker.date-segment-aria-labels.func.spec.js +66 -0
  214. package/ds-form-date-range-picker/grouped-field-error-announcement/DateRangePicker.grouped-field-error-announcement.func.spec.js +59 -0
  215. package/ds-form-date-range-picker/picker-callbacks/DateRangePicker.picker-callbacks.func.spec.js +36 -0
  216. package/ds-form-date-time-picker/DSControlledDateTimePickerCO.js +7 -0
  217. package/ds-form-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +8 -1
  218. package/ds-form-date-time-picker/date-time-full/DateTimePicker.DateTimeFull.visual.spec.js +9 -0
  219. package/ds-form-date-time-picker/partial-date-open-focus/DateTimePicker.partial-date-open-focus.func.spec.js +45 -0
  220. package/ds-form-native-select/NativeSelect.axe-core.func.spec.js +39 -0
  221. package/ds-form-native-select/NativeSelect.visual.spec.js +33 -0
  222. package/ds-form-native-select/NativeSelectCO.js +6 -0
  223. package/ds-form-native-select/option-selection/NativeSelect.option-selection.func.spec.js +25 -0
  224. package/ds-form-toggle/DSToggle.func.spec.js +20 -23
  225. package/ds-form-toggle/DSToggleCO.js +11 -2
  226. package/ds-global-header/GlobalHeader.announcements.func.spec.js +27 -0
  227. package/ds-global-header/GlobalHeader.axe-core.func.spec.js +15 -15
  228. package/ds-global-header/GlobalHeader.func.spec.js +70 -1
  229. package/ds-global-header/GlobalHeaderCO.js +120 -2
  230. package/ds-global-header/app-picker-passthrough/GlobalHeader.app-picker-passthrough.func.spec.js +113 -0
  231. package/ds-global-header/popup-menu-focus/GlobalHeader.popup-menu-focus.func.spec.js +63 -0
  232. package/ds-global-header/popup-menu-slots/GlobalHeader.popup-menu-slots.func.spec.js +70 -0
  233. package/ds-global-header/search-toggle-slots/GlobalHeader.search-toggle-slots.func.spec.js +118 -0
  234. package/ds-global-header/toolbar-item-attributes/GlobalHeader.toolbar-item-attributes.func.spec.js +53 -0
  235. package/ds-grid/DSGridCO.js +20 -0
  236. package/ds-grid/layout-mode/DSGrid.layout-mode.func.spec.js +51 -0
  237. package/ds-grid/layout-mode/DSGrid.layout-mode.visual.spec.js +22 -0
  238. package/ds-hooks/DSHook.UseFontSizeMedia.visual.spec.js +5 -2
  239. package/ds-hooks/DSHook.usetree.func.spec.js +3 -2
  240. package/ds-hooks/DSHookCO.js +56 -23
  241. package/ds-hooks/useFocusStack/DSHook.useFocusStack.func.spec.js +83 -0
  242. package/ds-hooks/useFocusTrap/UseFocusTrapCO.js +2 -0
  243. package/ds-hooks/useFocusTrap/UseFocusTrapToggle.func.spec.js +48 -0
  244. package/ds-hooks/useMask/Number/UseNumberMask.axe-core.func.spec.js +48 -0
  245. package/ds-menu-button/DSMenuButtonCO.js +23 -0
  246. package/ds-menu-button/slots/DSMenuButton.slots.axe-core.func.spec.js +28 -0
  247. package/ds-menu-button/slots/DSMenuButton.slots.func.spec.js +59 -0
  248. package/ds-menu-button/slots/DSMenuButton.slots.visual.spec.js +26 -0
  249. package/ds-modal-slide/ModalSlideCO.js +7 -0
  250. package/ds-modal-slide/custom-header/ModalSlide.customHeader.focusRing.visual.spec.js +2 -1
  251. package/ds-modal-slide/heading-level/ModalSlide.headingLevel.axe-core.func.spec.js +25 -0
  252. package/ds-modal-slide/heading-level/ModalSlide.headingLevel.func.spec.js +25 -0
  253. package/ds-modal-slide/slots/ModalSlide.slots.func.spec.js +18 -0
  254. package/ds-notification-badge/DSNotificationBadge.visual.spec.js +17 -20
  255. package/ds-page-layout/PageLayoutCO.js +4 -4
  256. package/ds-pills-v2/DSPillsV2CO.js +12 -0
  257. package/ds-pills-v2/apply-aria-disabled/DSPills.applyAriaDisabled.func.spec.js +53 -0
  258. package/ds-pills-v2/apply-aria-disabled/DSPills.applyAriaDisabled.visual.spec.js +26 -0
  259. package/ds-pills-v2/disabled/DSPills.disabled.func.spec.js +53 -0
  260. package/ds-pills-v2/disabled/DSPills.disabled.visual.spec.js +33 -0
  261. package/ds-progress-indicator/DSProgressIndicator.axe-core.func.spec.js +2 -0
  262. package/ds-progress-indicator/DSProgressIndicatorCO.js +1 -1
  263. package/ds-query-builder/DSQueryBuilder.visual.spec.js +6 -6
  264. package/ds-shuttle-v2/DSShuttleV2CO.js +15 -1
  265. package/ds-shuttle-v2/breadcrumb-a11y/DSShuttleV2.breadcrumb-a11y.func.spec.js +43 -0
  266. package/ds-shuttle-v2/explicit-selection-ui/DSShuttleV2.explicit-selection-ui.func.spec.js +37 -0
  267. package/ds-shuttle-v2/explicit-selection-ui/DSShuttleV2.explicit-selection-ui.visual.spec.js +30 -0
  268. package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +8 -3
  269. package/ds-shuttle-v2/items/DSShuttleV2.items.func.spec.js +4 -2
  270. package/ds-shuttle-v2/skipped/DSShuttleV2.extra.axe-core.skipped.js +1 -1
  271. package/ds-shuttle-v2/skipped/DSShuttleV2.filter.axe-core.skipped.js +1 -1
  272. package/ds-shuttle-v2/skipped/DSShuttleV2.globalcheckbox.axe-core.skipped.js +1 -1
  273. package/ds-shuttle-v2/skipped/DSShuttleV2.items.axe-core.skipped.js +3 -3
  274. package/ds-shuttle-v2/skipped/DSShuttleV2.skipped.js +5 -5
  275. package/ds-slider-v2/DSSliderV2.func.spec.js +36 -25
  276. package/ds-slider-v2/DSSliderV2CO.js +10 -0
  277. package/ds-slider-v2/min-range/DSSliderV2.min-range.func.spec.js +69 -0
  278. package/ds-tab-button/DSTabButton.func.spec.js +1 -1
  279. package/ds-tabs/DSTabsCO.js +4 -0
  280. package/ds-tabs/notification-badge/DSTabs.notification-badge.axe-core.func.spec.js +28 -0
  281. package/ds-tabs/notification-badge/DSTabs.notification-badge.func.spec.js +51 -0
  282. package/ds-tooltip-v3/DSTooltipV3CO.js +21 -0
  283. package/ds-tooltip-v3/aria-tooltip-pattern/DSTooltipV3.aria-tooltip-pattern.axe-core.func.spec.js +23 -0
  284. package/ds-tooltip-v3/aria-tooltip-pattern/DSTooltipV3.aria-tooltip-pattern.func.spec.js +29 -0
  285. package/ds-tooltip-v3/dialog/DSTooltipV3.dialog.func.spec.js +45 -0
  286. package/ds-tooltip-v3/dialog/DSTooltipV3.dialog.visual.spec.js +29 -0
  287. package/ds-treeview/DSTreeViewCO.js +23 -0
  288. package/ds-treeview/dragAndDrop/TreeView-dnd_keyboard.func.spec.js +96 -0
  289. package/ds-typography/DSTypographyCO.js +10 -0
  290. package/ds-typography/theme-font/DSTypography.theme-font.func.spec.js +30 -0
  291. package/package.json +150 -153
  292. package/paths.js +16 -6
  293. package/ds-card-v3/disabled/DSCardV3.disabled.visual.spec.js +0 -17
  294. package/ds-chat-tile/TileCO.js +0 -35
  295. package/ds-hooks/DSHook.func.spec.js +0 -60
  296. package/ds-hooks/useFocusStack/DSHook.useFocusStack.skipped.js +0 -57
  297. package/ds-treeview/dragAndDrop/TreeView-dnd_mouse.func.spec.js +0 -61
@@ -0,0 +1,34 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+ import { axeCoreCheck } from '../../helpers';
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-18826 - DSCardV3:: multiple control accessibility - Axe-Core', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.multipleControlURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: should have no accessibility violations with no card selected', async () => {
17
+ const card = await DSCardV3CO.getCardContainerByIndex(0);
18
+ await card.waitForDisplayed();
19
+
20
+ const result = await axeCoreCheck();
21
+ await expect(result).toHaveLength(0);
22
+ });
23
+
24
+ it('02: should have no accessibility violations with the first card selected', async () => {
25
+ const firstCheckbox = await DSCardV3CO.getCardCheckBoxByIndex(0);
26
+ await firstCheckbox.waitForExist();
27
+ await firstCheckbox.click();
28
+ await expect(firstCheckbox).toBeSelected();
29
+
30
+ const result = await axeCoreCheck();
31
+ await expect(result).toHaveLength(0);
32
+ });
33
+ });
34
+ }
@@ -0,0 +1,26 @@
1
+ /* eslint-disable max-lines */
2
+ import { Key } from 'webdriverio';
3
+ import DSCardV3CO from '../DSCardV3CO';
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-18645 - CardV3: Multi Control - Func Test', () => {
12
+ before('loading page', async () => {
13
+ const errorOnGo = await DSCardV3CO.multipleControlURL.go();
14
+ if (errorOnGo) throw errorOnGo;
15
+ });
16
+ it('01: first checkbox selection should not select second checkbox - [TAB + TAB + SPACE]', async () => {
17
+ await browser.keys(Key.Tab);
18
+ await browser.keys(Key.Tab);
19
+ await browser.keys(Key.Space);
20
+ const firstCheckbox = await DSCardV3CO.getCardCheckBoxByIndex(0);
21
+ await expect(firstCheckbox).toBeSelected();
22
+ const secondCheckbox = await DSCardV3CO.getCardCheckBoxByIndex(1);
23
+ await expect(secondCheckbox).not.toBeSelected();
24
+ });
25
+ });
26
+ }
@@ -0,0 +1,29 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+
3
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
4
+ describe('PUI-18825 - DSCardV3:: multiple control card states - Visual', () => {
5
+ before('loading page', async () => {
6
+ const errorOnGo = await DSCardV3CO.multipleControlURL.go();
7
+ if (errorOnGo) throw errorOnGo;
8
+ });
9
+
10
+ it('01: should display both cards with their controls unselected', async () => {
11
+ const firstCard = await DSCardV3CO.getCardContainerByIndex(0);
12
+ await firstCard.waitForDisplayed();
13
+ const secondCard = await DSCardV3CO.getCardContainerByIndex(1);
14
+ await expect(secondCard).toBeDisplayed();
15
+
16
+ const snapshot = await browser.percyCheckScreenshot();
17
+ await expect(snapshot).toEqual(0);
18
+ });
19
+
20
+ it('02: should display the first card selected', async () => {
21
+ const firstCheckbox = await DSCardV3CO.getCardCheckBoxByIndex(0);
22
+ await firstCheckbox.click();
23
+ await expect(firstCheckbox).toBeSelected();
24
+
25
+ const snapshot = await browser.percyCheckScreenshot();
26
+ await expect(snapshot).toEqual(0);
27
+ });
28
+ });
29
+ }
@@ -0,0 +1,22 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+ import { axeCoreCheck } from '../../helpers';
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-18717 - CardV3: No Action - axe-core', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.noActionURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: Card should display correctly and pass axecore test', async () => {
16
+ const firstElement = await DSCardV3CO.getElement(0);
17
+ await firstElement.waitForExist();
18
+ const result = await axeCoreCheck();
19
+ await expect(result).toHaveLength(0);
20
+ });
21
+ });
22
+ }
@@ -0,0 +1,23 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+
3
+ if (
4
+ (!browser.capabilities['ice:options'].isPhone &&
5
+ !browser.capabilities['ice:options'].isTablet &&
6
+ browser.capabilities.browserName === 'chrome') ||
7
+ browser.capabilities.browserName === 'Chrome'
8
+ ) {
9
+ describe('PUI-18736 - DSCardV3:: no-action title and subtitle render - Func', () => {
10
+ before('loading page', async () => {
11
+ const errorOnGo = await DSCardV3CO.noActionURL.go();
12
+ if (errorOnGo) throw errorOnGo;
13
+ });
14
+ it('01: Card should display correctly', async () => {
15
+ const firstElement = await DSCardV3CO.getElement(0);
16
+ await expect(firstElement).toHaveText('Card Title');
17
+ await expect(firstElement).toHaveAttribute('data-dimsum-slot', 'dsTypographyRoot');
18
+ const secondElement = await DSCardV3CO.getElement(1);
19
+ await expect(secondElement).toHaveText('Card Subtitle');
20
+ await expect(secondElement).toHaveAttribute('data-dimsum-slot', 'dsTypographyRoot');
21
+ });
22
+ });
23
+ }
@@ -0,0 +1,15 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
3
+ describe('PUI-18737 - DSCardV3:: no-action card renders - Visual', () => {
4
+ before('loading page', async () => {
5
+ const errorOnGo = await DSCardV3CO.noActionURL.go();
6
+ if (errorOnGo) throw errorOnGo;
7
+ });
8
+ it('01: Should load the page and pass visual test', async () => {
9
+ const firstElement = await DSCardV3CO.getElement(0);
10
+ await expect(firstElement).toBeDisplayed();
11
+ const snapshot = await browser.percyCheckScreenshot();
12
+ await expect(snapshot).toEqual(0);
13
+ });
14
+ });
15
+ }
@@ -0,0 +1,33 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+ import { axeCoreCheck } from '../../helpers';
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-18806 - DSCardV3:: notification badge card accessibility - Axe-Core', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.notificationBadgesURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: should have no accessibility violations', async () => {
17
+ const card = await DSCardV3CO.getCardContainer();
18
+ await card.waitForDisplayed();
19
+
20
+ const result = await axeCoreCheck();
21
+ await expect(result).toHaveLength(0);
22
+ });
23
+
24
+ it('02: should have no accessibility violations with an action button focused', async () => {
25
+ const flagAction = await DSCardV3CO.getButtonByIndex(0);
26
+ await flagAction.click();
27
+ await expect(flagAction).toBeFocused();
28
+
29
+ const result = await axeCoreCheck();
30
+ await expect(result).toHaveLength(0);
31
+ });
32
+ });
33
+ }
@@ -0,0 +1,19 @@
1
+ /* eslint-disable max-lines */
2
+ import DSCardV3CO from '../DSCardV3CO';
3
+
4
+ if (
5
+ !browser.capabilities['ice:options'].isPhone &&
6
+ !browser.capabilities['ice:options'].isTablet &&
7
+ (browser.capabilities.browserName === 'Chrome' || browser.capabilities.browserName === 'chrome')
8
+ ) {
9
+ describe('PUI-18646 - CardV3: Notification Badges Accessible Names - Func Test', () => {
10
+ before('loading page', async () => {
11
+ const errorOnGo = await DSCardV3CO.notificationBadgesURL.go();
12
+ if (errorOnGo) throw errorOnGo;
13
+ });
14
+ it('01: notification badge should have attributes', async () => {
15
+ const notificationBadge = await DSCardV3CO.getByRole();
16
+ await expect(notificationBadge).toHaveAttribute('aria-label', '3 new notifications');
17
+ });
18
+ });
19
+ }
@@ -0,0 +1,28 @@
1
+ import { Key } from 'webdriverio';
2
+ import DSCardV3CO from '../DSCardV3CO';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-18805 - DSCardV3:: notification badge card render - Visual', () => {
6
+ before('loading page', async () => {
7
+ const errorOnGo = await DSCardV3CO.notificationBadgesURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+
11
+ it('01: should display the card with a notification badge and action buttons', async () => {
12
+ const card = await DSCardV3CO.getCardContainer();
13
+ await card.waitForDisplayed();
14
+
15
+ const snapshot = await browser.percyCheckScreenshot();
16
+ await expect(snapshot).toEqual(0);
17
+ });
18
+
19
+ it('02: should display the leading action button with its focus ring - [TAB]', async () => {
20
+ await browser.keys(Key.Tab);
21
+ const flagAction = await DSCardV3CO.getButtonByIndex(0);
22
+ await expect(flagAction).toBeFocused();
23
+
24
+ const snapshot = await browser.percyCheckScreenshot();
25
+ await expect(snapshot).toEqual(0);
26
+ });
27
+ });
28
+ }
@@ -0,0 +1,28 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+ import { axeCoreCheck } from '../../helpers';
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-18718 - CardV3:: Reflow - axe-core', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.reflowURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: should display the accordion closed and pass axecore test', async () => {
16
+ await (await DSCardV3CO.getAccordionButton()).waitForDisplayed();
17
+ const result = await axeCoreCheck();
18
+ await expect(result).toHaveLength(0);
19
+ });
20
+ it('02: should open the accordion and pass axecore test', async () => {
21
+ await (await DSCardV3CO.getAccordionButton()).click();
22
+ const getAccordionFirstElement = await DSCardV3CO.getElement(7);
23
+ await getAccordionFirstElement.waitForDisplayed();
24
+ const result = await axeCoreCheck();
25
+ await expect(result).toHaveLength(0);
26
+ });
27
+ });
28
+ }
@@ -0,0 +1,36 @@
1
+ import { Key } from 'webdriverio';
2
+ import DSCardV3CO from '../DSCardV3CO';
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-18738 - DSCardV3:: reflow keyboard navigation - Func', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.reflowURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: First checkbox should be disabled', async () => {
16
+ await browser.keys(Key.Tab);
17
+ const firstCheckbox = await DSCardV3CO.getCardCheckBoxByIndex(0);
18
+ await expect(firstCheckbox).toBeFocused();
19
+ await expect(firstCheckbox).toHaveAttribute('aria-disabled', 'true');
20
+ });
21
+ it('02: More Options should be focused', async () => {
22
+ await browser.keys(Key.Tab);
23
+ const options = await DSCardV3CO.getButtonByIndex(0);
24
+ await expect(options).toBeFocused();
25
+ await expect(options).toHaveAttribute('aria-label', 'More Options');
26
+ });
27
+ it('03: Content should be expanded when clicked on Accordion', async () => {
28
+ await browser.keys(Key.Tab);
29
+ await browser.keys(Key.Space);
30
+ const accordionButton = await DSCardV3CO.getAccordionButton();
31
+ await expect(accordionButton).toHaveAttribute('aria-expanded', 'true');
32
+ const accordionContent = await DSCardV3CO.getElement(7);
33
+ await expect(accordionContent).toBeDisplayed();
34
+ });
35
+ });
36
+ }
@@ -1,16 +1,17 @@
1
1
  import DSCardV3CO from '../DSCardV3CO';
2
+ import { setTextSize } from '../../helpers';
2
3
 
3
4
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
4
5
  describe('PUI-13981 - CardV3: Reflow -Visual Test', () => {
5
6
  before('loading page', async () => {
6
7
  const errorOnGo = await DSCardV3CO.reflowURL.go();
7
8
  if (errorOnGo) throw errorOnGo;
9
+ await setTextSize('26');
8
10
  });
9
11
  it('01: should display cards after a 200% of text resize', async () => {
10
- await browser.eyesOpen();
11
12
  const expandContentButton = await DSCardV3CO.getExpandContentButton();
12
13
  await expandContentButton.click();
13
- const snapshot = await browser.eyesCheckSnapshot(DSCardV3CO.snapshotPath('card-v3-reflow'));
14
+ const snapshot = await browser.percyCheckScreenshot();
14
15
  await expect(snapshot).toEqual(0);
15
16
  });
16
17
  });
@@ -0,0 +1,24 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+
3
+ if (
4
+ (!browser.capabilities['ice:options'].isPhone &&
5
+ !browser.capabilities['ice:options'].isTablet &&
6
+ browser.capabilities.browserName === 'chrome') ||
7
+ browser.capabilities.browserName === 'Chrome'
8
+ ) {
9
+ // Tests for the fix introduced in PUI-17891 (radio button group not programmatically grouped)
10
+ describe('PUI-18600 - DSCardV3:: single-select ARIA radiogroup role - Func', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.singleSelectURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: wrapper container has role="radiogroup" and an accessible label', async () => {
17
+ const wrapper = await DSCardV3CO.getRadioGroupContainer();
18
+ await expect(wrapper).toBeExisting();
19
+ await expect(wrapper).toHaveAttribute('role', 'radiogroup');
20
+ const label = await wrapper.getAttribute('aria-label');
21
+ expect(label).toBeTruthy();
22
+ });
23
+ });
24
+ }
@@ -0,0 +1,37 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+ import { axeCoreCheck } from '../../helpers';
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-18739 - DSCardV3:: single-select accessibility - axe-core', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.singleSelectURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: Should select radio button and pass axecore test', async () => {
16
+ const firstRadioButton = await DSCardV3CO.getRadioButtonByIndex(0);
17
+ await firstRadioButton.waitForExist();
18
+ await firstRadioButton.click();
19
+ const result = await axeCoreCheck();
20
+ await expect(result).toHaveLength(0);
21
+ });
22
+ it('02: Should select second radio button and pass axecore test', async () => {
23
+ const secondRadioButton = await DSCardV3CO.getRadioButtonByIndex(1);
24
+ await secondRadioButton.waitForExist();
25
+ await secondRadioButton.click();
26
+ const result = await axeCoreCheck();
27
+ await expect(result).toHaveLength(0);
28
+ });
29
+ it('03: Should click on more options and pass axecore test', async () => {
30
+ const options = await DSCardV3CO.getButtonByIndex(0);
31
+ await options.waitForDisplayed();
32
+ await options.click();
33
+ const result = await axeCoreCheck();
34
+ await expect(result).toHaveLength(0);
35
+ });
36
+ });
37
+ }
@@ -10,12 +10,11 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
10
10
  if (errorOnGo) throw errorOnGo;
11
11
  });
12
12
  it('01: first radio button should be selected, and the dropdown menu should be opened', async () => {
13
- await browser.eyesOpen();
14
13
  const firstRadioButton = await DSControlledRadioCO.getRadioByIndex(0);
15
14
  const ellipsisMenuBtn = await DSButtonV3CO.getButtonByIndex(0);
16
15
  await firstRadioButton.click();
17
16
  await ellipsisMenuBtn.click();
18
- const snapshot = await browser.eyesCheckSnapshot(DSCardV3CO.snapshotPath('card-v3-sigle-select'));
17
+ const snapshot = await browser.percyCheckScreenshot();
19
18
  await expect(snapshot).toEqual(0);
20
19
  });
21
20
  });
@@ -8,10 +8,9 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
8
8
  if (errorOnGo) throw errorOnGo;
9
9
  });
10
10
  it('01: should display CardV3 with customized slots', async () => {
11
- await browser.eyesOpen();
12
11
  const root = await DSCardV3CO.getRootSlotByIndex();
13
12
  await root.waitForDisplayed();
14
- const snapshot = await browser.eyesCheckSnapshot(DSCardV3CO.snapshotPath('card-v3-slots'));
13
+ const snapshot = await browser.percyCheckScreenshot();
15
14
  await expect(snapshot).toEqual(0);
16
15
  });
17
16
  });
@@ -0,0 +1,45 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+ import { axeCoreCheck } from '../../helpers';
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-18807 - DSCardV3:: variant accented content and menu states accessibility - Axe-Core', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.variantAccentURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: should pass axe-core in the collapsed state', async () => {
17
+ const expandContentButton = await DSCardV3CO.getExpandContentButton();
18
+ await expandContentButton.waitForDisplayed();
19
+ await expect(expandContentButton).toHaveAttribute('aria-expanded', 'false');
20
+
21
+ const result = await axeCoreCheck();
22
+ await expect(result).toHaveLength(0);
23
+ });
24
+
25
+ it('02: should pass axe-core with the card body expanded', async () => {
26
+ const expandContentButton = await DSCardV3CO.getExpandContentButton();
27
+ await expandContentButton.click();
28
+ await expect(expandContentButton).toHaveAttribute('aria-expanded', 'true');
29
+ const cardBody = await DSCardV3CO.getCardBody();
30
+ await expect(cardBody).toBeDisplayedInViewport();
31
+
32
+ const result = await axeCoreCheck();
33
+ await expect(result).toHaveLength(0);
34
+ });
35
+
36
+ it('03: should pass axe-core with the card actions menu open', async () => {
37
+ const menuButton = await DSCardV3CO.getButtonByIndex(1);
38
+ await menuButton.click();
39
+ await expect(menuButton).toHaveAttribute('aria-expanded', 'true');
40
+
41
+ const result = await axeCoreCheck();
42
+ await expect(result).toHaveLength(0);
43
+ });
44
+ });
45
+ }
@@ -0,0 +1,28 @@
1
+ import { Key } from 'webdriverio';
2
+ import DSCardV3CO from '../DSCardV3CO';
3
+ if (
4
+ (!browser.capabilities['ice:options'].isPhone &&
5
+ !browser.capabilities['ice:options'].isTablet &&
6
+ browser.capabilities.browserName === 'chrome') ||
7
+ browser.capabilities.browserName === 'Chrome'
8
+ ) {
9
+ describe('PUI-18719 - CardV3: Variant Accented - Func Test', () => {
10
+ before('loading page', async () => {
11
+ const errorOnGo = await DSCardV3CO.variantAccentURL.go();
12
+ if (errorOnGo) throw errorOnGo;
13
+ });
14
+ it('01: content should be expanded, and the menu should be opened', async () => {
15
+ const expandContentButton = await DSCardV3CO.getExpandContentButton();
16
+ await browser.keys(Key.Tab);
17
+ await expect(expandContentButton).toBeFocused();
18
+ await browser.keys(Key.Space);
19
+ await expect(expandContentButton).toHaveAttribute('aria-expanded', 'true');
20
+ const expandableContent = await DSCardV3CO.getCardBody();
21
+ await expect(expandableContent).toBeDisplayedInViewport();
22
+ await browser.keys(Key.Tab);
23
+ await browser.keys(Key.Space);
24
+ const ellipsisMenuBtn = await DSCardV3CO.getButtonByIndex(1);
25
+ await expect(ellipsisMenuBtn).toHaveAttribute('aria-expanded', 'true');
26
+ });
27
+ });
28
+ }
@@ -0,0 +1,35 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
3
+ describe('PUI-18740 - DSCardV3:: variant accented states - Visual', () => {
4
+ before('loading page', async () => {
5
+ const errorOnGo = await DSCardV3CO.variantAccentURL.go();
6
+ if (errorOnGo) throw errorOnGo;
7
+ });
8
+ it('01: content should be collapsed(default state),', async () => {
9
+ const expandContentButton = await DSCardV3CO.getExpandContentButton();
10
+ await expect(expandContentButton).toBeDisplayed();
11
+ const snapshot = await browser.percyCheckScreenshot();
12
+ await expect(snapshot).toEqual(0);
13
+ });
14
+ it('02: content should be expanded,', async () => {
15
+ const expandContentButton = await DSCardV3CO.getExpandContentButton();
16
+ await expandContentButton.click();
17
+ const snapshot = await browser.percyCheckScreenshot();
18
+ await expect(snapshot).toEqual(0);
19
+ });
20
+ it('03: the menu should be opened', async () => {
21
+ const ellipsisMenuBtn = await DSCardV3CO.getButtonByIndex(1);
22
+ await ellipsisMenuBtn.click();
23
+ const snapshot = await browser.percyCheckScreenshot();
24
+ await expect(snapshot).toEqual(0);
25
+ });
26
+ it('04: accented variant styling should render in the collapsed state', async () => {
27
+ const errorOnGo = await DSCardV3CO.variantAccentURL.go();
28
+ if (errorOnGo) throw errorOnGo;
29
+ const card = await DSCardV3CO.getCardContainer();
30
+ await expect(card).toBeDisplayed();
31
+ const snapshot = await browser.percyCheckScreenshot();
32
+ await expect(snapshot).toEqual(0);
33
+ });
34
+ });
35
+ }
@@ -0,0 +1,35 @@
1
+ import { Key } from 'webdriverio';
2
+ import DSCardV3CO from '../DSCardV3CO';
3
+ import { axeCoreCheck } from '../../helpers';
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-18808 - DSCardV3:: variant accented-disabled accessibility - Axe-Core', () => {
12
+ before('loading page', async () => {
13
+ const errorOnGo = await DSCardV3CO.variantAccentedDisabledURL.go();
14
+ if (errorOnGo) throw errorOnGo;
15
+ });
16
+
17
+ it('01: should have no accessibility violations', async () => {
18
+ const card = await DSCardV3CO.getCardContainer();
19
+ await card.waitForDisplayed();
20
+
21
+ const result = await axeCoreCheck();
22
+ await expect(result).toHaveLength(0);
23
+ });
24
+
25
+ it('02: should have no violations with the aria-disabled control focused', async () => {
26
+ const expandContentButton = await DSCardV3CO.getExpandContentButton();
27
+ await expect(expandContentButton).toHaveAttribute('aria-disabled', 'true');
28
+ await browser.keys(Key.Tab);
29
+ await expect(expandContentButton).toBeFocused();
30
+
31
+ const result = await axeCoreCheck();
32
+ await expect(result).toHaveLength(0);
33
+ });
34
+ });
35
+ }
@@ -0,0 +1,53 @@
1
+ import { Key } from 'webdriverio';
2
+ import DSCardV3CO from '../DSCardV3CO';
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-18686 - DSCardV3:: variant-accented-disabled does not use the html `disabled` attribute - Func', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.variantAccentedDisabledURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: accented-disabled card does not carry the native HTML disabled attribute', async () => {
17
+ const accentedDisabledCard = await DSCardV3CO.getCardContainerByIndex(0);
18
+ const disabledAttr = await accentedDisabledCard.getAttribute('disabled');
19
+ expect(disabledAttr).toBeNull();
20
+ });
21
+
22
+ it('02: accented-disabled card renders as a non-form element (div)', async () => {
23
+ const accentedDisabledCard = await DSCardV3CO.getCardContainerByIndex(0);
24
+ const tagName = await accentedDisabledCard.getTagName();
25
+ expect(tagName.toLowerCase()).toBe('div');
26
+ });
27
+
28
+ it('03: accented-disabled card is not hidden', async () => {
29
+ const accentedDisabledCard = await DSCardV3CO.getCardContainerByIndex(0);
30
+ const ariaHidden = await accentedDisabledCard.getAttribute('aria-hidden');
31
+ expect(ariaHidden).toBeNull();
32
+ });
33
+
34
+ it('04: card content can be accessed in the accessibility tree', async () => {
35
+ const heading = await DSCardV3CO.getHByLevelAndIndex(3, 0);
36
+ await expect(heading).toBeExisting();
37
+ await expect(heading).toHaveText('Card Single Select');
38
+ });
39
+
40
+ it('05: disabled control has state via aria-disabled', async () => {
41
+ const expandContentButton = await DSCardV3CO.getExpandContentButton();
42
+ await expect(expandContentButton).toHaveAttribute('aria-disabled', 'true');
43
+ const disabledAttr = await expandContentButton.getAttribute('disabled');
44
+ expect(disabledAttr).toBeNull();
45
+ });
46
+
47
+ it('06: disabled control is keyboard focusable and part of the tab order', async () => {
48
+ const expandContentButton = await DSCardV3CO.getExpandContentButton();
49
+ await browser.keys(Key.Tab);
50
+ await expect(expandContentButton).toBeFocused();
51
+ });
52
+ });
53
+ }
@@ -0,0 +1,28 @@
1
+ import { Key } from 'webdriverio';
2
+ import DSCardV3CO from '../DSCardV3CO';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-18809 - DSCardV3:: variant accented-disabled render and focus - Visual', () => {
6
+ before('loading page', async () => {
7
+ const errorOnGo = await DSCardV3CO.variantAccentedDisabledURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+
11
+ it('01: should display the accented-disabled card in its collapsed state', async () => {
12
+ const card = await DSCardV3CO.getCardContainer();
13
+ await card.waitForDisplayed();
14
+
15
+ const snapshot = await browser.percyCheckScreenshot();
16
+ await expect(snapshot).toEqual(0);
17
+ });
18
+
19
+ it('02: should display the focus ring on the aria-disabled expand control - [TAB]', async () => {
20
+ await browser.keys(Key.Tab);
21
+ const expandContentButton = await DSCardV3CO.getExpandContentButton();
22
+ await expect(expandContentButton).toBeFocused();
23
+
24
+ const snapshot = await browser.percyCheckScreenshot();
25
+ await expect(snapshot).toEqual(0);
26
+ });
27
+ });
28
+ }