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.
- package/CHANGELOG.md +1079 -721
- package/ds-accordion/DSAccordion.visual.spec.js +6 -0
- package/ds-accordion/DSAccordionCO.js +15 -3
- package/ds-accordion/QA_NOTES.md +105 -0
- package/ds-accordion/controlled/DSAccordion.controlled.func.spec.js +23 -0
- package/ds-accordion/header-structure/DSAccordion.header-structure.func.spec.js +65 -0
- package/ds-accordion/input-inside/DSAccordion.input-inside.func.spec.js +19 -0
- package/ds-apppicker/DSAppPickerCO.js +101 -3
- package/ds-apppicker/aria-pattern/DSAppPicker.aria-pattern.func.spec.js +100 -0
- package/ds-apppicker/basic/DSAppPicker.basic.keyboard-nav.func.spec.js +18 -7
- package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.func.spec.js +1 -1
- package/ds-apppicker/custom-trigger-focus/DSAppPicker.custom-trigger-focus.func.spec.js +82 -0
- package/ds-apppicker/label-expansion-dismissal/DSAppPicker.label-expansion-dismissal.visual.spec.js +108 -0
- package/ds-apppicker/reflow/DSAppPicker.reflow.func.spec.js +32 -0
- package/ds-apppicker/reflow/DSAppPicker.reflow.visual.spec.js +5 -6
- package/ds-apppicker/truncation/DSAppPicker.truncation.visual.spec.js +5 -9
- package/ds-autocomplete/DSAutocomplete.visual.spec.js +34 -0
- package/ds-autocomplete/DSAutocompleteCO.js +36 -1
- package/ds-autocomplete/aria-busy-loading/DSAutocomplete.aria-busy-loading.axe-core.func.spec.js +50 -0
- package/ds-autocomplete/aria-busy-loading/DSAutocomplete.aria-busy-loading.func.spec.js +122 -0
- package/ds-autocomplete/aria-busy-loading/DSAutocomplete.aria-busy-loading.visual.spec.js +48 -0
- package/ds-autocomplete/slots/DSAutocomplete.slots.func.spec.js +6 -1
- package/ds-banner/DSBanner.text-resize.visual.spec.js +5 -2
- package/ds-banner/DSBannerCO.js +4 -0
- package/ds-button-v3/DSButtonV3.aria-disabled-attribute.func.spec.js +33 -0
- package/ds-button-v3/DSButtonV3CO.js +10 -0
- package/ds-button-v3/theme-font/DSButtonV3.theme-font.func.spec.js +30 -0
- package/ds-card/DSCard.cardv2_v1.func.spec.js +54 -0
- package/ds-card/DSCard.cardv2_v1.visual.spec.js +29 -0
- package/ds-card/DSCardCO.js +50 -0
- package/ds-card/detail-slots/DSCard.detail-slots.axe-core.func.spec.js +29 -0
- package/ds-card/detail-slots/DSCard.detail-slots.func.spec.js +72 -0
- package/ds-card/detail-slots/DSCard.detail-slots.visual.spec.js +19 -0
- package/ds-card-v3/DSCardV3CO.js +93 -1
- package/ds-card-v3/accordion/DSCardV3.accordion-aria-structure.func.spec.js +41 -0
- package/ds-card-v3/accordion/DSCardV3.accordion-aria.keyboard.func.spec.js +49 -0
- package/ds-card-v3/accordion/DSCardV3.accordion.axe-core.func.spec.js +28 -0
- package/ds-card-v3/accordion/DSCardV3.accordion.visual.spec.js +4 -6
- package/ds-card-v3/action/DSCardV3.action.axe-core.func.spec.js +24 -0
- package/ds-card-v3/action/DSCardV3.action.func.spec.js +53 -0
- package/ds-card-v3/action/DSCardV3.action.visual.spec.js +28 -0
- package/ds-card-v3/drag-n-drop/DSCardV3.DnD.axe-core.func.spec.js +42 -0
- package/ds-card-v3/drag-n-drop/DSCardV3.DnD.func.spec.js +129 -0
- package/ds-card-v3/drag-n-drop/DSCardV3.DnD.reorder.func.spec.js +73 -0
- package/ds-card-v3/drag-n-drop/DSCardV3.DnD.visual.spec.js +5 -12
- package/ds-card-v3/global-attributes/DSCardV3.global-attributes.axe-core.func.spec.js +33 -0
- package/ds-card-v3/global-attributes/DSCardV3.global-attributes.visual.spec.js +20 -0
- package/ds-card-v3/multi-select/DSCardV3.multi-select.aria-grouping.func.spec.js +24 -0
- package/ds-card-v3/multi-select/DSCardV3.multiselect.axe-core.func.spec.js +47 -0
- package/ds-card-v3/multi-select/DSCardV3.multiselect.keyboard.func.spec.js +65 -0
- package/ds-card-v3/multi-select/DSCardV3.multiselect.visual.spec.js +17 -0
- package/ds-card-v3/multiple-action/DSCardV3.multiple-action.axe-core.func.spec.js +35 -0
- package/ds-card-v3/multiple-action/DSCardV3.multiple-action.func.spec.js +53 -0
- package/ds-card-v3/multiple-action/DSCardV3.multiple-action.visual.spec.js +18 -0
- package/ds-card-v3/multiple-control/DSCardV3.multi-control.axe-core.func.spec.js +34 -0
- package/ds-card-v3/multiple-control/DSCardV3.multi-control.func.spec.js +26 -0
- package/ds-card-v3/multiple-control/DSCardV3.multi-control.visual.spec.js +29 -0
- package/ds-card-v3/no-action/DSCardV3.no-action.axe-core.func.spec.js +22 -0
- package/ds-card-v3/no-action/DSCardV3.no-action.func.spec.js +23 -0
- package/ds-card-v3/no-action/DSCardV3.no-action.visual.spec.js +15 -0
- package/ds-card-v3/notification-badges/DSCardV3.notification-badges.axe-core.func.spec.js +33 -0
- package/ds-card-v3/notification-badges/DSCardV3.notification-badges.func.spec.js +19 -0
- package/ds-card-v3/notification-badges/DSCardV3.notification-badges.visual.spec.js +28 -0
- package/ds-card-v3/reflow/DSCardV3.reflow.axe-core.func.spec.js +28 -0
- package/ds-card-v3/reflow/DSCardV3.reflow.func.spec.js +36 -0
- package/ds-card-v3/reflow/DSCardV3.reflow.visual.spec.js +3 -2
- package/ds-card-v3/single-select/DSCardV3.single-select.aria-grouping.func.spec.js +24 -0
- package/ds-card-v3/single-select/DSCardV3.single-select.axe-core.func.spec.js +37 -0
- package/ds-card-v3/single-select/DSCardV3.single-select.visual.spec.js +1 -2
- package/ds-card-v3/slots/DSCardV3.slots.visual.spec.js +1 -2
- package/ds-card-v3/variant-accented/DSCardV3.variant-accented.axe-core.func.spec.js +45 -0
- package/ds-card-v3/variant-accented/DSCardV3.variant-accented.func.spec.js +28 -0
- package/ds-card-v3/variant-accented/DSCardV3.variant-accented.visual.spec.js +35 -0
- package/ds-card-v3/variant-accented-disabled/DSCardV3.variant-accented-disabled.axe-core.func.spec.js +35 -0
- package/ds-card-v3/variant-accented-disabled/DSCardV3.variant-accented-disabled.func.spec.js +53 -0
- package/ds-card-v3/variant-accented-disabled/DSCardV3.variant-accented-disabled.visual.spec.js +28 -0
- package/ds-card-v3/variant-disabled/DSCardV3.variant-disabled.axe-core.func.spec.js +22 -0
- package/ds-card-v3/variant-disabled/DSCardV3.variant-disabled.func.spec.js +61 -0
- package/ds-card-v3/variant-disabled/DSCardV3.variant-disabled.visual.spec.js +20 -0
- package/ds-card-v3/variant-disabled/DSCardV3.variantDisabled-non-interactive.func.spec.js +25 -0
- package/ds-chat/DSChat.axe-core.func.spec.js +2 -2
- package/ds-chat/DSChat.visual.spec.js +4 -4
- package/ds-chat/DSChatCO.js +18 -24
- package/ds-chat/bubbles/slots/DSChatBubble.slots.axe-core.func.spec.js +24 -0
- package/ds-chat/bubbles/slots/DSChatBubble.slots.func.spec.js +49 -0
- package/ds-chat/bubbles/slots/DSChatBubble.slots.visual.spec.js +25 -0
- package/ds-chat/card/slots/DSChatCard.slots.axe-core.func.spec.js +24 -0
- package/ds-chat/card/slots/DSChatCard.slots.func.spec.js +47 -0
- package/ds-chat/card/slots/DSChatCard.slots.visual.spec.js +18 -0
- package/ds-chat/card/truncated-text/DSChatCard.truncated-text.func.spec.js +32 -0
- package/ds-chat/card/truncated-text/DSChatCard.truncated-text.visual.spec.js +26 -0
- package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.axe-core.func.spec.js +23 -0
- package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.visual.spec.js +17 -0
- package/ds-chat/components/BubbleCO.js +46 -3
- package/ds-chat/components/CardCO.js +75 -0
- package/ds-chat/components/ComposerCO.js +6 -6
- package/ds-chat/components/FloatingButtonCO.js +5 -3
- package/ds-chat/components/HeaderCO.js +2 -2
- package/ds-chat/components/TileCO.js +82 -0
- package/ds-chat/components/index.js +3 -2
- package/ds-chat/floatingbutton/DSChat-floating-button.visual.spec.js +1 -1
- package/ds-chat/loadmore/DSChat-loadmore.func.spec.js +1 -1
- package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.axe-core.func.spec.js +2 -2
- package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.func.spec.js +1 -1
- package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.visual.spec.js +2 -2
- package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.axe-core.func.spec.js +2 -2
- package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.visual.spec.js +1 -1
- package/ds-chat/tile/slots/DSChatTile.slots.func.spec.js +53 -0
- package/ds-chat/tile/slots/DSChatTile.slots.visual.spec.js +18 -0
- package/ds-chip/label-expansion-dismissal/DSChip.label-expansion-dismissal.visual.spec.js +84 -0
- package/ds-controlled-form/ds-combobox/creatable/DSCombobox.creatable-tooltip.func.spec.js +47 -0
- package/ds-controlled-form/ds-combobox/creatable/DSCombobox.creatable.visual.spec.js +12 -21
- package/ds-controlled-form/ds-combobox/disabled/DSCombobox.disabled.visual.spec.js +6 -1
- package/ds-controlled-form/ds-controlled-checkbox/Basic/DSControlledCheckbox.axe-core.basic.func.spec.js +4 -4
- package/ds-controlled-form/ds-controlled-checkbox/Basic/DSControlledCheckbox.basic.visual.spec.js +56 -0
- package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckboxCO.js +54 -1
- package/ds-controlled-form/ds-controlled-checkbox/Disabled/DSControlledCheckbox.axe-core.disabled.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-checkbox/Disabled/DSControlledCheckbox.disabled.visual.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-checkbox/HasError/DSControlledCheckbox.axe-core.hasError.func.spec.js +4 -4
- package/ds-controlled-form/ds-controlled-checkbox/HasError/DSControlledCheckbox.has-error.visual.spec.js +71 -1
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.axe-core.mixed.func.spec.js +4 -4
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.visual.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-checkbox/ReadOnly/DSControlledCheckbox.axe-core.read-only.func.spec.js +3 -3
- package/ds-controlled-form/ds-controlled-checkbox/ReadOnly/DSControlledCheckbox.read-only.visual.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-checkbox/WithTooltip/DSControlledCheckbox.axe-core.with-tooltip.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-checkbox/WithTooltip/DSControlledCheckbox.with-tooltip.visual.spec.js +1 -3
- package/ds-controlled-form/ds-controlled-checkbox/WrapLabel/DSControlledCheckbox.axe-core.wrap-label.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-checkbox/WrapLabel/DSControlledCheckbox.wrap-label.visual.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-checkbox/aria-disabled/DSControlledCheckbox.aria-disabled.visual.spec.js +2 -6
- package/ds-controlled-form/ds-controlled-checkbox/aria-disabled/DSControlledCheckbox.axe-core.aria-disabled.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-checkbox/slots/DSControlledCheckbox.slots.func.spec.js +78 -0
- package/ds-controlled-form/ds-controlled-checkbox/theme-font/DSControlledCheckbox.theme-font.func.spec.js +30 -0
- package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroup.axe-core.func.spec.js +4 -4
- package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroup.visual.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-radio/DSControlledRadioCO.js +50 -1
- package/ds-controlled-form/ds-controlled-radio/aria-disabled/DSControlledRadio.aria-disabled.axe-core.func.spec.js +16 -2
- package/ds-controlled-form/ds-controlled-radio/aria-disabled/DSControlledRadio.aria-disabled.func.spec.js +37 -0
- package/ds-controlled-form/ds-controlled-radio/slots/DSControlledRadio.slots.func.spec.js +78 -0
- package/ds-controlled-form/ds-controlled-radio/theme-font/DSControlledRadio.theme-font.func.spec.js +30 -0
- package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +1 -3
- package/ds-data-table-async/DSDataTableCO.js +187 -10
- package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +1 -1
- package/ds-data-table-async/components/FilterBarCO.js +7 -0
- package/ds-data-table-async/components/FiltersCO.js +1 -1
- package/ds-data-table-async/components/HeaderCO.js +37 -1
- package/ds-data-table-async/dnd/DSDataTable.dnd-keyboard-scroll.func.spec.js +51 -0
- package/ds-data-table-async/filter-menu-close/DSDataTable.filter-menu-close.func.spec.js +77 -0
- package/ds-data-table-async/filter-popover-boundary/DSDataTable.filter-popover-boundary.func.spec.js +98 -0
- package/ds-data-table-async/filters/DSDataTable.filters-creatable-active-descendant.func.spec.js +51 -0
- package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +55 -0
- package/ds-data-table-async/filters/DSDataTable.filters.axe-core.func.spec.js +11 -9
- package/ds-data-table-async/filtersV2/DSDataTable.filtersV2-creatablemultiselect.keyboard.func.spec.js +2 -2
- package/ds-data-table-async/filtersV2/DSDataTable.filtersV2-creatableselect.keyboard.func.spec.js +2 -2
- package/ds-data-table-async/filtersV2/DSDataTable.filtersV2.axe-core.func.spec.js +45 -29
- package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.axe-core.func.spec.js +23 -0
- package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.func.spec.js +50 -0
- package/ds-data-table-async/filtersV2/pill-label/DSDataTable.pillLabel.visual.spec.js +21 -0
- package/ds-data-table-async/header-affordances/DSDataTable.header-affordances.func.spec.js +92 -0
- package/ds-data-table-async/helpers/getInputSelection.js +6 -0
- package/ds-data-table-async/helpers/index.js +1 -0
- package/ds-data-table-async/keyboard-scroll/DSDataTable.keyboard-scroll.func.spec.js +39 -0
- package/ds-data-table-async/menubutton/DSDataTable.MenuButton.keyboard.func.spec.js +8 -7
- package/ds-data-table-async/menubutton/DSDataTable.MenuButton.mouse.func.spec.js +6 -7
- package/ds-data-table-async/pagination/DSDataTable.pagination.func.spec.js +3 -2
- package/ds-data-table-async/resizable/DSDataTable.resize-min-clamp.func.spec.js +72 -0
- package/ds-data-table-async/resizable/DSDataTable.resizerA11y.axe-core.func.spec.js +42 -0
- package/ds-data-table-async/resizable/DSDataTable.resizerA11y.func.spec.js +98 -0
- package/ds-data-table-async/textwrapping/DSDataTable.header-wrap-alignment.axe-core.func.spec.js +23 -0
- package/ds-data-table-async/textwrapping/DSDataTable.header-wrap-alignment.visual.spec.js +106 -0
- package/ds-data-table-async/textwrapping/DSDataTable.text-wrap-toolbar.visual.spec.js +27 -0
- package/ds-data-table-async/toggle-cell-focus/DSDataTable.toggle-cell-enter-focus.func.spec.js +31 -0
- package/ds-data-table-async/vissibility/DSDataTable.vissibility.visual.spec.js +2 -0
- package/ds-dataviz/DSDataViz.axis.visual.spec.js +1 -2
- package/ds-dataviz/DSDataViz.ticks.visual.spec.js +1 -2
- package/ds-dataviz/DSDataVizCO.js +2 -0
- package/ds-dataviz/axecore/DSDataViz.axis.axe-core.func.spec.js +1 -1
- package/ds-floating-context/DSFloatingContextCO.js +10 -0
- package/ds-floating-context/placement/DSFloatingContext.placement.visual.spec.js +48 -0
- package/ds-form-combobox-multi/DSComboboxMultiCO.js +36 -9
- package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.axe-core.func.spec.js +55 -0
- package/ds-form-combobox-multi/aria-busy-loading/DSComboboxMulti.aria-busy-loading.func.spec.js +57 -0
- package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +19 -2
- package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.axe-core.func.spec.js +24 -0
- package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.mouse.func.spec.js +0 -2
- package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.visual.spec.js +22 -0
- package/ds-form-combobox-multi/grouped/DSComboboxMulti.grouped.visual.spec.js +42 -0
- package/ds-form-combobox-multi/inline/DSComboboxMulti.inline.visual.spec.js +21 -0
- package/ds-form-combobox-multi/pills/DSComboboxMulti.pills.func.spec.js +59 -0
- package/ds-form-combobox-multi/pills/DSComboboxMulti.pills.visual.spec.js +39 -0
- package/ds-form-combobox-multi/skeleton/DSComboboxMulti.skeleton.visual.spec.js +25 -0
- package/ds-form-combobox-multi/theme-font/DSComboboxMulti.theme-font.func.spec.js +38 -0
- package/ds-form-combobox-multi/with-tooltip/DSComboboxMulti.with-tooltip.axe-core.func.spec.js +39 -0
- package/ds-form-combobox-multi/with-tooltip/DSComboboxMulti.with-tooltip.func.spec.js +39 -0
- package/ds-form-combobox-multi/with-tooltip/DSComboboxMulti.with-tooltip.visual.spec.js +29 -0
- package/ds-form-combobox-single/DSComboboxSingleCO.js +25 -9
- package/ds-form-combobox-single/aria-busy-loading/DSComboboxSingle.aria-busy-loading.axe-core.func.spec.js +49 -0
- package/ds-form-combobox-single/aria-busy-loading/DSComboboxSingle.aria-busy-loading.func.spec.js +54 -0
- package/ds-form-combobox-single/aria-disabled/DSComboboxSingle.aria-disabled.visual.spec.js +18 -0
- package/ds-form-combobox-single/creatable/DSComboboxSingle.creatable.visual.spec.js +30 -0
- package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.axe-core.func.spec.js +24 -0
- package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.mouse.func.spec.js +0 -2
- package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.visual.spec.js +22 -0
- package/ds-form-combobox-single/grouped/DSComboboxSingle.grouped.visual.spec.js +45 -0
- package/ds-form-combobox-single/inline/DSComboboxSingle.inline.visual.spec.js +23 -0
- package/ds-form-combobox-single/skeleton/DSComboboxSingle.skeleton.visual.spec.js +25 -0
- package/ds-form-combobox-single/theme-font/DSComboboxSingle.theme-font.func.spec.js +34 -0
- package/ds-form-combobox-single/with-tooltip/DSComboboxSingle.with-tooltip.axe-core.func.spec.js +39 -0
- package/ds-form-combobox-single/with-tooltip/DSComboboxSingle.with-tooltip.func.spec.js +39 -0
- package/ds-form-combobox-single/with-tooltip/DSComboboxSingle.with-tooltip.visual.spec.js +29 -0
- package/ds-form-date-range-picker/DateRangePicker.axe-core.spec.js +5 -0
- package/ds-form-date-range-picker/DateRangePicker.functional.spec.js +80 -18
- package/ds-form-date-range-picker/DateRangePickerCO.js +19 -0
- package/ds-form-date-range-picker/date-segment-aria-labels/DateRangePicker.date-segment-aria-labels.func.spec.js +66 -0
- package/ds-form-date-range-picker/grouped-field-error-announcement/DateRangePicker.grouped-field-error-announcement.func.spec.js +59 -0
- package/ds-form-date-range-picker/picker-callbacks/DateRangePicker.picker-callbacks.func.spec.js +36 -0
- package/ds-form-date-time-picker/DSControlledDateTimePickerCO.js +7 -0
- package/ds-form-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +8 -1
- package/ds-form-date-time-picker/date-time-full/DateTimePicker.DateTimeFull.visual.spec.js +9 -0
- package/ds-form-date-time-picker/partial-date-open-focus/DateTimePicker.partial-date-open-focus.func.spec.js +45 -0
- package/ds-form-native-select/NativeSelect.axe-core.func.spec.js +39 -0
- package/ds-form-native-select/NativeSelect.visual.spec.js +33 -0
- package/ds-form-native-select/NativeSelectCO.js +6 -0
- package/ds-form-native-select/option-selection/NativeSelect.option-selection.func.spec.js +25 -0
- package/ds-form-toggle/DSToggle.func.spec.js +20 -23
- package/ds-form-toggle/DSToggleCO.js +11 -2
- package/ds-global-header/GlobalHeader.announcements.func.spec.js +27 -0
- package/ds-global-header/GlobalHeader.axe-core.func.spec.js +15 -15
- package/ds-global-header/GlobalHeader.func.spec.js +70 -1
- package/ds-global-header/GlobalHeaderCO.js +120 -2
- package/ds-global-header/app-picker-passthrough/GlobalHeader.app-picker-passthrough.func.spec.js +113 -0
- package/ds-global-header/popup-menu-focus/GlobalHeader.popup-menu-focus.func.spec.js +63 -0
- package/ds-global-header/popup-menu-slots/GlobalHeader.popup-menu-slots.func.spec.js +70 -0
- package/ds-global-header/search-toggle-slots/GlobalHeader.search-toggle-slots.func.spec.js +118 -0
- package/ds-global-header/toolbar-item-attributes/GlobalHeader.toolbar-item-attributes.func.spec.js +53 -0
- package/ds-grid/DSGridCO.js +20 -0
- package/ds-grid/layout-mode/DSGrid.layout-mode.func.spec.js +51 -0
- package/ds-grid/layout-mode/DSGrid.layout-mode.visual.spec.js +22 -0
- package/ds-hooks/DSHook.UseFontSizeMedia.visual.spec.js +5 -2
- package/ds-hooks/DSHook.usetree.func.spec.js +3 -2
- package/ds-hooks/DSHookCO.js +56 -23
- package/ds-hooks/useFocusStack/DSHook.useFocusStack.func.spec.js +83 -0
- package/ds-hooks/useFocusTrap/UseFocusTrapCO.js +2 -0
- package/ds-hooks/useFocusTrap/UseFocusTrapToggle.func.spec.js +48 -0
- package/ds-hooks/useMask/Number/UseNumberMask.axe-core.func.spec.js +48 -0
- package/ds-menu-button/DSMenuButtonCO.js +23 -0
- package/ds-menu-button/slots/DSMenuButton.slots.axe-core.func.spec.js +28 -0
- package/ds-menu-button/slots/DSMenuButton.slots.func.spec.js +59 -0
- package/ds-menu-button/slots/DSMenuButton.slots.visual.spec.js +26 -0
- package/ds-modal-slide/ModalSlideCO.js +7 -0
- package/ds-modal-slide/custom-header/ModalSlide.customHeader.focusRing.visual.spec.js +2 -1
- package/ds-modal-slide/heading-level/ModalSlide.headingLevel.axe-core.func.spec.js +25 -0
- package/ds-modal-slide/heading-level/ModalSlide.headingLevel.func.spec.js +25 -0
- package/ds-modal-slide/slots/ModalSlide.slots.func.spec.js +18 -0
- package/ds-notification-badge/DSNotificationBadge.visual.spec.js +17 -20
- package/ds-page-layout/PageLayoutCO.js +4 -4
- package/ds-pills-v2/DSPillsV2CO.js +12 -0
- package/ds-pills-v2/apply-aria-disabled/DSPills.applyAriaDisabled.func.spec.js +53 -0
- package/ds-pills-v2/apply-aria-disabled/DSPills.applyAriaDisabled.visual.spec.js +26 -0
- package/ds-pills-v2/disabled/DSPills.disabled.func.spec.js +53 -0
- package/ds-pills-v2/disabled/DSPills.disabled.visual.spec.js +33 -0
- package/ds-progress-indicator/DSProgressIndicator.axe-core.func.spec.js +2 -0
- package/ds-progress-indicator/DSProgressIndicatorCO.js +1 -1
- package/ds-query-builder/DSQueryBuilder.visual.spec.js +6 -6
- package/ds-shuttle-v2/DSShuttleV2CO.js +15 -1
- package/ds-shuttle-v2/breadcrumb-a11y/DSShuttleV2.breadcrumb-a11y.func.spec.js +43 -0
- package/ds-shuttle-v2/explicit-selection-ui/DSShuttleV2.explicit-selection-ui.func.spec.js +37 -0
- package/ds-shuttle-v2/explicit-selection-ui/DSShuttleV2.explicit-selection-ui.visual.spec.js +30 -0
- package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +8 -3
- package/ds-shuttle-v2/items/DSShuttleV2.items.func.spec.js +4 -2
- package/ds-shuttle-v2/skipped/DSShuttleV2.extra.axe-core.skipped.js +1 -1
- package/ds-shuttle-v2/skipped/DSShuttleV2.filter.axe-core.skipped.js +1 -1
- package/ds-shuttle-v2/skipped/DSShuttleV2.globalcheckbox.axe-core.skipped.js +1 -1
- package/ds-shuttle-v2/skipped/DSShuttleV2.items.axe-core.skipped.js +3 -3
- package/ds-shuttle-v2/skipped/DSShuttleV2.skipped.js +5 -5
- package/ds-slider-v2/DSSliderV2.func.spec.js +36 -25
- package/ds-slider-v2/DSSliderV2CO.js +10 -0
- package/ds-slider-v2/min-range/DSSliderV2.min-range.func.spec.js +69 -0
- package/ds-tab-button/DSTabButton.func.spec.js +1 -1
- package/ds-tabs/DSTabsCO.js +4 -0
- package/ds-tabs/notification-badge/DSTabs.notification-badge.axe-core.func.spec.js +28 -0
- package/ds-tabs/notification-badge/DSTabs.notification-badge.func.spec.js +51 -0
- package/ds-tooltip-v3/DSTooltipV3CO.js +21 -0
- package/ds-tooltip-v3/aria-tooltip-pattern/DSTooltipV3.aria-tooltip-pattern.axe-core.func.spec.js +23 -0
- package/ds-tooltip-v3/aria-tooltip-pattern/DSTooltipV3.aria-tooltip-pattern.func.spec.js +29 -0
- package/ds-tooltip-v3/dialog/DSTooltipV3.dialog.func.spec.js +45 -0
- package/ds-tooltip-v3/dialog/DSTooltipV3.dialog.visual.spec.js +29 -0
- package/ds-treeview/DSTreeViewCO.js +23 -0
- package/ds-treeview/dragAndDrop/TreeView-dnd_keyboard.func.spec.js +96 -0
- package/ds-typography/DSTypographyCO.js +10 -0
- package/ds-typography/theme-font/DSTypography.theme-font.func.spec.js +30 -0
- package/package.json +150 -153
- package/paths.js +16 -6
- package/ds-card-v3/disabled/DSCardV3.disabled.visual.spec.js +0 -17
- package/ds-chat-tile/TileCO.js +0 -35
- package/ds-hooks/DSHook.func.spec.js +0 -60
- package/ds-hooks/useFocusStack/DSHook.useFocusStack.skipped.js +0 -57
- package/ds-treeview/dragAndDrop/TreeView-dnd_mouse.func.spec.js +0 -61
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { PATH_E2E_CHAT_CARD } from '../../paths';
|
|
2
|
+
import { PageObject, Urlbuilder } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
export default class CardCO extends PageObject {
|
|
5
|
+
static cardBasicURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'basic-test');
|
|
6
|
+
|
|
7
|
+
static cardWithNotificationBadgesURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'with-notification-badges-test');
|
|
8
|
+
|
|
9
|
+
static cardTruncatedURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'truncated-text-test');
|
|
10
|
+
|
|
11
|
+
static cardSlotsURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'slots-test');
|
|
12
|
+
|
|
13
|
+
static async getCards() {
|
|
14
|
+
return $$('[data-testid="chat-card-wrapper"]');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static async getCardRoot(cardId) {
|
|
18
|
+
return $(`[data-testid="chat-card-wrapper-${cardId}"]`);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static async getCardTitle(cardId) {
|
|
22
|
+
return $(`[data-testid="chat-card-title-${cardId}"]`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static async getCardContent(cardId) {
|
|
26
|
+
return $(`[data-testid="chat-card-content-${cardId}"]`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static async getCardTime(cardId) {
|
|
30
|
+
return $(`[data-testid="chat-card-time-${cardId}"]`);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Truncated text selectors
|
|
34
|
+
static async getTruncatedSpan(index = 0) {
|
|
35
|
+
return $$('[data-dimsum-slot="dsChatcardTruncatedSpan"]')[index];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static async getTooltipContainer() {
|
|
39
|
+
return $('[data-dimsum-slot="dsChatcardTooltipContainer"]');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Slot selectors (used by slots func spec — one card per story)
|
|
43
|
+
static async getRootSlot() {
|
|
44
|
+
return $('[data-dimsum-slot="dsChatcardRoot"]');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
static async getMainContentSlot() {
|
|
48
|
+
return $('[data-dimsum-slot="dsChatcardMainContent"]');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static async getTitleSlot() {
|
|
52
|
+
return $('[data-dimsum-slot="dsChatcardTitle"]');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static async getContentSlot() {
|
|
56
|
+
return $('[data-dimsum-slot="dsChatcardContent"]');
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static async getTimeSlot() {
|
|
60
|
+
return $('[data-dimsum-slot="dsChatcardTime"]');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static async getRightAddonSlot() {
|
|
64
|
+
return $('[data-dimsum-slot="dsChatcardRightAddon"]');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static async getTruncatedSpanSlot() {
|
|
68
|
+
return $('[data-dimsum-slot="dsChatcardTruncatedSpan"]');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Snapshots
|
|
72
|
+
static snapshotPath(example = 'basic') {
|
|
73
|
+
return PageObject.getSnapshotPathBuilder('Card', example, 'ds-chat');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/* eslint-disable import/no-relative-packages */
|
|
2
|
-
import {
|
|
2
|
+
import { PATH_E2E_CHAT } from '../../paths';
|
|
3
3
|
import { PageObject, Urlbuilder } from '../../helpers';
|
|
4
4
|
|
|
5
5
|
export default class ComposerCO extends PageObject {
|
|
6
|
-
static composerURL = new Urlbuilder(
|
|
6
|
+
static composerURL = new Urlbuilder(PATH_E2E_CHAT, 'composer');
|
|
7
7
|
|
|
8
|
-
static mobileComposerURL = new Urlbuilder(
|
|
8
|
+
static mobileComposerURL = new Urlbuilder(PATH_E2E_CHAT, 'mobile-container-test');
|
|
9
9
|
|
|
10
|
-
static characterCountURL = new Urlbuilder(
|
|
10
|
+
static characterCountURL = new Urlbuilder(PATH_E2E_CHAT, 'composer-character-count');
|
|
11
11
|
|
|
12
|
-
static characterCountCustomURL = new Urlbuilder(
|
|
12
|
+
static characterCountCustomURL = new Urlbuilder(PATH_E2E_CHAT, 'composer-character-count-custom-message');
|
|
13
13
|
|
|
14
14
|
static responsiveContainerUCURL = new Urlbuilder(PATH_E2E_CHAT, 'responsive-container');
|
|
15
15
|
|
|
16
|
-
static containerFocusCasesURL = new Urlbuilder(
|
|
16
|
+
static containerFocusCasesURL = new Urlbuilder(PATH_E2E_CHAT, 'container-focus-cases-test');
|
|
17
17
|
|
|
18
18
|
static LONG_STRING = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula bibendum nulla';
|
|
19
19
|
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PATH_E2E_CHAT } from '../../paths';
|
|
2
2
|
import { PageObject, Urlbuilder } from '../../helpers';
|
|
3
3
|
|
|
4
4
|
export default class FloatingButtonCO extends PageObject {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
// FloatingExampleTest renders the floating button alone at rest (its chat panel is gated behind
|
|
6
|
+
// `show`, initially false), so it covers both the isolated-button visual states and the in-context
|
|
7
|
+
// axe-core run. The former dedicated `float-button` story was removed in the
|
|
8
|
+
// ds-chat-floating-button compliance retrofit and is not coming back.
|
|
7
9
|
static floatingExampleURL = new Urlbuilder(PATH_E2E_CHAT, 'floating-example-test');
|
|
8
10
|
|
|
9
11
|
// selectors
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint-disable import/no-relative-packages */
|
|
2
|
-
import {
|
|
2
|
+
import { PATH_E2E_CHAT } from '../../paths';
|
|
3
3
|
import { PageObject, Urlbuilder } from '../../helpers';
|
|
4
4
|
|
|
5
5
|
export default class HeaderCO extends PageObject {
|
|
6
|
-
static headerURL = new Urlbuilder(
|
|
6
|
+
static headerURL = new Urlbuilder(PATH_E2E_CHAT, 'with-dropdown-menu-test');
|
|
7
7
|
|
|
8
8
|
static withConditionalRenderingUCURL = new Urlbuilder(PATH_E2E_CHAT, 'conditional-rendering-header-buttons');
|
|
9
9
|
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { PATH_E2E_CHAT, PATH_E2E_CHAT_TILE } from '../../paths';
|
|
2
|
+
import { PageObject, Urlbuilder } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
export default class TileCO extends PageObject {
|
|
5
|
+
static tilesURL = new Urlbuilder(PATH_E2E_CHAT, 'tile');
|
|
6
|
+
|
|
7
|
+
static sidebarURL = new Urlbuilder(PATH_E2E_CHAT, 'sidebar');
|
|
8
|
+
|
|
9
|
+
static applyAriaDisabledURL = new Urlbuilder(PATH_E2E_CHAT_TILE, 'apply-aria-disabled-test');
|
|
10
|
+
|
|
11
|
+
static slotsTestURL = new Urlbuilder(PATH_E2E_CHAT_TILE, 'slots-test');
|
|
12
|
+
|
|
13
|
+
static async getChatTile(tileId) {
|
|
14
|
+
return $(`[data-testid="tile-button-${tileId}"]`);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static async getChatTileButtonItem(tileId) {
|
|
18
|
+
return $(`[data-testid="tile-button-item-id-${tileId}"]`);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static async getSideBarSelectedTile() {
|
|
22
|
+
return $(`[data-testid="selected-tile"]`).getText();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
static async getTileTooltip(id) {
|
|
26
|
+
return $(`[data-testid="ds-tooltip-v3-trigger-wrapper_ds-chat-tile-tooltip-button-item-id-${id}"]`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static async getCounter() {
|
|
30
|
+
return $('[data-testid="counter"]');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static async getTileBadge(tileId) {
|
|
34
|
+
return $(`[data-testid="tile-badge-${tileId}"]`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static async getTileCloseButton(tileId) {
|
|
38
|
+
return $(`[data-testid="tile-close-btn-${tileId}"]`);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Slot selectors (used by slots func spec — one tile per story)
|
|
42
|
+
static async getRootSlot() {
|
|
43
|
+
return $('[data-dimsum-slot="dsChattilebuttonRoot"]');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static async getTooltipWrapperSlot() {
|
|
47
|
+
return $('[data-dimsum-slot="dsChattilebuttonTooltipWrapper"]');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static async getWrapperSlot() {
|
|
51
|
+
return $('[data-dimsum-slot="dsChattilebuttonWrapper"]');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
static async getLeftBorderSlot() {
|
|
55
|
+
return $('[data-dimsum-slot="dsChattilebuttonLeftBorder"]');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
static async getCentralContentSlot() {
|
|
59
|
+
return $('[data-dimsum-slot="dsChattilebuttonCentralContent"]');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static async getIconSlot() {
|
|
63
|
+
return $('[data-dimsum-slot="dsChattilebuttonIcon"]');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
static async getLabelSlot() {
|
|
67
|
+
return $('[data-dimsum-slot="dsChattilebuttonLabel"]');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static async getBadgeSlot() {
|
|
71
|
+
return $('[data-dimsum-slot="dsChattilebuttonBadge"]');
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
static async getCloseButtonSlot() {
|
|
75
|
+
return $('[data-dimsum-slot="dsChattilebuttonCloseButton"]');
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Snapshots
|
|
79
|
+
static snapshotPath(example = 'basic') {
|
|
80
|
+
return PageObject.getSnapshotPathBuilder('Tile', example, 'ds-chat');
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import BubbleCO from './BubbleCO';
|
|
2
|
+
import CardCO from './CardCO';
|
|
2
3
|
import FloatingButtonCO from './FloatingButtonCO';
|
|
3
|
-
import TileCO from '
|
|
4
|
+
import TileCO from './TileCO';
|
|
4
5
|
import HeaderCO from './HeaderCO';
|
|
5
6
|
import ComposerCO from './ComposerCO';
|
|
6
7
|
import ChatCO from '../DSChatCO';
|
|
7
8
|
import StoryBtnsCO from './StoryBtnsCO';
|
|
8
|
-
export { BubbleCO, FloatingButtonCO, TileCO, HeaderCO, ComposerCO, ChatCO, StoryBtnsCO };
|
|
9
|
+
export { BubbleCO, CardCO, FloatingButtonCO, TileCO, HeaderCO, ComposerCO, ChatCO, StoryBtnsCO };
|
|
@@ -5,7 +5,7 @@ import { mouseOver, keyboardActions, tickActions, performKeyboardAction } from '
|
|
|
5
5
|
if (!browser.capabilities['ice:options'].isPhone) {
|
|
6
6
|
describe('PUI-6669 - Chat, Floating Button, States - Visual Tests', () => {
|
|
7
7
|
beforeEach('loading page', async () => {
|
|
8
|
-
const errorOnGo = await FloatingButtonCO.
|
|
8
|
+
const errorOnGo = await FloatingButtonCO.floatingExampleURL.go();
|
|
9
9
|
if (errorOnGo) throw errorOnGo;
|
|
10
10
|
});
|
|
11
11
|
it('should display the floating button in default state', async () => {
|
|
@@ -21,7 +21,7 @@ if (!browser.capabilities['ice:options'].isPhone) {
|
|
|
21
21
|
await browser.pause(2000);
|
|
22
22
|
const howManyMsgs = (await DSChatCO.getBubbleContainers()).length;
|
|
23
23
|
await expect(howManyMsgs).toEqual(20);
|
|
24
|
-
await expect(bubble0).
|
|
24
|
+
await expect(bubble0).toBeDisplayed();
|
|
25
25
|
});
|
|
26
26
|
});
|
|
27
27
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Key } from 'webdriverio';
|
|
2
|
-
import TileCO from '
|
|
2
|
+
import { TileCO } from '../components';
|
|
3
3
|
|
|
4
4
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
5
5
|
describe('PUI-6684 - Chat, Tile, Keyboard Navigation', () => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Key } from 'webdriverio';
|
|
2
|
-
import TileCO from '
|
|
3
|
-
import { mouseOver, keyboardActions, tickActions, performKeyboardAction } from '
|
|
2
|
+
import { TileCO } from '../components';
|
|
3
|
+
import { mouseOver, keyboardActions, tickActions, performKeyboardAction } from '../../helpers';
|
|
4
4
|
|
|
5
5
|
if (!browser.capabilities['ice:options'].isPhone) {
|
|
6
6
|
describe('PUI-6674 - Chat, Tile, Visual Tests', () => {
|
package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.visual.spec.js
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable max-len */
|
|
2
2
|
import { Key } from 'webdriverio';
|
|
3
|
-
import TileCO from '
|
|
3
|
+
import { TileCO } from '../../components';
|
|
4
4
|
|
|
5
5
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
6
|
describe('PUI-14368 - [Tile] applyAriaDisabled prop - visual Test', () => {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Tests for PUI-17908 (ds-chat-tile slots implementation)
|
|
2
|
+
import { TileCO } from '../../components';
|
|
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-18465 - DSChatTile:: slot wiring - Func', () => {
|
|
11
|
+
before('loading page', async () => {
|
|
12
|
+
const errorOnGo = await TileCO.slotsTestURL.go();
|
|
13
|
+
if (errorOnGo) throw errorOnGo;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('01: should have custom aria-* for each slot', async () => {
|
|
17
|
+
await (await TileCO.getRootSlot()).waitForDisplayed();
|
|
18
|
+
await expect(await TileCO.getRootSlot()).toHaveAttribute('aria-label', 'root aria');
|
|
19
|
+
await expect(await TileCO.getTooltipWrapperSlot()).toHaveAttribute('aria-label', 'tooltip-wrapper aria');
|
|
20
|
+
await expect(await TileCO.getWrapperSlot()).toHaveAttribute('aria-label', 'wrapper aria');
|
|
21
|
+
await expect(await TileCO.getLeftBorderSlot()).toHaveAttribute('aria-label', 'left-border aria');
|
|
22
|
+
await expect(await TileCO.getCentralContentSlot()).toHaveAttribute('aria-label', 'central-content aria');
|
|
23
|
+
await expect(await TileCO.getIconSlot()).toHaveAttribute('aria-label', 'icon aria');
|
|
24
|
+
await expect(await TileCO.getLabelSlot()).toHaveAttribute('aria-label', 'label aria');
|
|
25
|
+
await expect(await TileCO.getBadgeSlot()).toHaveAttribute('aria-label', 'badge aria');
|
|
26
|
+
await expect(await TileCO.getCloseButtonSlot()).toHaveAttribute('aria-label', 'close-button aria');
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('02: should have custom data-testid for each slot', async () => {
|
|
30
|
+
await expect(await TileCO.getRootSlot()).toHaveAttribute('data-testid', 'root data');
|
|
31
|
+
await expect(await TileCO.getTooltipWrapperSlot()).toHaveAttribute('data-testid', 'tooltip-wrapper data');
|
|
32
|
+
await expect(await TileCO.getWrapperSlot()).toHaveAttribute('data-testid', 'wrapper data');
|
|
33
|
+
await expect(await TileCO.getLeftBorderSlot()).toHaveAttribute('data-testid', 'left-border data');
|
|
34
|
+
await expect(await TileCO.getCentralContentSlot()).toHaveAttribute('data-testid', 'central-content data');
|
|
35
|
+
await expect(await TileCO.getIconSlot()).toHaveAttribute('data-testid', 'icon data');
|
|
36
|
+
await expect(await TileCO.getLabelSlot()).toHaveAttribute('data-testid', 'label data');
|
|
37
|
+
await expect(await TileCO.getBadgeSlot()).toHaveAttribute('data-testid', 'badge data');
|
|
38
|
+
await expect(await TileCO.getCloseButtonSlot()).toHaveAttribute('data-testid', 'close-button data');
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('03: should have custom lang for each slot', async () => {
|
|
42
|
+
await expect(await TileCO.getRootSlot()).toHaveAttribute('lang', 'pt');
|
|
43
|
+
await expect(await TileCO.getTooltipWrapperSlot()).toHaveAttribute('lang', 'es');
|
|
44
|
+
await expect(await TileCO.getWrapperSlot()).toHaveAttribute('lang', 'de');
|
|
45
|
+
await expect(await TileCO.getLeftBorderSlot()).toHaveAttribute('lang', 'en');
|
|
46
|
+
await expect(await TileCO.getCentralContentSlot()).toHaveAttribute('lang', 'fr');
|
|
47
|
+
await expect(await TileCO.getIconSlot()).toHaveAttribute('lang', 'it');
|
|
48
|
+
await expect(await TileCO.getLabelSlot()).toHaveAttribute('lang', 'nl');
|
|
49
|
+
await expect(await TileCO.getBadgeSlot()).toHaveAttribute('lang', 'sv');
|
|
50
|
+
await expect(await TileCO.getCloseButtonSlot()).toHaveAttribute('lang', 'ja');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Tests for PUI-17908 (ds-chat-tile slots implementation)
|
|
2
|
+
import { TileCO } from '../../components';
|
|
3
|
+
|
|
4
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
5
|
+
describe('PUI-18464 - DSChatTile:: slot variants - Visual', () => {
|
|
6
|
+
before(async () => {
|
|
7
|
+
const errorOnGo = await TileCO.slotsTestURL.go();
|
|
8
|
+
if (errorOnGo) throw errorOnGo;
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
it('01: should display all tile slot variants', async () => {
|
|
12
|
+
const firstTile = await TileCO.getRootSlot();
|
|
13
|
+
await firstTile.waitForDisplayed();
|
|
14
|
+
const snapshot = await browser.percyCheckScreenshot(TileCO.snapshotPath('tile-slot-variants'));
|
|
15
|
+
await expect(snapshot).toEqual(0);
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
2
|
+
import DSChipCO from '../DSChipCO';
|
|
3
|
+
import { mouseOver } from '../../helpers';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
const PARKED_X = 10;
|
|
7
|
+
const PARKED_Y = 10;
|
|
8
|
+
|
|
9
|
+
// Indexes into the basic-test story grid:
|
|
10
|
+
// 0 Large | 1 Small | 2 Selected | 3 Truncated with large label | 4 Disabled | 5 wrapText with large label
|
|
11
|
+
const TRUNCATING_CHIP = 3;
|
|
12
|
+
const WRAP_TEXT_CHIP = 5;
|
|
13
|
+
|
|
14
|
+
// DSChipCO deliberately has no label lookup, so the tab target is reached by walking the tab order.
|
|
15
|
+
// The natively disabled chip drops out of it on its own, which keeps this independent of the story's
|
|
16
|
+
// exact number of focus stops.
|
|
17
|
+
const MAX_TAB_STOPS = 12;
|
|
18
|
+
const tabUntilFocused = async (index) => {
|
|
19
|
+
const target = await DSChipCO.getChipButtonByIndex(index);
|
|
20
|
+
for (let i = 0; i < MAX_TAB_STOPS; i += 1) {
|
|
21
|
+
// eslint-disable-next-line no-await-in-loop
|
|
22
|
+
if (await target.isFocused()) return target;
|
|
23
|
+
// eslint-disable-next-line no-await-in-loop
|
|
24
|
+
await browser.keys(Key.Tab);
|
|
25
|
+
}
|
|
26
|
+
throw new Error(`chip ${index} never took focus within ${MAX_TAB_STOPS} tab stops`);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
describe('PUI-19009 - DSChip:: Escape dismisses the expanded truncated chip label - Visual', () => {
|
|
30
|
+
before('loading page', async () => {
|
|
31
|
+
const errorOnGo = await DSChipCO.basicURL.go();
|
|
32
|
+
if (errorOnGo) throw errorOnGo;
|
|
33
|
+
await browser.maximizeWindow();
|
|
34
|
+
await (await DSChipCO.getChipByIndex(TRUNCATING_CHIP)).waitForDisplayed();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it('01: truncated chip expands its label on hover', async () => {
|
|
38
|
+
await mouseOver(await DSChipCO.getChipByIndex(TRUNCATING_CHIP));
|
|
39
|
+
const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('esc-dismiss-hover-expanded'));
|
|
40
|
+
await expect(snapshot).toEqual(0);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('02: Escape collapses the hover-expanded label without moving the pointer', async () => {
|
|
44
|
+
await browser.keys(Key.Escape);
|
|
45
|
+
const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('esc-dismiss-hover-collapsed'));
|
|
46
|
+
await expect(snapshot).toEqual(0);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('03: label stays collapsed while the pointer remains on the chip', async () => {
|
|
50
|
+
await mouseOver(await DSChipCO.getChipByIndex(TRUNCATING_CHIP), 12, 12);
|
|
51
|
+
const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('esc-dismiss-hover-still-collapsed'));
|
|
52
|
+
await expect(snapshot).toEqual(0);
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('04: label expands again once the pointer leaves and returns', async () => {
|
|
56
|
+
await mouseOver(null, PARKED_X, PARKED_Y);
|
|
57
|
+
await mouseOver(await DSChipCO.getChipByIndex(TRUNCATING_CHIP));
|
|
58
|
+
const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('esc-dismiss-rehover-expanded'));
|
|
59
|
+
await expect(snapshot).toEqual(0);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('05: truncated chip expands its label on focus alone', async () => {
|
|
63
|
+
await mouseOver(null, PARKED_X, PARKED_Y);
|
|
64
|
+
const chipButton = await tabUntilFocused(TRUNCATING_CHIP);
|
|
65
|
+
await expect(chipButton).toBeFocused();
|
|
66
|
+
const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('esc-dismiss-focus-expanded'));
|
|
67
|
+
await expect(snapshot).toEqual(0);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
it('06: Escape collapses the focus-expanded label without moving focus', async () => {
|
|
71
|
+
await browser.keys(Key.Escape);
|
|
72
|
+
await expect(await DSChipCO.getChipButtonByIndex(TRUNCATING_CHIP)).toBeFocused();
|
|
73
|
+
const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('esc-dismiss-focus-collapsed'));
|
|
74
|
+
await expect(snapshot).toEqual(0);
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('07: a wrapText chip never expands, so Escape leaves it untouched', async () => {
|
|
78
|
+
await mouseOver(await DSChipCO.getChipByIndex(WRAP_TEXT_CHIP));
|
|
79
|
+
await browser.keys(Key.Escape);
|
|
80
|
+
const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('esc-dismiss-wrap-text-unchanged'));
|
|
81
|
+
await expect(snapshot).toEqual(0);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
2
|
+
import DSComboboxCO from '../DSComboboxCO';
|
|
3
|
+
import { mouseOver } from '../../../helpers';
|
|
4
|
+
|
|
5
|
+
const longText =
|
|
6
|
+
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore ' +
|
|
7
|
+
'magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo.';
|
|
8
|
+
|
|
9
|
+
// Tests for the fix introduced in PUI-16693 (ComboboxMulti suppresses the inaccessible
|
|
10
|
+
// truncated-pill tooltip via the disableTruncationTooltip flag; the full value stays
|
|
11
|
+
// readable from the list box). Hovering a truncated selected pill must NOT open a tooltip.
|
|
12
|
+
// The open menu renders its own ds-floating-wrapper-root, so it is closed before asserting.
|
|
13
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
14
|
+
describe('PUI-18659 - ComboboxV3:: truncated selected pill tooltip suppression - func', () => {
|
|
15
|
+
before('loading page and creating a truncated pill', async () => {
|
|
16
|
+
const errorOnGo = await DSComboboxCO.multiSelectCreatable.go();
|
|
17
|
+
if (errorOnGo) throw errorOnGo;
|
|
18
|
+
|
|
19
|
+
const combobox = await DSComboboxCO.getComboboxInput();
|
|
20
|
+
await combobox.setValue(longText);
|
|
21
|
+
|
|
22
|
+
const optionCreated = await DSComboboxCO.getOptionByIndex(0);
|
|
23
|
+
await optionCreated.click();
|
|
24
|
+
|
|
25
|
+
// close the menu so its FloatingWrapper (shares ds-floating-wrapper-root) is gone
|
|
26
|
+
await browser.keys(Key.Escape);
|
|
27
|
+
const menuList = await DSComboboxCO.getMenuList();
|
|
28
|
+
await menuList.waitForDisplayed({ reverse: true });
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('01: should not render a tooltip wrapper for the truncated selected pill', async () => {
|
|
32
|
+
const pill = await DSComboboxCO.getSelectedValues();
|
|
33
|
+
await expect(pill).toBeDisplayed();
|
|
34
|
+
|
|
35
|
+
const tooltip = await DSComboboxCO.getTooltip();
|
|
36
|
+
await expect(tooltip).not.toBeExisting();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('02: should not open a tooltip when hovering the truncated pill', async () => {
|
|
40
|
+
const pill = await DSComboboxCO.getSimpleTruncateText();
|
|
41
|
+
await mouseOver(pill);
|
|
42
|
+
|
|
43
|
+
const tooltip = await DSComboboxCO.getTooltip();
|
|
44
|
+
await expect(tooltip).not.toBeExisting();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/* eslint-disable max-len */
|
|
3
3
|
/* eslint-disable max-lines */
|
|
4
4
|
import DSComboboxCO from '../DSComboboxCO';
|
|
5
|
-
import { type
|
|
5
|
+
import { type } from '../../../helpers';
|
|
6
6
|
|
|
7
7
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
8
8
|
describe('PUI-8449 - ComboboxV3:: Multi Select Creatable - basic - visual', () => {
|
|
@@ -28,30 +28,21 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
28
28
|
);
|
|
29
29
|
await expect(snapshot).toEqual(0);
|
|
30
30
|
});
|
|
31
|
-
//
|
|
32
|
-
|
|
31
|
+
// PUI-16693 (tooltip suppression on truncated pills) is now fixed; these creatable
|
|
32
|
+
// snapshots are reactivated. The tooltip-absence behavior is covered separately in
|
|
33
|
+
// DSCombobox.creatable-tooltip.func.spec.js.
|
|
34
|
+
it('03: should create and display a second long option in the menu', async () => {
|
|
33
35
|
await browser.eyesOpen();
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
await
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
);
|
|
41
|
-
await expect(snapshot).toEqual(0);
|
|
42
|
-
});
|
|
43
|
-
// Defect PUI-16693 has been created to track this issue
|
|
44
|
-
it.skip('04: create a new long option', async () => {
|
|
45
|
-
await browser.eyesOpen();
|
|
46
|
-
const pill = await DSComboboxCO.getSelectedValues();
|
|
47
|
-
await mouseOver(pill, 400, 0);
|
|
48
|
-
const longText = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit';
|
|
49
|
-
await type(longText);
|
|
36
|
+
// the input keeps focus and the menu stays open after selecting in test 02, so type
|
|
37
|
+
// directly — clicking the input is intercepted by the overlapping aria-hidden input.
|
|
38
|
+
const secondLongText = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit';
|
|
39
|
+
await type(secondLongText);
|
|
40
|
+
const menuList = await DSComboboxCO.getMenuList();
|
|
41
|
+
await menuList.waitForDisplayed();
|
|
50
42
|
const snapshot = await browser.eyesCheckSnapshot(DSComboboxCO.snapshotPath('comboboxV3-createable--new-option'));
|
|
51
43
|
await expect(snapshot).toEqual(0);
|
|
52
44
|
});
|
|
53
|
-
|
|
54
|
-
it.skip('05: should select new option', async () => {
|
|
45
|
+
it('04: should select the second created option', async () => {
|
|
55
46
|
await browser.eyesOpen();
|
|
56
47
|
const optionCreated = await DSComboboxCO.getOptionByIndex(0);
|
|
57
48
|
await optionCreated.click();
|
|
@@ -14,7 +14,12 @@ if (!browser.capabilities['ice:options'].isPhone) {
|
|
|
14
14
|
await expect(snapshot).toEqual(0);
|
|
15
15
|
});
|
|
16
16
|
if (!browser.capabilities['ice:options'].isTablet) {
|
|
17
|
-
|
|
17
|
+
// SKIPPED pending PUI-18660 (defect): the PUI-16693 fix applies disableTruncationTooltip
|
|
18
|
+
// to every ComboboxMulti selected pill, including disabled/readOnly pills. In the disabled
|
|
19
|
+
// state the menu cannot be opened, so suppressing the tooltip leaves the truncated value
|
|
20
|
+
// inaccessible. Re-enable (asserting tooltip presence) once the flag is scoped to
|
|
21
|
+
// interactive pills only.
|
|
22
|
+
it.skip('should display tooltip when hover truncated pill', async () => {
|
|
18
23
|
const truncatedPill = await DSComboboxCO.getPillByLabel('Luke Skywalker too long this text is super long');
|
|
19
24
|
await mouseOver(truncatedPill, 20, 5);
|
|
20
25
|
const tooltip = await DSComboboxCO.getTooltip();
|
|
@@ -19,24 +19,24 @@ if (
|
|
|
19
19
|
const checkbox = await DSControlledCheckboxCO.getCustomCheckbox();
|
|
20
20
|
await checkbox.waitForExist();
|
|
21
21
|
const result = await axeCoreCheck();
|
|
22
|
-
expect(result
|
|
22
|
+
await expect(result).toHaveLength(0);
|
|
23
23
|
});
|
|
24
24
|
it('02: Evaluate checkbox accessibility with axe-core (focused)', async () => {
|
|
25
25
|
await browser.keys(Key.Tab);
|
|
26
26
|
const result = await axeCoreCheck();
|
|
27
|
-
expect(result
|
|
27
|
+
await expect(result).toHaveLength(0);
|
|
28
28
|
});
|
|
29
29
|
it('03: Evaluate checkbox accessibility with axe-core (hovered)', async () => {
|
|
30
30
|
const checkbox = await DSControlledCheckboxCO.getCustomCheckbox();
|
|
31
31
|
await mouseOver(checkbox);
|
|
32
32
|
const result = await axeCoreCheck();
|
|
33
|
-
expect(result
|
|
33
|
+
await expect(result).toHaveLength(0);
|
|
34
34
|
});
|
|
35
35
|
it('04: Evaluate checkbox accessibility with axe-core (clicked)', async () => {
|
|
36
36
|
const checkbox = await DSControlledCheckboxCO.getCustomCheckbox();
|
|
37
37
|
await checkbox.click();
|
|
38
38
|
const result = await axeCoreCheck();
|
|
39
|
-
expect(result
|
|
39
|
+
await expect(result).toHaveLength(0);
|
|
40
40
|
});
|
|
41
41
|
});
|
|
42
42
|
}
|