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.
- package/CHANGELOG.md +300 -0
- 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 +1 -1
- 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-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 +1 -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-controlled-form/ds-combobox/DSComboboxCO.js +2 -2
- 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 +15 -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/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-inputgroup/DSControlledInputGroupCO.js +1 -1
- package/ds-controlled-form/ds-controlled-radio/DSControlledRadioCO.js +10 -0
- 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/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 +189 -12
- 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 +45 -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 +39 -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 +43 -0
- package/ds-data-table-async/resizable/DSDataTable.resizerA11y.func.spec.js +92 -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/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 +22 -3
- 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 +15 -0
- package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.axe-core.func.spec.js +24 -0
- 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/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 +15 -3
- 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.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/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 +13 -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-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 +25 -1
- package/ds-hooks/DSHook.usetree.func.spec.js +3 -2
- package/ds-hooks/DSHookCO.js +1 -22
- 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-leftnavigation/LeftNavigationCO.js +2 -2
- 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 +46 -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 +74 -0
- package/ds-modal-slide/slots/ModalSlide.slots.visual.spec.js +27 -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-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-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 +25 -2
- 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 +9 -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,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
|
+
}
|
|
@@ -134,7 +134,7 @@ export default class DSComboboxCO extends PageObject {
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
static async getSimpleTruncateText() {
|
|
137
|
-
return $('[data-testid="
|
|
137
|
+
return $('[data-testid="combobox-selected-values"]');
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
static async getNumberOptions() {
|
|
@@ -183,7 +183,7 @@ export default class DSComboboxCO extends PageObject {
|
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
static async getTooltip() {
|
|
186
|
-
return $('[data-testid="
|
|
186
|
+
return $('[data-testid="ds-floating-wrapper-root"]');
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
// actions
|
|
@@ -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
|
}
|
package/ds-controlled-form/ds-controlled-checkbox/Basic/DSControlledCheckbox.basic.visual.spec.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
2
|
+
import { mouseOver } from '../../../helpers';
|
|
3
|
+
import DSControlledCheckboxCO from '../DSControlledCheckboxCO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-18822 - DSControlledCheckbox: update to latest spec and typography- visual test', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSControlledCheckboxCO.basicURL.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it('01: the checked checkbox is not focused', async () => {
|
|
13
|
+
const checkbox = await DSControlledCheckboxCO.getCustomCheckbox();
|
|
14
|
+
await checkbox.waitForExist();
|
|
15
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
16
|
+
await expect(snapshot).toEqual(0);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('02: checkbox hover even when checked', async () => {
|
|
20
|
+
const controlBox = await DSControlledCheckboxCO.getCheckboxInputWrapper();
|
|
21
|
+
await controlBox.moveTo();
|
|
22
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
23
|
+
await expect(snapshot).toEqual(0);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('03: the checked checkbox is focused', async () => {
|
|
27
|
+
await browser.keys(Key.Tab);
|
|
28
|
+
const checkbox = await DSControlledCheckboxCO.getCustomCheckbox();
|
|
29
|
+
await expect(checkbox).toBeFocused();
|
|
30
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
31
|
+
await expect(snapshot).toEqual(0);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('04: checkbox is focused but unchecked', async () => {
|
|
35
|
+
await browser.keys(Key.Space);
|
|
36
|
+
const checkbox = await DSControlledCheckboxCO.getCustomCheckbox();
|
|
37
|
+
await expect(checkbox).toBeFocused();
|
|
38
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
39
|
+
await expect(snapshot).toEqual(0);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('05: checkbox not focused, not hovered when unchecked', async () => {
|
|
43
|
+
await browser.keys(Key.Tab);
|
|
44
|
+
await mouseOver(null, 400, 300);
|
|
45
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
46
|
+
await expect(snapshot).toEqual(0);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('06: checkbox hover even when unchecked', async () => {
|
|
50
|
+
const controlBox = await DSControlledCheckboxCO.getCheckboxInputWrapper();
|
|
51
|
+
await controlBox.moveTo();
|
|
52
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
53
|
+
await expect(snapshot).toEqual(0);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
@@ -23,10 +23,16 @@ export default class DSControlledCheckboxCO extends PageObject {
|
|
|
23
23
|
|
|
24
24
|
static applyAriaDisabled = new Urlbuilder(PATH_E2E_CHECKBOX, 'apply-aria-disabled-test');
|
|
25
25
|
|
|
26
|
+
static themeFontURL = new Urlbuilder(PATH_E2E_CHECKBOX, 'theme-font-family-test');
|
|
27
|
+
|
|
26
28
|
static async getCheckbox() {
|
|
27
29
|
return $('[data-testid="ds-checkbox"]');
|
|
28
30
|
}
|
|
29
31
|
|
|
32
|
+
static async getCheckboxInputWrapper() {
|
|
33
|
+
return $('[data-testid="ds-checkbox-input-wrapper"]');
|
|
34
|
+
}
|
|
35
|
+
|
|
30
36
|
static async getCustomCheckbox() {
|
|
31
37
|
return $('[data-testid="custom-data-testid"]');
|
|
32
38
|
}
|
|
@@ -58,7 +64,7 @@ export default class DSControlledCheckboxCO extends PageObject {
|
|
|
58
64
|
static getCheckboxByIndex = async (index) => getElementByIndex(this.getCheckboxes, index);
|
|
59
65
|
|
|
60
66
|
static async getCheckboxLabels() {
|
|
61
|
-
return $$('[data-testid="
|
|
67
|
+
return $$('[data-testid="ds-checkbox-label"]');
|
|
62
68
|
}
|
|
63
69
|
|
|
64
70
|
static getCheckboxLabelByIndex = async (index) => getElementByIndex(this.getCheckboxLabels, index);
|
|
@@ -66,4 +72,12 @@ export default class DSControlledCheckboxCO extends PageObject {
|
|
|
66
72
|
static snapshotPath(example = 'basic') {
|
|
67
73
|
return PageObject.getSnapshotPathBuilder('DSControlledCheckbox', example, 'ds-controlled-checkbox');
|
|
68
74
|
}
|
|
75
|
+
|
|
76
|
+
static async getThemedCheckboxLabel() {
|
|
77
|
+
return $('[data-testid="theme-font-sentinel"] [data-testid="ds-checkbox-label-typography"]');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static async getFallbackCheckboxLabel() {
|
|
81
|
+
return $('[data-testid="theme-font-fallback"] [data-testid="ds-checkbox-label-typography"]');
|
|
82
|
+
}
|
|
69
83
|
}
|
|
@@ -11,7 +11,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
11
11
|
const checkbox = await DSControlledCheckboxCO.getCheckboxByLabel('Group');
|
|
12
12
|
await checkbox.waitForDisplayed();
|
|
13
13
|
await browser.keys(Key.Tab);
|
|
14
|
-
const snapshot = await browser.
|
|
14
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
15
15
|
await expect(snapshot).toEqual(0);
|
|
16
16
|
});
|
|
17
17
|
});
|
|
@@ -19,24 +19,24 @@ if (
|
|
|
19
19
|
const checkbox = await DSControlledCheckboxCO.getCheckboxByIndex(0);
|
|
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.getCheckboxByIndex(0);
|
|
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.getCheckboxByIndex(1);
|
|
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
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
1
2
|
import { mouseOver } from '../../../helpers';
|
|
2
3
|
import DSControlledCheckboxCO from '../DSControlledCheckboxCO';
|
|
3
4
|
|
|
@@ -13,7 +14,76 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
13
14
|
await checkbox1.click();
|
|
14
15
|
await checkbox1.click();
|
|
15
16
|
await mouseOver(checkbox2);
|
|
16
|
-
const snapshot = await browser.
|
|
17
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
18
|
+
await expect(snapshot).toEqual(0);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
describe('PUI-18849 - DSControlledCheckbox - hasError - Visual Test', () => {
|
|
23
|
+
before('loading page', async () => {
|
|
24
|
+
const errorOnGo = await DSControlledCheckboxCO.hasError.go();
|
|
25
|
+
if (errorOnGo) throw errorOnGo;
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('01: the partial selected checkbox is not focused', async () => {
|
|
29
|
+
const checkbox = await DSControlledCheckboxCO.getCheckboxByIndex(0);
|
|
30
|
+
await checkbox.waitForExist();
|
|
31
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
32
|
+
await expect(snapshot).toEqual(0);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('02: checkbox hover even when partial selected', async () => {
|
|
36
|
+
const controlBox = await DSControlledCheckboxCO.getCheckboxByIndex(0);
|
|
37
|
+
await controlBox.moveTo();
|
|
38
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
39
|
+
await expect(snapshot).toEqual(0);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('03: the partial selected checkbox is focused', async () => {
|
|
43
|
+
await browser.keys(Key.Tab);
|
|
44
|
+
const checkbox = await DSControlledCheckboxCO.getCheckboxByIndex(0);
|
|
45
|
+
await expect(checkbox).toBeFocused();
|
|
46
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
47
|
+
await expect(snapshot).toEqual(0);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('04: checkbox is focused but not selected', async () => {
|
|
51
|
+
await browser.keys(Key.Space);
|
|
52
|
+
await browser.keys(Key.Space);
|
|
53
|
+
const checkbox = await DSControlledCheckboxCO.getCheckboxByIndex(0);
|
|
54
|
+
await expect(checkbox).toBeFocused();
|
|
55
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
56
|
+
await expect(snapshot).toEqual(0);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('05: checkbox not focused, not hovered when not selected', async () => {
|
|
60
|
+
await browser.keys(Key.Tab);
|
|
61
|
+
await mouseOver(null, 400, 300);
|
|
62
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
63
|
+
await expect(snapshot).toEqual(0);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('06: checkbox hover even when not selected', async () => {
|
|
67
|
+
const controlBox = await DSControlledCheckboxCO.getCheckboxByIndex(0);
|
|
68
|
+
await controlBox.moveTo();
|
|
69
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
70
|
+
await expect(snapshot).toEqual(0);
|
|
71
|
+
});
|
|
72
|
+
it('07: the selected checkbox is focused', async () => {
|
|
73
|
+
await browser.keys(Key.Tab);
|
|
74
|
+
await browser.keys(Key.Space);
|
|
75
|
+
const controlBox = await DSControlledCheckboxCO.getCheckboxByIndex(0);
|
|
76
|
+
await mouseOver(controlBox);
|
|
77
|
+
const checkbox = await DSControlledCheckboxCO.getCheckboxByIndex(2);
|
|
78
|
+
await expect(checkbox).toBeFocused();
|
|
79
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
80
|
+
await expect(snapshot).toEqual(0);
|
|
81
|
+
});
|
|
82
|
+
it('08: the selected checkbox is hovered', async () => {
|
|
83
|
+
await browser.keys(Key.Tab);
|
|
84
|
+
const checkbox = await DSControlledCheckboxCO.getCheckboxByIndex(2);
|
|
85
|
+
await mouseOver(checkbox);
|
|
86
|
+
const snapshot = await browser.percyCheckScreenshot();
|
|
17
87
|
await expect(snapshot).toEqual(0);
|
|
18
88
|
});
|
|
19
89
|
});
|