dimsum-e2e-tests 3.50.0-next.2 → 3.50.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +337 -258
- package/ds-apppicker/DSAppPickerCO.js +2 -6
- package/ds-apppicker/basic/DSAppPicker.basic.axe-core.spec.js +2 -2
- package/ds-apppicker/basic/DSAppPicker.basic.func.spec.js +3 -3
- package/ds-apppicker/basic/DSAppPicker.basic.keyboard-nav.func.spec.js +2 -2
- package/ds-apppicker/basic/DSAppPicker.basic.visual.spec.js +6 -3
- package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.axe-core.spec.js +2 -2
- package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.func.spec.js +2 -2
- package/ds-apppicker/maxHeight/DSAppPicker.max-height.visual.spec.js +2 -2
- package/ds-apppicker/minHeight/DSAppPicker.minHeight.visual.spec.js +1 -1
- package/ds-autocomplete/DSAutocomplete.func.spec.js +5 -4
- package/ds-autocomplete/DSAutocompleteCO.js +1 -8
- package/ds-banner/DSBanner.func.spec.js +55 -0
- package/ds-banner/DSBanner.visual.spec.js +14 -0
- package/ds-banner/DSBannerCO.js +30 -0
- package/ds-breadcrumb/DSBreadcrumb.axe-core.func.spec.js +21 -6
- package/ds-breadcrumb/DSBreadcrumb.func.spec.js +69 -40
- package/ds-breadcrumb/DSBreadcrumb.visual.spec.js +20 -15
- package/ds-breadcrumb/DSBreadcrumbCO.js +19 -3
- package/ds-button-v3/DSButtonV3.func.spec.js +22 -0
- package/ds-button-v3/DSButtonV3.visual.spec.js +8 -2
- package/ds-button-v3/DSButtonV3CO.js +14 -0
- package/ds-card-v3/DSCardV3CO.js +10 -10
- package/ds-card-v3/global-attributes/DSCardV3.global-attributes.func.spec.js +4 -4
- package/ds-comments-card/DSComments.visual.spec.js +3 -4
- package/ds-comments-card/DSCommentsCO.js +3 -3
- package/ds-controlled-form/ds-combobox/DSCombobox.func.spec.js +1 -0
- package/ds-controlled-form/ds-combobox/DSCombobox.smoke.spec.js +4 -56
- package/ds-controlled-form/ds-combobox/DSComboboxCO.js +2 -10
- package/ds-controlled-form/ds-combobox/creatable/DSCombobox.keyboard-creatable.func.spec.js +3 -0
- package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.axe-core.spec.js +0 -1
- package/ds-controlled-form/ds-combobox/inline/DSCombobox.inline.keyboard.func.spec.js +5 -0
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.keyboard-multi-select.func.spec.js +6 -68
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.mouse-touch-multi-select.func.spec.js +0 -58
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.multi.visual.spec.js +1 -16
- package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.ten-thousand-options.func.spec.js +2 -22
- package/ds-controlled-form/ds-combobox/single-select/DSCombobox.keyboard-single-select.func.spec.js +4 -0
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.func.spec.js +15 -41
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.keyboard-nav.func.spec.js +51 -0
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.visual.spec.js +14 -16
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.axe-core.spec.js +85 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.functional.spec.js +242 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.visual.spec.js +115 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePickerCO.js +56 -2
- package/ds-controlled-form/ds-controlled-date-range-picker/read-only/DSControlledDateRangePicker.ReadOnly.axe-core.spec.js +17 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/DSControlledDateTimePickerCO.js +12 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-full/DateFull.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-time-input/DateTimeInput.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/time-full/TimeFull.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/time-input/TimeInput.axe-core.func.spec.js +27 -0
- package/ds-controlled-form/ds-controlled-inputgroup/DSControlledInputGroupCO.js +4 -14
- package/ds-controlled-form/ds-controlled-inputgroup/autocomplete/DSControlledInputGroup.autocomplete.axe-core.func.spec.js +6 -6
- package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.axe-core.func.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.visual.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/combobox/DSControlledInputGroup.combobox.axe-core.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.axe-core.func.spec.js +2 -1
- package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.func.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.axe-core.func.spec.js +3 -2
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.func.spec.js +2 -1
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.visual.spec.js +2 -1
- package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +5 -5
- package/ds-controlled-form/ds-controlled-large-input-text/aria-disabled/DSLargeInputText.aria-disabled.visual.spec.js +7 -2
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.axe-core.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.func.spec.js +39 -0
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.visual.spec.js +12 -1
- package/ds-controlled-form/ds-input-text/DSInputText.func.spec.js +14 -12
- package/ds-controlled-form/ds-input-text/DSInputTextCO.js +11 -8
- package/ds-controlled-form/ds-input-text/aria-disabled/DSInputText.aria-disabled.func.spec.js +23 -0
- package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.axe-core.func.spec.js +23 -0
- package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.func.spec.js +23 -0
- package/ds-controlled-form/ds-input-text/read-only/DSInputText.read-only.visual.spec.js +28 -0
- package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +2 -1
- package/ds-controlled-form/react-hook-form/ReactHook.visual.spec.js +3 -1
- package/ds-controlled-form/react-hook-form/ReactHookCO.js +0 -10
- package/ds-controlled-form/useMask/Number/UseNumberMask.func.spec.js +47 -46
- package/ds-controlled-form/useMask/Number/UseNumberMask.visual.spec.js +7 -6
- package/ds-controlled-form/useMask/Phone/UsePhoneMask.func.spec.js +9 -8
- package/ds-controlled-form/useMask/Phone/UsePhoneMask.visual.spec.js +4 -3
- package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.func.spec.js +4 -3
- package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.visual.spec.js +5 -4
- package/ds-controlled-form/useMask/RegExp/UseRegExpMask.func.spec.js +6 -5
- package/ds-controlled-form/useMask/SSN/UseSsnMask.func.spec.js +7 -6
- package/ds-controlled-form/useMask/ZipCode/UseZipCodeMask.func.spec.js +6 -5
- package/ds-controlled-form/useMask/useMaskCO.js +1 -11
- package/ds-data-table-async/DSDataTable.smoke.spec.js +4 -0
- package/ds-data-table-async/DSDataTableCO.js +8 -0
- package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +2 -2
- package/ds-data-table-async/basic/DSDataTable.usecases.func.spec.js +5 -4
- package/ds-data-table-async/basic/DSDataTable.usecases.visual.spec.js +1 -0
- package/ds-data-table-async/components/FiltersCOextra.js +1 -1
- package/ds-data-table-async/components/HeaderCO.js +1 -1
- package/ds-data-table-async/components/OnRowClickCO.js +1 -1
- package/ds-data-table-async/components/RowCO.js +6 -0
- package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +1 -1
- package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +4 -0
- package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +1 -0
- package/ds-data-table-async/more/DSDataTable.extraactions.func.spec.js +33 -0
- package/ds-data-table-async/select/DSDataTable.select.axe-core.func.spec.js +2 -0
- package/ds-data-table-async/select/DSDataTable.select.func.spec.js +2 -86
- package/ds-data-table-async/select/DSDataTable.select.shift.func.spec.js +126 -0
- package/ds-data-table-async/toolbar/DSDataTable.Toolbar.visual.spec.js +15 -0
- package/ds-data-table-async/vissibility/DSDataTable.vissibility.visual.spec.js +39 -0
- package/ds-dialog/DSDialog.func.spec.js +14 -14
- package/ds-dialog/DSDialogCO.js +1 -1
- package/ds-dialog/components/DialogFormsCO.js +1 -1
- package/ds-dropdownmenu-v2/DSDDMenuV2.axe-core.func.spec.js +2 -0
- package/ds-dropdownmenu-v2/DSDDMenuV2CO.js +6 -2
- package/ds-floating-context/DSFloatingContext.visual.spec.js +15 -0
- package/ds-floating-context/DSFloatingContextCO.js +2 -0
- package/ds-form-combobox-multi/DSComboboxMultiCO.js +5 -10
- package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +2 -11
- package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.axe-core.func.spec.js +23 -0
- package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.keyboard-nav.func.spec.js +27 -0
- package/ds-form-combobox-multi/read-only/DSComboboxMulti.read-only.visual.spec.js +33 -0
- package/ds-form-combobox-multi/virtualization/DSComboboxMulti.virtualization.visual.spec.js +29 -0
- package/ds-form-combobox-single/DSComboboxSingleCO.js +4 -9
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.axe-core.func.spec.js +23 -0
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.keyboard-nav.func.spec.js +27 -0
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.visual.spec.js +33 -0
- package/ds-form-combobox-single/virtualization/DSComboboxSingle.virtualization.visual.spec.js +30 -0
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +11 -7
- package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroup.visual.spec.js +1 -1
- package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroupCO.js +2 -2
- package/ds-menu-button/DSMenuButtonCO.js +16 -12
- package/ds-menu-button/activable/DSMenuButton.activableMenuItem.func.spec.js +32 -0
- package/ds-menu-button/{basic/DSMenuButton.activableMenuItem.func.spec.js → activable/DSMenuButton.activableMenuItem.keyboardnav.func.spec.js} +1 -26
- package/ds-menu-button/disabled/DSMenuButton.axe-core.disabled.func.spec.js +20 -0
- package/ds-menu-button/disabled/DSMenuButton.disabled.func.spec.js +28 -0
- package/ds-menu-button/leftdecorations/DSMenuButton.axe-core.leftDecor.func.spec.js +20 -0
- package/ds-menu-button/multiselect/DSMenuButton.axe-core.multiselect.func.spec.js +28 -0
- package/ds-menu-button/multiselect/DSMenuButton.multiSelectItem.func.spec.js +34 -0
- package/ds-menu-button/{basic/DSMenuButton.multiSelectItem.func.spec.js → multiselect/DSMenuButton.multiSelectItem.keyboardnav.func.spec.js} +0 -29
- package/ds-menu-button/singleSelect/DSMenuButton.axe-core.singleSelect.func.spec.js +28 -0
- package/ds-menu-button/singleSelect/DSMenuButton.singleSelectItem.func.spec.js +39 -0
- package/ds-menu-button/{basic/DSMenuButton.singleSelectItem.func.spec.js → singleSelect/DSMenuButton.singleSelectItem.keyboardnav.func.spec.js} +11 -42
- package/ds-menu-button/submenu/DSMenuButton.axe-core.subMenu.func.spec.js +20 -0
- package/ds-menu-button/submenu/DSMenuButton.subMenuItem.func.spec.js +42 -0
- package/ds-menu-button/{basic/DSMenuButton.subMenuItem.func.spec.js → submenu/DSMenuButton.subMenuItem.keyboardnav.func.spec.js} +1 -38
- package/ds-menu-item/DSMenuItemsCO.js +2 -0
- package/ds-menu-item/aria-disabled/DSMenuItems.aria-disabled.visual.spec.js +1 -1
- package/ds-menu-item/read-only/DSMenuItems.read-only.axe-core.func.spec.js +35 -0
- package/ds-menu-item/read-only/DSMenuItems.read-only.visual.spec.js +66 -0
- package/ds-mobile/MobileLoadingPage/MobileLoadingPageCO.js +1 -1
- package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +1 -0
- package/ds-pills-v2/DSPills.axe-core.func.spec.js +2 -2
- package/ds-pills-v2/DSPills.func.spec.js +26 -0
- package/ds-pills-v2/DSPills.visual.spec.js +1 -1
- package/ds-pills-v2/DSPillsV2CO.js +19 -1
- package/ds-pills-v2/selection/DSPills.axe-core.func.spec.js +77 -0
- package/ds-pills-v2/selection/DSPills.func.spec.js +155 -0
- package/ds-pills-v2/selection/DSPills.visual.spec.js +72 -0
- package/ds-query-builder/DSQueryBuilder.visual.spec.js +2 -1
- package/ds-query-builder/DSQueryBuilderCO.js +1 -6
- package/ds-shuttle-v2/DSShuttleV2CO.js +4 -4
- package/ds-shuttle-v2/Dnd/DSShuttleV2.DnD.visual.spec.js +0 -5
- package/ds-shuttle-v2/basic/DSShuttleV2.keyboard.func.spec.js +46 -66
- package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.kb.func.spec.js +3 -5
- package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +19 -0
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.func.spec.js +0 -6
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.kb.func.spec.js +1 -9
- package/ds-shuttle-v2/globalcheckbox/DSShuttleV2.globalcheckbox.kb.func.spec.js +0 -2
- package/ds-shuttle-v2/items/DSShuttleV2.items.kb.func.spec.js +0 -2
- package/ds-shuttle-v2/skipped/DSShuttleV2.filter.axe-core.skipped.js +0 -2
- package/ds-slider-v2/DSSliderV2.axe-core.func.spec.js +14 -0
- package/ds-slider-v2/DSSliderV2.func.spec.js +18 -0
- package/ds-slider-v2/DSSliderV2.visual.spec.js +15 -0
- package/ds-slider-v2/DSSliderV2CO.js +12 -10
- package/ds-toast/DSToast.func.spec.js +2 -2
- package/ds-toast/DSToastCO.js +2 -2
- package/ds-toggle/DSToggle.func.spec.js +21 -18
- package/ds-toggle/DSToggle.visual.spec.js +56 -12
- package/package.json +119 -119
- package/ds-apppicker/DSAppPicker.smoke.spec.js +0 -52
- package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckbox.smoke.spec.js +0 -125
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.DateInput.visual.spec.js +0 -57
- package/ds-menu-button/DSMenuButton.axe-core.func.spec.js +0 -66
- /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.custom.attributes.spec.js +0 -0
- /package/ds-controlled-form/ds-controlled-date-time-picker/{date-time-picker → date-time-full}/DateTimePicker.func.spec.js +0 -0
- /package/ds-query-builder/{DSQueryBuilder.error-states.spec.js → DSQueryBuilder.error-states.func.spec.js} +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* eslint-disable max-statements */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
4
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
5
|
+
import DSDialog from '../../ds-dialog/DSDialogCO';
|
|
6
|
+
import DSCardV3CO from '../../ds-card-v3/DSCardV3CO';
|
|
7
|
+
|
|
8
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
9
|
+
describe('PUI-14645 - DSMenuButton:: Activable Menu Item: Basic Mouse - Func', () => {
|
|
10
|
+
before('loading page', async () => {
|
|
11
|
+
const errorOnGo = await DSMenuButtonCO.activableMenuItem.go();
|
|
12
|
+
if (errorOnGo) throw errorOnGo;
|
|
13
|
+
});
|
|
14
|
+
it('01: should trigger first menuItem with MOUSE and have a dialog', async () => {
|
|
15
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('Actions example');
|
|
16
|
+
await menuTrigger.click();
|
|
17
|
+
const menuItem1 = await DSMenuButtonCO.getMenuItemByID('1');
|
|
18
|
+
await menuItem1.click();
|
|
19
|
+
const triggeredDialog = DSDialog.getDialog();
|
|
20
|
+
await expect(triggeredDialog).toBeDisplayed();
|
|
21
|
+
});
|
|
22
|
+
it('02: should trigger third menuItem with MOUSE and have a card', async () => {
|
|
23
|
+
await browser.keys(Key.Escape); // Closes dialog
|
|
24
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('Actions example');
|
|
25
|
+
await menuTrigger.click();
|
|
26
|
+
const menuItem3 = await DSMenuButtonCO.getMenuItemByID('3');
|
|
27
|
+
await menuItem3.click();
|
|
28
|
+
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
29
|
+
await expect(triggeredCards).toEqual(2); // One card is already on this story containing the trigger (+1).
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
@@ -1,35 +1,10 @@
|
|
|
1
1
|
/* eslint-disable max-statements */
|
|
2
2
|
import { Key } from 'webdriverio';
|
|
3
3
|
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
4
|
-
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
5
4
|
import DSDialog from '../../ds-dialog/DSDialogCO';
|
|
6
5
|
import DSCardV3CO from '../../ds-card-v3/DSCardV3CO';
|
|
7
6
|
|
|
8
7
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
9
|
-
describe('PUI-14645 - DSMenuButton:: Activable Menu Item: Basic Mouse - Func', () => {
|
|
10
|
-
before('loading page', async () => {
|
|
11
|
-
const errorOnGo = await DSMenuButtonCO.activableMenuItem.go();
|
|
12
|
-
if (errorOnGo) throw errorOnGo;
|
|
13
|
-
});
|
|
14
|
-
it('01: should trigger first menuItem with MOUSE and have a dialog', async () => {
|
|
15
|
-
const menuTrigger = await DSButtonV3CO.getButton();
|
|
16
|
-
await menuTrigger.click();
|
|
17
|
-
const menuItem1 = await DSMenuButtonCO.getMenuItemByID('1');
|
|
18
|
-
await menuItem1.click();
|
|
19
|
-
const triggeredDialog = DSDialog.getDialog();
|
|
20
|
-
await expect(triggeredDialog).toBeDisplayed();
|
|
21
|
-
});
|
|
22
|
-
it('02: should trigger third menuItem with MOUSE and have a card', async () => {
|
|
23
|
-
await browser.keys(Key.Escape); // Closes dialog
|
|
24
|
-
const menuTrigger = await DSButtonV3CO.getButton();
|
|
25
|
-
await menuTrigger.click();
|
|
26
|
-
const menuItem3 = await DSMenuButtonCO.getMenuItemByID('3');
|
|
27
|
-
await menuItem3.click();
|
|
28
|
-
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
29
|
-
await expect(triggeredCards).toEqual(2); // One card is already on this story containing the trigger (+1).
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
|
|
33
8
|
describe('PUI-14646 - DSMenuButton:: Activable Menu Item: Basic Keyboard - Func', () => {
|
|
34
9
|
before('loading page', async () => {
|
|
35
10
|
const errorOnGo = await DSMenuButtonCO.activableMenuItem.go();
|
|
@@ -42,7 +17,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
42
17
|
await browser.keys(Key.ArrowDown);
|
|
43
18
|
await browser.keys(Key.ArrowDown); // Iterated the focustrap
|
|
44
19
|
await browser.keys(Key.Return);
|
|
45
|
-
const triggeredDialog = DSDialog.getDialog();
|
|
20
|
+
const triggeredDialog = await DSDialog.getDialog();
|
|
46
21
|
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
47
22
|
await expect(menu).not.toBeDisplayedInViewport();
|
|
48
23
|
await expect(triggeredDialog).toBeDisplayed();
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { axeCoreCheck } from '../../helpers';
|
|
2
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
3
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-14909 - DSMenuButton:: Disabled - AxeCore', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSMenuButtonCO.withDisabled.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: should have menu disabled items and pass axe-core scan', async () => {
|
|
12
|
+
const menuTrigger = await DSButtonV3CO.getButton();
|
|
13
|
+
await menuTrigger.click();
|
|
14
|
+
const menu = await DSMenuButtonCO.getMenuFloatingWrapperRoot();
|
|
15
|
+
await menu.waitForDisplayed();
|
|
16
|
+
const result = await axeCoreCheck();
|
|
17
|
+
expect(result.length).toBe(0);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
2
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
3
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-14910 - DSMenuButton:: Disabled - AxeCore', () => {
|
|
7
|
+
beforeEach('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSMenuButtonCO.withDisabled.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: should trigger a disabled menu item and not close the menu (no action triggered)', async () => {
|
|
12
|
+
const menuTrigger = await DSButtonV3CO.getButton();
|
|
13
|
+
await menuTrigger.click();
|
|
14
|
+
const disabledItem = await DSMenuButtonCO.getMenuItemByID('2');
|
|
15
|
+
await disabledItem.click();
|
|
16
|
+
const menu = await DSMenuButtonCO.getMenuFloatingWrapperRoot();
|
|
17
|
+
await expect(menu).toBeDisplayed();
|
|
18
|
+
});
|
|
19
|
+
it('02: should trigger a disabled menu item with KB and not close the menu (no action triggered)', async () => {
|
|
20
|
+
const menuTrigger = await DSButtonV3CO.getButton();
|
|
21
|
+
await menuTrigger.click();
|
|
22
|
+
await browser.keys(Key.ArrowDown);
|
|
23
|
+
await browser.keys(Key.Space);
|
|
24
|
+
const menu = await DSMenuButtonCO.getMenuFloatingWrapperRoot();
|
|
25
|
+
await expect(menu).toBeDisplayed();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { axeCoreCheck } from '../../helpers';
|
|
2
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
3
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-14911 - DSMenuButton:: Left decorations - AxeCore', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSMenuButtonCO.withLeftDecorations.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: should have menu with left decorators and pass axe-core scan', async () => {
|
|
12
|
+
const menuTrigger = await DSButtonV3CO.getButton();
|
|
13
|
+
await menuTrigger.click();
|
|
14
|
+
const menu = await DSMenuButtonCO.getMenuFloatingWrapperRoot();
|
|
15
|
+
await menu.waitForDisplayed();
|
|
16
|
+
const result = await axeCoreCheck();
|
|
17
|
+
expect(result.length).toBe(0);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { axeCoreCheck } from '../../helpers';
|
|
2
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
3
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-14642 - DSMenuButton:: Multi Select Menu Item - AxeCore', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSMenuButtonCO.multipleSelectMenuItem.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: should have untriggered menubutton and pass axe-core scan', async () => {
|
|
12
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('Multiple selection example');
|
|
13
|
+
await menuTrigger.waitForDisplayed();
|
|
14
|
+
const result = await axeCoreCheck({ selector: "[data-testid='ds-cardv3-root']" });
|
|
15
|
+
expect(result.length).toBe(0);
|
|
16
|
+
});
|
|
17
|
+
it('02: should have multi select menu with multiple opts selected and pass axe-core scan', async () => {
|
|
18
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('Multiple selection example');
|
|
19
|
+
await menuTrigger.click();
|
|
20
|
+
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
21
|
+
await menuItem1.click();
|
|
22
|
+
const menuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('2');
|
|
23
|
+
await menuItem2.click();
|
|
24
|
+
const result = await axeCoreCheck({ selector: "[data-testid='ds-cardv3-root']" });
|
|
25
|
+
expect(result.length).toBe(0);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* eslint-disable max-statements */
|
|
2
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
3
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
4
|
+
import DSCardV3CO from '../../ds-card-v3/DSCardV3CO';
|
|
5
|
+
|
|
6
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
7
|
+
describe('PUI-14647 - DSMenuButton:: Multi Select Menu Item: Mouse - Func', () => {
|
|
8
|
+
before('loading page', async () => {
|
|
9
|
+
const errorOnGo = await DSMenuButtonCO.multipleSelectMenuItem.go();
|
|
10
|
+
if (errorOnGo) throw errorOnGo;
|
|
11
|
+
});
|
|
12
|
+
it('01: should select two items with MOUSE and have two cards (as produced changes)', async () => {
|
|
13
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('Multiple selection example');
|
|
14
|
+
await menuTrigger.click();
|
|
15
|
+
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
16
|
+
await menuItem1.click();
|
|
17
|
+
const menuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('2');
|
|
18
|
+
await menuItem2.click();
|
|
19
|
+
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
20
|
+
await expect(triggeredCards).toEqual(3); // One card is already on this story containing the trigger (+1).
|
|
21
|
+
await expect(menuItem1).toHaveAttribute('aria-checked', 'true');
|
|
22
|
+
await expect(menuItem2).toHaveAttribute('aria-checked', 'true');
|
|
23
|
+
});
|
|
24
|
+
it('02: should deselect an item with MOUSE and have one less card (as produced changes)', async () => {
|
|
25
|
+
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
26
|
+
await menuItem1.click();
|
|
27
|
+
const menuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('2');
|
|
28
|
+
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
29
|
+
await expect(triggeredCards).toEqual(2); // One card is already on this story containing the trigger (+1).
|
|
30
|
+
await expect(menuItem1).toHaveAttribute('aria-checked', 'false');
|
|
31
|
+
await expect(menuItem2).toHaveAttribute('aria-checked', 'true');
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
}
|
|
@@ -1,38 +1,9 @@
|
|
|
1
1
|
/* eslint-disable max-statements */
|
|
2
2
|
import { Key } from 'webdriverio';
|
|
3
3
|
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
4
|
-
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
5
4
|
import DSCardV3CO from '../../ds-card-v3/DSCardV3CO';
|
|
6
5
|
|
|
7
6
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
8
|
-
describe('PUI-14647 - DSMenuButton:: Multi Select Menu Item: Mouse - Func', () => {
|
|
9
|
-
before('loading page', async () => {
|
|
10
|
-
const errorOnGo = await DSMenuButtonCO.multipleSelectMenuItem.go();
|
|
11
|
-
if (errorOnGo) throw errorOnGo;
|
|
12
|
-
});
|
|
13
|
-
it('01: should select two items with MOUSE and have two cards (as produced changes)', async () => {
|
|
14
|
-
const menuTrigger = await DSButtonV3CO.getButton();
|
|
15
|
-
await menuTrigger.click();
|
|
16
|
-
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
17
|
-
await menuItem1.click();
|
|
18
|
-
const menuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('2');
|
|
19
|
-
await menuItem2.click();
|
|
20
|
-
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
21
|
-
await expect(triggeredCards).toEqual(3); // One card is already on this story containing the trigger (+1).
|
|
22
|
-
await expect(menuItem1).toHaveAttribute('aria-checked', 'true');
|
|
23
|
-
await expect(menuItem2).toHaveAttribute('aria-checked', 'true');
|
|
24
|
-
});
|
|
25
|
-
it('02: should deselect an item with MOUSE and have one less card (as produced changes)', async () => {
|
|
26
|
-
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
27
|
-
await menuItem1.click();
|
|
28
|
-
const menuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('2');
|
|
29
|
-
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
30
|
-
await expect(triggeredCards).toEqual(2); // One card is already on this story containing the trigger (+1).
|
|
31
|
-
await expect(menuItem1).toHaveAttribute('aria-checked', 'false');
|
|
32
|
-
await expect(menuItem2).toHaveAttribute('aria-checked', 'true');
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
|
|
36
7
|
describe('PUI-14648 - DSMenuButton:: Multi Select Menu Item: Keyboard - Func', () => {
|
|
37
8
|
before('loading page', async () => {
|
|
38
9
|
const errorOnGo = await DSMenuButtonCO.multipleSelectMenuItem.go();
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { axeCoreCheck } from '../../helpers';
|
|
2
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
3
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-14643 - DSMenuButton:: Single Select Menu Item - AxeCore', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSMenuButtonCO.singleSelectMenuItem.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: should have single menu (unselected) and pass axe-core scan', async () => {
|
|
12
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('(multiple) Single selection example');
|
|
13
|
+
await menuTrigger.click();
|
|
14
|
+
const result = await axeCoreCheck({ selector: "[data-testid='ds-cardv3-root']" });
|
|
15
|
+
expect(result.length).toBe(0);
|
|
16
|
+
});
|
|
17
|
+
it('02: should have single menu (opt selected) and pass axe-core scan', async () => {
|
|
18
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('(multiple) Single selection example');
|
|
19
|
+
await menuTrigger.click();
|
|
20
|
+
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
21
|
+
await menuItem1.click();
|
|
22
|
+
const menuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('2');
|
|
23
|
+
await menuItem2.click();
|
|
24
|
+
const result = await axeCoreCheck({ selector: "[data-testid='ds-cardv3-root']" });
|
|
25
|
+
expect(result.length).toBe(0);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* eslint-disable max-statements */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
4
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
5
|
+
import DSCardV3CO from '../../ds-card-v3/DSCardV3CO';
|
|
6
|
+
|
|
7
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
8
|
+
describe('PUI-14650 - DSMenuButton:: Single Select Menu Item: Mouse - Func', () => {
|
|
9
|
+
before('loading page', async () => {
|
|
10
|
+
const errorOnGo = await DSMenuButtonCO.singleSelectMenuItem.go();
|
|
11
|
+
if (errorOnGo) throw errorOnGo;
|
|
12
|
+
});
|
|
13
|
+
it('01: should select two items with MOUSE and have only last opt selected', async () => {
|
|
14
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('(multiple) Single selection example');
|
|
15
|
+
await menuTrigger.click();
|
|
16
|
+
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
17
|
+
await menuItem1.click();
|
|
18
|
+
const menuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('2');
|
|
19
|
+
await menuItem2.click();
|
|
20
|
+
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
21
|
+
const cardActiveFromOption = await (await DSCardV3CO.getHByLevel(2)).getText();
|
|
22
|
+
await expect(triggeredCards).toEqual(2); // One card is already on this story containing the trigger (+1).
|
|
23
|
+
await expect(menuItem1).toHaveAttribute('aria-checked', 'false');
|
|
24
|
+
await expect(menuItem2).toHaveAttribute('aria-checked', 'true');
|
|
25
|
+
await expect(cardActiveFromOption).toBe('Option 2');
|
|
26
|
+
});
|
|
27
|
+
it('02: should be able to pick two single options from different sections with MOUSE', async () => {
|
|
28
|
+
const menuItem3 = await DSMenuButtonCO.getMenuItemOptByIndex('3');
|
|
29
|
+
await menuItem3.click();
|
|
30
|
+
const menuItem4 = await DSMenuButtonCO.getMenuItemOptByIndex('4');
|
|
31
|
+
await browser.keys(Key.ArrowDown);
|
|
32
|
+
await browser.keys(Key.Space);
|
|
33
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
34
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
35
|
+
await expect(menuItem3).toHaveAttribute('aria-checked', 'true');
|
|
36
|
+
await expect(menuItem4).toHaveAttribute('aria-checked', 'true');
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
@@ -1,42 +1,9 @@
|
|
|
1
1
|
/* eslint-disable max-statements */
|
|
2
2
|
import { Key } from 'webdriverio';
|
|
3
3
|
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
4
|
-
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
5
4
|
import DSCardV3CO from '../../ds-card-v3/DSCardV3CO';
|
|
6
5
|
|
|
7
6
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
8
|
-
describe('PUI-14650 - DSMenuButton:: Single Select Menu Item: Mouse - Func', () => {
|
|
9
|
-
before('loading page', async () => {
|
|
10
|
-
const errorOnGo = await DSMenuButtonCO.singleSelectMenuItem.go();
|
|
11
|
-
if (errorOnGo) throw errorOnGo;
|
|
12
|
-
});
|
|
13
|
-
it('01: should select two items with MOUSE and have only last opt selected', async () => {
|
|
14
|
-
const menuTrigger = await DSButtonV3CO.getButton();
|
|
15
|
-
await menuTrigger.click();
|
|
16
|
-
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
17
|
-
await menuItem1.click();
|
|
18
|
-
const menuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('2');
|
|
19
|
-
await menuItem2.click();
|
|
20
|
-
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
21
|
-
const cardActiveFromOption = await (await DSCardV3CO.getHByLevel(2)).getText();
|
|
22
|
-
await expect(triggeredCards).toEqual(2); // One card is already on this story containing the trigger (+1).
|
|
23
|
-
await expect(menuItem1).toHaveAttribute('aria-checked', 'false');
|
|
24
|
-
await expect(menuItem2).toHaveAttribute('aria-checked', 'true');
|
|
25
|
-
await expect(cardActiveFromOption).toBe('Option 2');
|
|
26
|
-
});
|
|
27
|
-
it('02: should be able to pick two single options from different sections with MOUSE', async () => {
|
|
28
|
-
const menuItem3 = await DSMenuButtonCO.getMenuItemOptByIndex('3');
|
|
29
|
-
await menuItem3.click();
|
|
30
|
-
const menuItem4 = await DSMenuButtonCO.getMenuItemOptByIndex('4');
|
|
31
|
-
await browser.keys(Key.ArrowDown);
|
|
32
|
-
await browser.keys(Key.Space);
|
|
33
|
-
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
34
|
-
await expect(menu).toBeDisplayedInViewport();
|
|
35
|
-
await expect(menuItem3).toHaveAttribute('aria-checked', 'true');
|
|
36
|
-
await expect(menuItem4).toHaveAttribute('aria-checked', 'true');
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
|
|
40
7
|
describe('PUI-14649 - DSMenuButton:: Single Select Menu Item: Keyboard - Func', () => {
|
|
41
8
|
before('loading page', async () => {
|
|
42
9
|
const errorOnGo = await DSMenuButtonCO.singleSelectMenuItem.go();
|
|
@@ -44,38 +11,40 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
44
11
|
});
|
|
45
12
|
it('01: should select two options with KEYBOARD (space) and have only last opt selected', async () => {
|
|
46
13
|
await browser.keys(Key.Tab);
|
|
47
|
-
await browser.keys(Key.
|
|
48
|
-
await
|
|
14
|
+
await browser.keys(Key.Enter);
|
|
15
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
16
|
+
await menu.waitForDisplayed();
|
|
49
17
|
await browser.keys(Key.ArrowDown);
|
|
50
18
|
await browser.keys(Key.Space);
|
|
51
19
|
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
52
20
|
const menuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('2');
|
|
53
21
|
const menuItem3 = await DSMenuButtonCO.getMenuItemOptByIndex('3');
|
|
54
|
-
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
55
|
-
const cardActiveFromOption = await (await DSCardV3CO.getHByLevel(2)).getText();
|
|
56
|
-
await expect(triggeredCards).toEqual(2); // One card is already on this story containing the trigger (+1).
|
|
57
22
|
await expect(menuItem1).toHaveAttribute('aria-checked', 'false');
|
|
58
23
|
await expect(menuItem2).toHaveAttribute('aria-checked', 'true');
|
|
59
24
|
await expect(menuItem3).toHaveAttribute('aria-checked', 'false');
|
|
25
|
+
const triggeredCards = await (await DSCardV3CO.getCards()).length;
|
|
26
|
+
const cardActiveFromOption = await (await DSCardV3CO.getHByLevel(2)).getText();
|
|
27
|
+
await expect(triggeredCards).toEqual(2); // One card is already on this story containing the trigger (+1).
|
|
60
28
|
await expect(cardActiveFromOption).toBe('Option 2');
|
|
61
29
|
});
|
|
62
30
|
it('02: should trigger option with KEYBOARD (return) and have only last opt selected (closed menu)', async () => {
|
|
63
|
-
await browser.keys(Key.
|
|
31
|
+
await browser.keys(Key.ArrowDown);
|
|
64
32
|
await browser.keys(Key.Return);
|
|
65
|
-
const triggeredCards = (await DSCardV3CO.getCards()).length;
|
|
33
|
+
const triggeredCards = await (await DSCardV3CO.getCards()).length;
|
|
66
34
|
const cardsActiveFromOption = await (await DSCardV3CO.getHByLevel(2)).getText();
|
|
67
35
|
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
68
36
|
await expect(menu).not.toBeDisplayedInViewport();
|
|
69
37
|
await expect(triggeredCards).toEqual(2); // One card is already on this story containing the trigger (+1).
|
|
70
|
-
await expect(cardsActiveFromOption).toBe('Option
|
|
38
|
+
await expect(cardsActiveFromOption).toBe('Option 3');
|
|
71
39
|
});
|
|
72
40
|
it('03: should be able to pick two single options from different sections with KEYBOARD', async () => {
|
|
73
|
-
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
74
41
|
await browser.keys(Key.Return);
|
|
42
|
+
await browser.keys(Key.Space);
|
|
75
43
|
await browser.keys(Key.ArrowDown);
|
|
76
44
|
await browser.keys(Key.ArrowDown);
|
|
77
45
|
await browser.keys(Key.ArrowDown);
|
|
78
46
|
await browser.keys(Key.Space);
|
|
47
|
+
const menuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1');
|
|
79
48
|
const menuItem4 = await DSMenuButtonCO.getMenuItemOptByIndex('4');
|
|
80
49
|
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
81
50
|
await expect(menu).toBeDisplayedInViewport();
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
2
|
+
import { axeCoreCheck } from '../../helpers';
|
|
3
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
4
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
5
|
+
|
|
6
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
7
|
+
describe('PUI-14644 - DSMenuButton:: Submenu Menu Item && Action Menu Item - AxeCore', () => {
|
|
8
|
+
before('loading page', async () => {
|
|
9
|
+
const errorOnGo = await DSMenuButtonCO.withSubmenuMenuItem.go();
|
|
10
|
+
if (errorOnGo) throw errorOnGo;
|
|
11
|
+
});
|
|
12
|
+
it('01: should have menu with submenus and action menu items and pass axe-core scan', async () => {
|
|
13
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('Submenus example');
|
|
14
|
+
await menuTrigger.click();
|
|
15
|
+
await browser.keys(Key.ArrowRight);
|
|
16
|
+
const result = await axeCoreCheck({ selector: "[data-testid='ds-cardv3-root']" });
|
|
17
|
+
expect(result.length).toBe(0);
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/* eslint-disable max-statements */
|
|
2
|
+
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
3
|
+
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
4
|
+
import DSDialog from '../../ds-dialog/DSDialogCO';
|
|
5
|
+
import { mouseOver } from '../../helpers';
|
|
6
|
+
|
|
7
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
8
|
+
describe('PUI-14651 - DSMenuButton:: Submenu Menu Item - Func', () => {
|
|
9
|
+
before('loading page', async () => {
|
|
10
|
+
const errorOnGo = await DSMenuButtonCO.withSubmenuMenuItem.go();
|
|
11
|
+
if (errorOnGo) throw errorOnGo;
|
|
12
|
+
});
|
|
13
|
+
it('01: should trigger menu and have first option focused first submenu expanded', async () => {
|
|
14
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('Submenus example');
|
|
15
|
+
await menuTrigger.click();
|
|
16
|
+
const subMenuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1.1');
|
|
17
|
+
const subMenuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('1.2');
|
|
18
|
+
const subMenuItem3 = await DSMenuButtonCO.getMenuItemOptByIndex('1.3');
|
|
19
|
+
await expect(subMenuItem1).toBeDisplayed();
|
|
20
|
+
await expect(subMenuItem2).toBeDisplayed();
|
|
21
|
+
await expect(subMenuItem3).toBeDisplayed();
|
|
22
|
+
});
|
|
23
|
+
it('02: should hover third option with MOUSE to have third submenu expanded', async () => {
|
|
24
|
+
const menuItem = await DSMenuButtonCO.getMenuItemOptByIndex('3');
|
|
25
|
+
await mouseOver(menuItem);
|
|
26
|
+
const subMenuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('3.1');
|
|
27
|
+
const subMenuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('3.2');
|
|
28
|
+
const subMenuItem3 = await DSMenuButtonCO.getMenuItemOptByIndex('3.3');
|
|
29
|
+
const subMenuItemPrevious = await DSMenuButtonCO.getMenuItemOptByIndex('1.1');
|
|
30
|
+
await expect(subMenuItemPrevious).not.toBeDisplayed();
|
|
31
|
+
await expect(subMenuItem1).toBeDisplayed();
|
|
32
|
+
await expect(subMenuItem2).toBeDisplayed();
|
|
33
|
+
await expect(subMenuItem3).toBeDisplayed();
|
|
34
|
+
});
|
|
35
|
+
it('03: should trigger a submenu action with mouse', async () => {
|
|
36
|
+
const subMenuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('3.1');
|
|
37
|
+
await subMenuItem2.click();
|
|
38
|
+
const triggeredDialog = DSDialog.getDialog();
|
|
39
|
+
await expect(triggeredDialog).toBeDisplayed();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
@@ -2,46 +2,9 @@
|
|
|
2
2
|
import { Key } from 'webdriverio';
|
|
3
3
|
import DSMenuButtonCO from '../DSMenuButtonCO';
|
|
4
4
|
import DSButtonV3CO from '../../ds-button-v3/DSButtonV3CO';
|
|
5
|
-
import DSDialog from '../../ds-dialog/DSDialogCO';
|
|
6
5
|
import DSCardV3CO from '../../ds-card-v3/DSCardV3CO';
|
|
7
|
-
import { mouseOver } from '../../helpers';
|
|
8
6
|
|
|
9
7
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
10
|
-
describe('PUI-14651 - DSMenuButton:: Submenu Menu Item - Func', () => {
|
|
11
|
-
before('loading page', async () => {
|
|
12
|
-
const errorOnGo = await DSMenuButtonCO.withSubmenuMenuItem.go();
|
|
13
|
-
if (errorOnGo) throw errorOnGo;
|
|
14
|
-
});
|
|
15
|
-
it('01: should trigger menu and have first option focused first submenu expanded', async () => {
|
|
16
|
-
const menuTrigger = await DSButtonV3CO.getButton();
|
|
17
|
-
await menuTrigger.click();
|
|
18
|
-
const subMenuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('1.1');
|
|
19
|
-
const subMenuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('1.2');
|
|
20
|
-
const subMenuItem3 = await DSMenuButtonCO.getMenuItemOptByIndex('1.3');
|
|
21
|
-
await expect(subMenuItem1).toBeDisplayed();
|
|
22
|
-
await expect(subMenuItem2).toBeDisplayed();
|
|
23
|
-
await expect(subMenuItem3).toBeDisplayed();
|
|
24
|
-
});
|
|
25
|
-
it('02: should hover third option with MOUSE to have third submenu expanded', async () => {
|
|
26
|
-
const menuItem = await DSMenuButtonCO.getMenuItemOptByIndex('3');
|
|
27
|
-
await mouseOver(menuItem);
|
|
28
|
-
const subMenuItem1 = await DSMenuButtonCO.getMenuItemOptByIndex('3.1');
|
|
29
|
-
const subMenuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('3.2');
|
|
30
|
-
const subMenuItem3 = await DSMenuButtonCO.getMenuItemOptByIndex('3.3');
|
|
31
|
-
const subMenuItemPrevious = await DSMenuButtonCO.getMenuItemOptByIndex('1.1');
|
|
32
|
-
await expect(subMenuItemPrevious).not.toBeDisplayed();
|
|
33
|
-
await expect(subMenuItem1).toBeDisplayed();
|
|
34
|
-
await expect(subMenuItem2).toBeDisplayed();
|
|
35
|
-
await expect(subMenuItem3).toBeDisplayed();
|
|
36
|
-
});
|
|
37
|
-
it('03: should trigger a submenu action with mouse', async () => {
|
|
38
|
-
const subMenuItem2 = await DSMenuButtonCO.getMenuItemOptByIndex('3.1');
|
|
39
|
-
await subMenuItem2.click();
|
|
40
|
-
const triggeredDialog = DSDialog.getDialog();
|
|
41
|
-
await expect(triggeredDialog).toBeDisplayed();
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
|
|
45
8
|
describe('PUI-14652 - DSMenuButton:: Submenu Menu Item: Keyboard - Func', () => {
|
|
46
9
|
before('loading page', async () => {
|
|
47
10
|
const errorOnGo = await DSMenuButtonCO.withSubmenuMenuItem.go();
|
|
@@ -80,7 +43,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
80
43
|
beforeEach('loading page', async () => {
|
|
81
44
|
const errorOnGo = await DSMenuButtonCO.withSubmenuMenuItem.go();
|
|
82
45
|
if (errorOnGo) throw errorOnGo;
|
|
83
|
-
const menuTrigger = await DSButtonV3CO.
|
|
46
|
+
const menuTrigger = await DSButtonV3CO.getButtonByLabel('Submenus example');
|
|
84
47
|
await menuTrigger.waitForDisplayed();
|
|
85
48
|
await browser.keys(Key.Tab);
|
|
86
49
|
await browser.keys(Key.Return);
|
|
@@ -14,6 +14,8 @@ export default class DSMenuItemsCO extends PageObject {
|
|
|
14
14
|
|
|
15
15
|
static applyAriaDisabled = new Urlbuilder(PATH_E2E_MENU_ITEMS, 'apply-aria-disabled-test');
|
|
16
16
|
|
|
17
|
+
static readOnly = new Urlbuilder(PATH_E2E_MENU_ITEMS, 'read-only-test');
|
|
18
|
+
|
|
17
19
|
static async getMenuItemsWrapper() {
|
|
18
20
|
return $('[data-testid="menu-items-wrapper"]');
|
|
19
21
|
}
|
|
@@ -20,7 +20,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
20
20
|
await browser.eyesOpen();
|
|
21
21
|
await browser.keys(Key.ArrowDown);
|
|
22
22
|
await browser.keys(Key.ArrowDown);
|
|
23
|
-
await browser.keys(Key.
|
|
23
|
+
await browser.keys(Key.Space);
|
|
24
24
|
const snapshot = await browser.eyesCheckSnapshot(
|
|
25
25
|
DSMenuItems.snapshotPath('ds-menu-items-single-aria-disabled-kb-nav'),
|
|
26
26
|
);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/* eslint-disable wdio/no-pause */
|
|
2
|
+
import { axeCoreCheck } from '../../helpers';
|
|
3
|
+
import DSMenuItems from '../DSMenuItemsCO';
|
|
4
|
+
|
|
5
|
+
if (
|
|
6
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
7
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
8
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
9
|
+
browser.capabilities.browserName === 'Chrome'
|
|
10
|
+
) {
|
|
11
|
+
describe('PUI-15352 - [MenuItems] readOnly prop - axe-core test', () => {
|
|
12
|
+
before('loading page', async () => {
|
|
13
|
+
const errorOnGo = await DSMenuItems.readOnly.go();
|
|
14
|
+
if (errorOnGo) throw errorOnGo;
|
|
15
|
+
});
|
|
16
|
+
it('01: should display single menu items with readOnly focused and pass axecore test', async () => {
|
|
17
|
+
const menuItem2 = await DSMenuItems.getMenuItem('2');
|
|
18
|
+
await menuItem2.click();
|
|
19
|
+
const result = await axeCoreCheck();
|
|
20
|
+
expect(result.length).toBe(0);
|
|
21
|
+
});
|
|
22
|
+
it('02: should display action menu items with readOnly focused and pass axecore test', async () => {
|
|
23
|
+
const menuItem6 = await DSMenuItems.getMenuItem('6');
|
|
24
|
+
await menuItem6.click();
|
|
25
|
+
const result = await axeCoreCheck();
|
|
26
|
+
expect(result.length).toBe(0);
|
|
27
|
+
});
|
|
28
|
+
it('03: should display multi menu items with readOnly focused and pass axecore test', async () => {
|
|
29
|
+
const menuItem10 = await DSMenuItems.getMenuItem('10');
|
|
30
|
+
await menuItem10.click();
|
|
31
|
+
const result = await axeCoreCheck();
|
|
32
|
+
expect(result.length).toBe(0);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
}
|