dimsum-e2e-tests 3.70.0-next.6 → 3.70.0-next.60

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 (269) hide show
  1. package/CHANGELOG.md +300 -0
  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 +1 -1
  9. package/ds-apppicker/truncation/DSAppPicker.truncation.visual.spec.js +5 -9
  10. package/ds-autocomplete/DSAutocomplete.visual.spec.js +34 -0
  11. package/ds-autocomplete/DSAutocompleteCO.js +36 -1
  12. package/ds-autocomplete/aria-busy-loading/DSAutocomplete.aria-busy-loading.axe-core.func.spec.js +50 -0
  13. package/ds-autocomplete/aria-busy-loading/DSAutocomplete.aria-busy-loading.func.spec.js +122 -0
  14. package/ds-autocomplete/aria-busy-loading/DSAutocomplete.aria-busy-loading.visual.spec.js +48 -0
  15. package/ds-autocomplete/slots/DSAutocomplete.slots.func.spec.js +6 -1
  16. package/ds-button-v3/DSButtonV3.aria-disabled-attribute.func.spec.js +33 -0
  17. package/ds-button-v3/DSButtonV3CO.js +10 -0
  18. package/ds-button-v3/theme-font/DSButtonV3.theme-font.func.spec.js +30 -0
  19. package/ds-card/DSCard.cardv2_v1.func.spec.js +54 -0
  20. package/ds-card/DSCard.cardv2_v1.visual.spec.js +29 -0
  21. package/ds-card/DSCardCO.js +50 -0
  22. package/ds-card/detail-slots/DSCard.detail-slots.axe-core.func.spec.js +29 -0
  23. package/ds-card/detail-slots/DSCard.detail-slots.func.spec.js +72 -0
  24. package/ds-card/detail-slots/DSCard.detail-slots.visual.spec.js +19 -0
  25. package/ds-card-v3/DSCardV3CO.js +93 -1
  26. package/ds-card-v3/accordion/DSCardV3.accordion-aria-structure.func.spec.js +41 -0
  27. package/ds-card-v3/accordion/DSCardV3.accordion-aria.keyboard.func.spec.js +49 -0
  28. package/ds-card-v3/accordion/DSCardV3.accordion.axe-core.func.spec.js +28 -0
  29. package/ds-card-v3/accordion/DSCardV3.accordion.visual.spec.js +4 -6
  30. package/ds-card-v3/action/DSCardV3.action.axe-core.func.spec.js +24 -0
  31. package/ds-card-v3/action/DSCardV3.action.func.spec.js +53 -0
  32. package/ds-card-v3/action/DSCardV3.action.visual.spec.js +28 -0
  33. package/ds-card-v3/drag-n-drop/DSCardV3.DnD.axe-core.func.spec.js +42 -0
  34. package/ds-card-v3/drag-n-drop/DSCardV3.DnD.func.spec.js +129 -0
  35. package/ds-card-v3/drag-n-drop/DSCardV3.DnD.reorder.func.spec.js +73 -0
  36. package/ds-card-v3/drag-n-drop/DSCardV3.DnD.visual.spec.js +5 -12
  37. package/ds-card-v3/global-attributes/DSCardV3.global-attributes.axe-core.func.spec.js +33 -0
  38. package/ds-card-v3/global-attributes/DSCardV3.global-attributes.visual.spec.js +20 -0
  39. package/ds-card-v3/multi-select/DSCardV3.multi-select.aria-grouping.func.spec.js +24 -0
  40. package/ds-card-v3/multi-select/DSCardV3.multiselect.axe-core.func.spec.js +47 -0
  41. package/ds-card-v3/multi-select/DSCardV3.multiselect.keyboard.func.spec.js +65 -0
  42. package/ds-card-v3/multi-select/DSCardV3.multiselect.visual.spec.js +17 -0
  43. package/ds-card-v3/multiple-action/DSCardV3.multiple-action.axe-core.func.spec.js +35 -0
  44. package/ds-card-v3/multiple-action/DSCardV3.multiple-action.func.spec.js +53 -0
  45. package/ds-card-v3/multiple-action/DSCardV3.multiple-action.visual.spec.js +18 -0
  46. package/ds-card-v3/multiple-control/DSCardV3.multi-control.axe-core.func.spec.js +34 -0
  47. package/ds-card-v3/multiple-control/DSCardV3.multi-control.func.spec.js +26 -0
  48. package/ds-card-v3/multiple-control/DSCardV3.multi-control.visual.spec.js +29 -0
  49. package/ds-card-v3/no-action/DSCardV3.no-action.axe-core.func.spec.js +22 -0
  50. package/ds-card-v3/no-action/DSCardV3.no-action.func.spec.js +23 -0
  51. package/ds-card-v3/no-action/DSCardV3.no-action.visual.spec.js +15 -0
  52. package/ds-card-v3/notification-badges/DSCardV3.notification-badges.axe-core.func.spec.js +33 -0
  53. package/ds-card-v3/notification-badges/DSCardV3.notification-badges.func.spec.js +19 -0
  54. package/ds-card-v3/notification-badges/DSCardV3.notification-badges.visual.spec.js +28 -0
  55. package/ds-card-v3/reflow/DSCardV3.reflow.axe-core.func.spec.js +28 -0
  56. package/ds-card-v3/reflow/DSCardV3.reflow.func.spec.js +36 -0
  57. package/ds-card-v3/reflow/DSCardV3.reflow.visual.spec.js +1 -2
  58. package/ds-card-v3/single-select/DSCardV3.single-select.aria-grouping.func.spec.js +24 -0
  59. package/ds-card-v3/single-select/DSCardV3.single-select.axe-core.func.spec.js +37 -0
  60. package/ds-card-v3/single-select/DSCardV3.single-select.visual.spec.js +1 -2
  61. package/ds-card-v3/slots/DSCardV3.slots.visual.spec.js +1 -2
  62. package/ds-card-v3/variant-accented/DSCardV3.variant-accented.axe-core.func.spec.js +45 -0
  63. package/ds-card-v3/variant-accented/DSCardV3.variant-accented.func.spec.js +28 -0
  64. package/ds-card-v3/variant-accented/DSCardV3.variant-accented.visual.spec.js +35 -0
  65. package/ds-card-v3/variant-accented-disabled/DSCardV3.variant-accented-disabled.axe-core.func.spec.js +35 -0
  66. package/ds-card-v3/variant-accented-disabled/DSCardV3.variant-accented-disabled.func.spec.js +53 -0
  67. package/ds-card-v3/variant-accented-disabled/DSCardV3.variant-accented-disabled.visual.spec.js +28 -0
  68. package/ds-card-v3/variant-disabled/DSCardV3.variant-disabled.axe-core.func.spec.js +22 -0
  69. package/ds-card-v3/variant-disabled/DSCardV3.variant-disabled.func.spec.js +61 -0
  70. package/ds-card-v3/variant-disabled/DSCardV3.variant-disabled.visual.spec.js +20 -0
  71. package/ds-card-v3/variant-disabled/DSCardV3.variantDisabled-non-interactive.func.spec.js +25 -0
  72. package/ds-chat/DSChat.axe-core.func.spec.js +2 -2
  73. package/ds-chat/DSChat.visual.spec.js +4 -4
  74. package/ds-chat/DSChatCO.js +18 -24
  75. package/ds-chat/bubbles/slots/DSChatBubble.slots.axe-core.func.spec.js +24 -0
  76. package/ds-chat/bubbles/slots/DSChatBubble.slots.func.spec.js +49 -0
  77. package/ds-chat/bubbles/slots/DSChatBubble.slots.visual.spec.js +25 -0
  78. package/ds-chat/card/slots/DSChatCard.slots.axe-core.func.spec.js +24 -0
  79. package/ds-chat/card/slots/DSChatCard.slots.func.spec.js +47 -0
  80. package/ds-chat/card/slots/DSChatCard.slots.visual.spec.js +18 -0
  81. package/ds-chat/card/truncated-text/DSChatCard.truncated-text.func.spec.js +32 -0
  82. package/ds-chat/card/truncated-text/DSChatCard.truncated-text.visual.spec.js +26 -0
  83. package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.axe-core.func.spec.js +23 -0
  84. package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.visual.spec.js +17 -0
  85. package/ds-chat/components/BubbleCO.js +46 -3
  86. package/ds-chat/components/CardCO.js +75 -0
  87. package/ds-chat/components/ComposerCO.js +6 -6
  88. package/ds-chat/components/FloatingButtonCO.js +5 -3
  89. package/ds-chat/components/HeaderCO.js +2 -2
  90. package/ds-chat/components/TileCO.js +82 -0
  91. package/ds-chat/components/index.js +3 -2
  92. package/ds-chat/floatingbutton/DSChat-floating-button.visual.spec.js +1 -1
  93. package/ds-chat/loadmore/DSChat-loadmore.func.spec.js +1 -1
  94. package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.axe-core.func.spec.js +2 -2
  95. package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.func.spec.js +1 -1
  96. package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.visual.spec.js +2 -2
  97. package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.axe-core.func.spec.js +2 -2
  98. package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.visual.spec.js +1 -1
  99. package/ds-chat/tile/slots/DSChatTile.slots.func.spec.js +53 -0
  100. package/ds-chat/tile/slots/DSChatTile.slots.visual.spec.js +18 -0
  101. package/ds-controlled-form/ds-combobox/DSComboboxCO.js +2 -2
  102. package/ds-controlled-form/ds-combobox/creatable/DSCombobox.creatable-tooltip.func.spec.js +47 -0
  103. package/ds-controlled-form/ds-combobox/creatable/DSCombobox.creatable.visual.spec.js +12 -21
  104. package/ds-controlled-form/ds-combobox/disabled/DSCombobox.disabled.visual.spec.js +6 -1
  105. package/ds-controlled-form/ds-controlled-checkbox/Basic/DSControlledCheckbox.axe-core.basic.func.spec.js +4 -4
  106. package/ds-controlled-form/ds-controlled-checkbox/Basic/DSControlledCheckbox.basic.visual.spec.js +56 -0
  107. package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckboxCO.js +15 -1
  108. package/ds-controlled-form/ds-controlled-checkbox/Disabled/DSControlledCheckbox.axe-core.disabled.func.spec.js +1 -1
  109. package/ds-controlled-form/ds-controlled-checkbox/Disabled/DSControlledCheckbox.disabled.visual.spec.js +1 -1
  110. package/ds-controlled-form/ds-controlled-checkbox/HasError/DSControlledCheckbox.axe-core.hasError.func.spec.js +4 -4
  111. package/ds-controlled-form/ds-controlled-checkbox/HasError/DSControlledCheckbox.has-error.visual.spec.js +71 -1
  112. package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.axe-core.mixed.func.spec.js +4 -4
  113. package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.visual.spec.js +1 -1
  114. package/ds-controlled-form/ds-controlled-checkbox/ReadOnly/DSControlledCheckbox.axe-core.read-only.func.spec.js +3 -3
  115. package/ds-controlled-form/ds-controlled-checkbox/ReadOnly/DSControlledCheckbox.read-only.visual.spec.js +1 -1
  116. package/ds-controlled-form/ds-controlled-checkbox/WithTooltip/DSControlledCheckbox.axe-core.with-tooltip.func.spec.js +1 -1
  117. package/ds-controlled-form/ds-controlled-checkbox/WithTooltip/DSControlledCheckbox.with-tooltip.visual.spec.js +1 -3
  118. package/ds-controlled-form/ds-controlled-checkbox/WrapLabel/DSControlledCheckbox.axe-core.wrap-label.func.spec.js +1 -1
  119. package/ds-controlled-form/ds-controlled-checkbox/WrapLabel/DSControlledCheckbox.wrap-label.visual.spec.js +1 -1
  120. package/ds-controlled-form/ds-controlled-checkbox/aria-disabled/DSControlledCheckbox.aria-disabled.visual.spec.js +2 -6
  121. package/ds-controlled-form/ds-controlled-checkbox/aria-disabled/DSControlledCheckbox.axe-core.aria-disabled.func.spec.js +1 -1
  122. package/ds-controlled-form/ds-controlled-checkbox/theme-font/DSControlledCheckbox.theme-font.func.spec.js +30 -0
  123. package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroup.axe-core.func.spec.js +4 -4
  124. package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroup.visual.spec.js +1 -1
  125. package/ds-controlled-form/ds-controlled-inputgroup/DSControlledInputGroupCO.js +1 -1
  126. package/ds-controlled-form/ds-controlled-radio/DSControlledRadioCO.js +10 -0
  127. package/ds-controlled-form/ds-controlled-radio/aria-disabled/DSControlledRadio.aria-disabled.axe-core.func.spec.js +16 -2
  128. package/ds-controlled-form/ds-controlled-radio/aria-disabled/DSControlledRadio.aria-disabled.func.spec.js +37 -0
  129. package/ds-controlled-form/ds-controlled-radio/theme-font/DSControlledRadio.theme-font.func.spec.js +30 -0
  130. package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +1 -3
  131. package/ds-data-table-async/DSDataTableCO.js +189 -12
  132. package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +1 -1
  133. package/ds-data-table-async/components/FilterBarCO.js +7 -0
  134. package/ds-data-table-async/components/FiltersCO.js +1 -1
  135. package/ds-data-table-async/components/HeaderCO.js +45 -1
  136. package/ds-data-table-async/dnd/DSDataTable.dnd-keyboard-scroll.func.spec.js +51 -0
  137. package/ds-data-table-async/filter-menu-close/DSDataTable.filter-menu-close.func.spec.js +77 -0
  138. package/ds-data-table-async/filter-popover-boundary/DSDataTable.filter-popover-boundary.func.spec.js +98 -0
  139. package/ds-data-table-async/filters/DSDataTable.filters-creatable-active-descendant.func.spec.js +51 -0
  140. package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +39 -0
  141. package/ds-data-table-async/filters/DSDataTable.filters.axe-core.func.spec.js +11 -9
  142. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2-creatablemultiselect.keyboard.func.spec.js +2 -2
  143. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2-creatableselect.keyboard.func.spec.js +2 -2
  144. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2.axe-core.func.spec.js +45 -29
  145. package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.axe-core.func.spec.js +23 -0
  146. package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.func.spec.js +50 -0
  147. package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.visual.spec.js +21 -0
  148. package/ds-data-table-async/header-affordances/DSDataTable.header-affordances.func.spec.js +92 -0
  149. package/ds-data-table-async/helpers/getInputSelection.js +6 -0
  150. package/ds-data-table-async/helpers/index.js +1 -0
  151. package/ds-data-table-async/keyboard-scroll/DSDataTable.keyboard-scroll.func.spec.js +39 -0
  152. package/ds-data-table-async/menubutton/DSDataTable.MenuButton.keyboard.func.spec.js +8 -7
  153. package/ds-data-table-async/menubutton/DSDataTable.MenuButton.mouse.func.spec.js +6 -7
  154. package/ds-data-table-async/pagination/DSDataTable.pagination.func.spec.js +3 -2
  155. package/ds-data-table-async/resizable/DSDataTable.resize-min-clamp.func.spec.js +72 -0
  156. package/ds-data-table-async/resizable/DSDataTable.resizerA11y.axe-core.func.spec.js +43 -0
  157. package/ds-data-table-async/resizable/DSDataTable.resizerA11y.func.spec.js +92 -0
  158. package/ds-data-table-async/textwrapping/DSDataTable.header-wrap-alignment.axe-core.func.spec.js +23 -0
  159. package/ds-data-table-async/textwrapping/DSDataTable.header-wrap-alignment.visual.spec.js +106 -0
  160. package/ds-data-table-async/textwrapping/DSDataTable.text-wrap-toolbar.visual.spec.js +27 -0
  161. package/ds-data-table-async/toggle-cell-focus/DSDataTable.toggle-cell-enter-focus.func.spec.js +31 -0
  162. package/ds-data-table-async/vissibility/DSDataTable.vissibility.visual.spec.js +2 -0
  163. package/ds-dataviz/DSDataVizCO.js +2 -0
  164. package/ds-dataviz/axecore/DSDataViz.axis.axe-core.func.spec.js +1 -1
  165. package/ds-floating-context/DSFloatingContextCO.js +10 -0
  166. package/ds-floating-context/placement/DSFloatingContext.placement.visual.spec.js +48 -0
  167. package/ds-form-combobox-multi/DSComboboxMultiCO.js +22 -3
  168. package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.axe-core.func.spec.js +55 -0
  169. package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.func.spec.js +57 -0
  170. package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +15 -0
  171. package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.axe-core.func.spec.js +24 -0
  172. package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.visual.spec.js +22 -0
  173. package/ds-form-combobox-multi/grouped/DSComboboxMulti.grouped.visual.spec.js +42 -0
  174. package/ds-form-combobox-multi/inline/DSComboboxMulti.inline.visual.spec.js +21 -0
  175. package/ds-form-combobox-multi/pills/DSComboboxMulti.pills.func.spec.js +59 -0
  176. package/ds-form-combobox-multi/pills/DSComboboxMulti.pills.visual.spec.js +39 -0
  177. package/ds-form-combobox-multi/skeleton/DSComboboxMulti.skeleton.visual.spec.js +25 -0
  178. package/ds-form-combobox-multi/with-tooltip/DSComboboxMulti.with-tooltip.axe-core.func.spec.js +39 -0
  179. package/ds-form-combobox-multi/with-tooltip/DSComboboxMulti.with-tooltip.func.spec.js +39 -0
  180. package/ds-form-combobox-multi/with-tooltip/DSComboboxMulti.with-tooltip.visual.spec.js +29 -0
  181. package/ds-form-combobox-single/DSComboboxSingleCO.js +15 -3
  182. package/ds-form-combobox-single/aria-busy-loading/DSComboboxSingle.aria-busy-loading.axe-core.func.spec.js +49 -0
  183. package/ds-form-combobox-single/aria-busy-loading/DSComboboxSingle.aria-busy-loading.func.spec.js +54 -0
  184. package/ds-form-combobox-single/aria-disabled/DSComboboxSingle.aria-disabled.visual.spec.js +18 -0
  185. package/ds-form-combobox-single/creatable/DSComboboxSingle.creatable.visual.spec.js +30 -0
  186. package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.axe-core.func.spec.js +24 -0
  187. package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.visual.spec.js +22 -0
  188. package/ds-form-combobox-single/grouped/DSComboboxSingle.grouped.visual.spec.js +45 -0
  189. package/ds-form-combobox-single/inline/DSComboboxSingle.inline.visual.spec.js +23 -0
  190. package/ds-form-combobox-single/skeleton/DSComboboxSingle.skeleton.visual.spec.js +25 -0
  191. package/ds-form-combobox-single/with-tooltip/DSComboboxSingle.with-tooltip.axe-core.func.spec.js +39 -0
  192. package/ds-form-combobox-single/with-tooltip/DSComboboxSingle.with-tooltip.func.spec.js +39 -0
  193. package/ds-form-combobox-single/with-tooltip/DSComboboxSingle.with-tooltip.visual.spec.js +29 -0
  194. package/ds-form-date-range-picker/DateRangePicker.axe-core.spec.js +5 -0
  195. package/ds-form-date-range-picker/DateRangePicker.functional.spec.js +80 -18
  196. package/ds-form-date-range-picker/DateRangePickerCO.js +13 -0
  197. package/ds-form-date-range-picker/date-segment-aria-labels/DateRangePicker.date-segment-aria-labels.func.spec.js +66 -0
  198. package/ds-form-date-range-picker/grouped-field-error-announcement/DateRangePicker.grouped-field-error-announcement.func.spec.js +59 -0
  199. package/ds-form-date-time-picker/DSControlledDateTimePickerCO.js +7 -0
  200. package/ds-form-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +8 -1
  201. package/ds-form-date-time-picker/date-time-full/DateTimePicker.DateTimeFull.visual.spec.js +9 -0
  202. package/ds-form-date-time-picker/partial-date-open-focus/DateTimePicker.partial-date-open-focus.func.spec.js +45 -0
  203. package/ds-form-native-select/NativeSelect.axe-core.func.spec.js +39 -0
  204. package/ds-form-native-select/NativeSelect.visual.spec.js +33 -0
  205. package/ds-form-native-select/NativeSelectCO.js +6 -0
  206. package/ds-form-native-select/option-selection/NativeSelect.option-selection.func.spec.js +25 -0
  207. package/ds-form-toggle/DSToggle.func.spec.js +20 -23
  208. package/ds-form-toggle/DSToggleCO.js +11 -2
  209. package/ds-global-header/GlobalHeader.announcements.func.spec.js +27 -0
  210. package/ds-global-header/GlobalHeader.axe-core.func.spec.js +15 -15
  211. package/ds-global-header/GlobalHeader.func.spec.js +70 -1
  212. package/ds-global-header/GlobalHeaderCO.js +25 -1
  213. package/ds-hooks/DSHook.usetree.func.spec.js +3 -2
  214. package/ds-hooks/DSHookCO.js +1 -22
  215. package/ds-hooks/useFocusStack/DSHook.useFocusStack.func.spec.js +83 -0
  216. package/ds-hooks/useFocusTrap/UseFocusTrapCO.js +2 -0
  217. package/ds-hooks/useFocusTrap/UseFocusTrapToggle.func.spec.js +48 -0
  218. package/ds-hooks/useMask/Number/UseNumberMask.axe-core.func.spec.js +48 -0
  219. package/ds-leftnavigation/LeftNavigationCO.js +2 -2
  220. package/ds-menu-button/DSMenuButtonCO.js +23 -0
  221. package/ds-menu-button/slots/DSMenuButton.slots.axe-core.func.spec.js +28 -0
  222. package/ds-menu-button/slots/DSMenuButton.slots.func.spec.js +59 -0
  223. package/ds-menu-button/slots/DSMenuButton.slots.visual.spec.js +26 -0
  224. package/ds-modal-slide/ModalSlideCO.js +46 -0
  225. package/ds-modal-slide/custom-header/ModalSlide.customHeader.focusRing.visual.spec.js +2 -1
  226. package/ds-modal-slide/heading-level/ModalSlide.headingLevel.axe-core.func.spec.js +25 -0
  227. package/ds-modal-slide/heading-level/ModalSlide.headingLevel.func.spec.js +25 -0
  228. package/ds-modal-slide/slots/ModalSlide.slots.func.spec.js +74 -0
  229. package/ds-modal-slide/slots/ModalSlide.slots.visual.spec.js +27 -0
  230. package/ds-notification-badge/DSNotificationBadge.visual.spec.js +17 -20
  231. package/ds-page-layout/PageLayoutCO.js +4 -4
  232. package/ds-pills-v2/DSPillsV2CO.js +12 -0
  233. package/ds-pills-v2/apply-aria-disabled/DSPills.applyAriaDisabled.func.spec.js +53 -0
  234. package/ds-pills-v2/apply-aria-disabled/DSPills.applyAriaDisabled.visual.spec.js +26 -0
  235. package/ds-pills-v2/disabled/DSPills.disabled.func.spec.js +53 -0
  236. package/ds-pills-v2/disabled/DSPills.disabled.visual.spec.js +33 -0
  237. package/ds-progress-indicator/DSProgressIndicator.axe-core.func.spec.js +2 -0
  238. package/ds-progress-indicator/DSProgressIndicatorCO.js +1 -1
  239. package/ds-shuttle-v2/DSShuttleV2CO.js +15 -1
  240. package/ds-shuttle-v2/breadcrumb-a11y/DSShuttleV2.breadcrumb-a11y.func.spec.js +43 -0
  241. package/ds-shuttle-v2/explicit-selection-ui/DSShuttleV2.explicit-selection-ui.func.spec.js +37 -0
  242. package/ds-shuttle-v2/explicit-selection-ui/DSShuttleV2.explicit-selection-ui.visual.spec.js +30 -0
  243. package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +8 -3
  244. package/ds-shuttle-v2/items/DSShuttleV2.items.func.spec.js +4 -2
  245. package/ds-shuttle-v2/skipped/DSShuttleV2.extra.axe-core.skipped.js +1 -1
  246. package/ds-shuttle-v2/skipped/DSShuttleV2.filter.axe-core.skipped.js +1 -1
  247. package/ds-shuttle-v2/skipped/DSShuttleV2.globalcheckbox.axe-core.skipped.js +1 -1
  248. package/ds-shuttle-v2/skipped/DSShuttleV2.items.axe-core.skipped.js +3 -3
  249. package/ds-shuttle-v2/skipped/DSShuttleV2.skipped.js +5 -5
  250. package/ds-slider-v2/DSSliderV2.func.spec.js +36 -25
  251. package/ds-slider-v2/DSSliderV2CO.js +10 -0
  252. package/ds-slider-v2/min-range/DSSliderV2.min-range.func.spec.js +69 -0
  253. package/ds-tab-button/DSTabButton.func.spec.js +1 -1
  254. package/ds-tooltip-v3/DSTooltipV3CO.js +21 -0
  255. package/ds-tooltip-v3/aria-tooltip-pattern/DSTooltipV3.aria-tooltip-pattern.axe-core.func.spec.js +23 -0
  256. package/ds-tooltip-v3/aria-tooltip-pattern/DSTooltipV3.aria-tooltip-pattern.func.spec.js +29 -0
  257. package/ds-tooltip-v3/dialog/DSTooltipV3.dialog.func.spec.js +45 -0
  258. package/ds-tooltip-v3/dialog/DSTooltipV3.dialog.visual.spec.js +29 -0
  259. package/ds-treeview/DSTreeViewCO.js +25 -2
  260. package/ds-treeview/dragAndDrop/TreeView-dnd_keyboard.func.spec.js +96 -0
  261. package/ds-typography/DSTypographyCO.js +10 -0
  262. package/ds-typography/theme-font/DSTypography.theme-font.func.spec.js +30 -0
  263. package/package.json +150 -153
  264. package/paths.js +9 -6
  265. package/ds-card-v3/disabled/DSCardV3.disabled.visual.spec.js +0 -17
  266. package/ds-chat-tile/TileCO.js +0 -35
  267. package/ds-hooks/DSHook.func.spec.js +0 -60
  268. package/ds-hooks/useFocusStack/DSHook.useFocusStack.skipped.js +0 -57
  269. package/ds-treeview/dragAndDrop/TreeView-dnd_mouse.func.spec.js +0 -61
@@ -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
+ }
@@ -7,10 +7,9 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
7
7
  if (errorOnGo) throw errorOnGo;
8
8
  });
9
9
  it('01: should display cards after a 200% of text resize', async () => {
10
- await browser.eyesOpen();
11
10
  const expandContentButton = await DSCardV3CO.getExpandContentButton();
12
11
  await expandContentButton.click();
13
- const snapshot = await browser.eyesCheckSnapshot(DSCardV3CO.snapshotPath('card-v3-reflow'));
12
+ const snapshot = await browser.percyCheckScreenshot();
14
13
  await expect(snapshot).toEqual(0);
15
14
  });
16
15
  });
@@ -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
+ }
@@ -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-18720 - CardV3:: Variant Disabled - axe-core', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.variantDisabledURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: should display card disabled and pass axecore scan', async () => {
16
+ const firstItem = await DSCardV3CO.getCardHeader();
17
+ await firstItem.waitForDisplayed();
18
+ const result = await axeCoreCheck();
19
+ await expect(result).toHaveLength(0);
20
+ });
21
+ });
22
+ }
@@ -0,0 +1,61 @@
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-18810 - DSCardV3:: variant disabled cards non-interactive structure - Func', () => {
10
+ before('loading page', async () => {
11
+ const errorOnGo = await DSCardV3CO.variantDisabledURL.go();
12
+ if (errorOnGo) throw errorOnGo;
13
+ });
14
+
15
+ it('01: should render both disabled cards as divs without the HTML disabled attribute', async () => {
16
+ const disabledCard = await DSCardV3CO.getCardContainerByIndex(0);
17
+ await disabledCard.waitForDisplayed();
18
+ expect((await disabledCard.getTagName()).toLowerCase()).toBe('div');
19
+ expect(await disabledCard.getAttribute('disabled')).toBeNull();
20
+
21
+ const accentedDisabledCard = await DSCardV3CO.getCardContainerByIndex(1);
22
+ await expect(accentedDisabledCard).toBeDisplayed();
23
+ expect((await accentedDisabledCard.getTagName()).toLowerCase()).toBe('div');
24
+ expect(await accentedDisabledCard.getAttribute('disabled')).toBeNull();
25
+ });
26
+
27
+ it('02: should keep both cards visible to assistive technology', async () => {
28
+ const disabledCard = await DSCardV3CO.getCardContainerByIndex(0);
29
+ expect(await disabledCard.getAttribute('aria-hidden')).toBeNull();
30
+
31
+ const accentedDisabledCard = await DSCardV3CO.getCardContainerByIndex(1);
32
+ expect(await accentedDisabledCard.getAttribute('aria-hidden')).toBeNull();
33
+ });
34
+
35
+ it('03: should expose the title and description of both cards', async () => {
36
+ const firstHeading = await DSCardV3CO.getHByLevelAndIndex(3, 0);
37
+ await expect(firstHeading).toBeExisting();
38
+ await expect(firstHeading).toHaveText('Disabled Card');
39
+
40
+ const firstDescription = await DSCardV3CO.getElement(1);
41
+ await expect(firstDescription).toHaveText('Description card');
42
+
43
+ const secondHeading = await DSCardV3CO.getHByLevelAndIndex(3, 1);
44
+ await expect(secondHeading).toBeExisting();
45
+ await expect(secondHeading).toHaveText('Disabled Card');
46
+
47
+ const secondDescription = await DSCardV3CO.getElement(3);
48
+ await expect(secondDescription).toHaveText('Description card');
49
+ });
50
+
51
+ it('04: should contain no focusable controls in either card', async () => {
52
+ const disabledCard = await DSCardV3CO.getCardContainerByIndex(0);
53
+ const firstCardControls = await disabledCard.$$('button, a[href], input, select, textarea, [tabindex]');
54
+ expect(firstCardControls).toHaveLength(0);
55
+
56
+ const accentedDisabledCard = await DSCardV3CO.getCardContainerByIndex(1);
57
+ const secondCardControls = await accentedDisabledCard.$$('button, a[href], input, select, textarea, [tabindex]');
58
+ expect(secondCardControls).toHaveLength(0);
59
+ });
60
+ });
61
+ }
@@ -0,0 +1,20 @@
1
+ import DSCardV3CO from '../DSCardV3CO';
2
+
3
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
4
+ describe('PUI-18811 - DSCardV3:: variant disabled and accented-disabled render - Visual', () => {
5
+ before('loading page', async () => {
6
+ const errorOnGo = await DSCardV3CO.variantDisabledURL.go();
7
+ if (errorOnGo) throw errorOnGo;
8
+ });
9
+
10
+ it('01: should display the disabled and accented-disabled cards', async () => {
11
+ const disabledCard = await DSCardV3CO.getCardContainerByIndex(0);
12
+ await disabledCard.waitForDisplayed();
13
+ const accentedDisabledCard = await DSCardV3CO.getCardContainerByIndex(1);
14
+ await expect(accentedDisabledCard).toBeDisplayed();
15
+
16
+ const snapshot = await browser.percyCheckScreenshot();
17
+ await expect(snapshot).toEqual(0);
18
+ });
19
+ });
20
+ }
@@ -0,0 +1,25 @@
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-17888 (disabled attribute on non-interactive card)
10
+ describe('PUI-18598 - DSCardV3:: disabled variant has no HTML disabled attribute - Func', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.variantDisabledURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: disabled and accented-disabled cards do not have the HTML disabled attribute', async () => {
17
+ const card1 = await DSCardV3CO.getCardContainerByIndex(0);
18
+ const card2 = await DSCardV3CO.getCardContainerByIndex(1);
19
+ const disabledAttr1 = await card1.getAttribute('disabled');
20
+ const disabledAttr2 = await card2.getAttribute('disabled');
21
+ expect(disabledAttr1).toBeNull();
22
+ expect(disabledAttr2).toBeNull();
23
+ });
24
+ });
25
+ }
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable no-plusplus */
2
2
  /* eslint-disable max-lines */
3
- import { ChatCO, BubbleCO, TileCO } from './components';
3
+ import { ChatCO, CardCO, BubbleCO, TileCO } from './components';
4
4
  import { axeCoreCheck } from '../helpers';
5
5
 
6
6
  if (
@@ -41,7 +41,7 @@ if (
41
41
 
42
42
  describe('PUI-12504 - Chat, Chat Card -AxeCore', () => {
43
43
  before('loading page', async () => {
44
- const errorOnGo = await ChatCO.chatCardURL.go();
44
+ const errorOnGo = await CardCO.cardBasicURL.go();
45
45
  if (errorOnGo) throw errorOnGo;
46
46
  });
47
47
  it('01: should have a chat card and pass axe-core scan', async () => {
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-plusplus */
2
2
  /* eslint-disable max-lines */
3
3
  import { Key } from 'webdriverio';
4
- import { ChatCO, BubbleCO, FloatingButtonCO, ComposerCO, TileCO } from './components';
4
+ import { ChatCO, CardCO, BubbleCO, FloatingButtonCO, ComposerCO, TileCO } from './components';
5
5
  import { type } from '../helpers';
6
6
  import DSBannerCO from '../ds-banner/DSBannerCO';
7
7
 
@@ -76,7 +76,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
76
76
 
77
77
  describe('PUI-6712 - Chat, Chat Card, Visual Tests', () => {
78
78
  before('loading page', async () => {
79
- const errorOnGo = await ChatCO.chatCardURL.go();
79
+ const errorOnGo = await CardCO.cardBasicURL.go();
80
80
  if (errorOnGo) throw errorOnGo;
81
81
  });
82
82
  it('should display the chat card properly', async () => {
@@ -245,7 +245,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
245
245
 
246
246
  describe('PUI-9222 - Chat, Long Words, Visual Tests', () => {
247
247
  before('loading page', async () => {
248
- const errorOnGo = await ChatCO.basicE2eURL.go();
248
+ const errorOnGo = await ChatCO.basicTestURL.go();
249
249
  if (errorOnGo) throw errorOnGo;
250
250
  });
251
251
  it('should display long words breaking at composer', async () => {
@@ -268,7 +268,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
268
268
  });
269
269
  });
270
270
 
271
- describe('PUI-9333 - Chat, Scroll on send and not on enter, Func. Tests', () => {
271
+ describe('PUI-9333 - Chat, Scroll on send and not on enter - Visual Tests', () => {
272
272
  before('loading page', async () => {
273
273
  const errorOnGo = await ChatCO.sidePanelIntegrationURL.go();
274
274
  if (errorOnGo) throw errorOnGo;