dimsum-e2e-tests 3.50.1-next.9 → 3.51.0-beta.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 +268 -310
- package/ds-autocomplete/DSAutocompleteCO.js +1 -1
- 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 +17 -1
- 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 +2 -2
- 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 +0 -9
- 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-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 -0
- package/ds-controlled-form/ds-controlled-inputgroup/autocomplete/DSControlledInputGroup.autocomplete.axe-core.func.spec.js +1 -0
- package/ds-controlled-form/ds-controlled-inputgroup/combobox/DSControlledInputGroup.combobox.axe-core.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +4 -4
- 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 +36 -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/react-hook-form/ReactHook.visual.spec.js +1 -0
- package/ds-data-table-async/DSDataTable.smoke.spec.js +4 -0
- package/ds-data-table-async/basic/DSDataTable.basic.axe-core.func.spec.js +1 -1
- 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/HeaderCO.js +1 -1
- package/ds-data-table-async/components/RowCO.js +4 -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/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/vissibility/DSDataTable.vissibility.visual.spec.js +6 -0
- package/ds-dialog/DSDialog.func.spec.js +14 -14
- package/ds-dialog/DSDialogCO.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-form-combobox-multi/DSComboboxMultiCO.js +2 -9
- 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 +26 -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-single/DSComboboxSingleCO.js +2 -9
- package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.axe-core.func.spec.js +26 -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-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +9 -5
- 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-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 +0 -5
- package/ds-shuttle-v2/DSShuttleV2CO.js +2 -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/filtering/DSShuttleV2.filter.kb.func.spec.js +1 -7
- 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-slider-v2/DSSliderV2CO.js +10 -10
- package/ds-toast/DSToastCO.js +1 -1
- 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-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
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable max-statements */
|
|
1
2
|
/* eslint-disable max-len */
|
|
2
3
|
import { Key } from 'webdriverio';
|
|
3
4
|
import DSDataTableCO from '../DSDataTableCO';
|
|
@@ -60,19 +61,24 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
60
61
|
it('should display two row of pills and the pagination correctly rendered', async () => {
|
|
61
62
|
await browser.eyesOpen();
|
|
62
63
|
await FiltersCO.openFilterPopperByColumnName('id', 0);
|
|
64
|
+
await browser.keys(Key.ArrowDown);
|
|
63
65
|
await browser.keys(Key.Return);
|
|
64
66
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
67
|
+
await browser.keys(Key.ArrowDown);
|
|
65
68
|
await browser.keys(Key.Return);
|
|
66
69
|
await FiltersCO.openFilterPopperByColumnName('position', 0);
|
|
67
70
|
await browser.keys(Key.ArrowDown);
|
|
71
|
+
await browser.keys(Key.ArrowDown);
|
|
68
72
|
await browser.keys(Key.Return);
|
|
69
73
|
await browser.keys(Key.ArrowDown);
|
|
70
74
|
await browser.keys(Key.Return);
|
|
71
75
|
await browser.keys(Key.ArrowDown);
|
|
72
76
|
await browser.keys(Key.Return);
|
|
73
77
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
78
|
+
await browser.keys(Key.ArrowDown);
|
|
74
79
|
await browser.keys(Key.Return);
|
|
75
80
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
81
|
+
await browser.keys(Key.ArrowDown);
|
|
76
82
|
await browser.keys(Key.Return);
|
|
77
83
|
const checkSnap = await browser.eyesCheckSnapshot(await DSDataTableCO.snapshotPath('datatable-double-pill-row'));
|
|
78
84
|
await expect(checkSnap).toEqual(0);
|
|
@@ -9,17 +9,17 @@ import { type } from '../helpers';
|
|
|
9
9
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
10
10
|
describe('PUI-7874 - DSDialog, Manage focus after close -func', () => {
|
|
11
11
|
before('loading page', async () => {
|
|
12
|
-
const errorOnGo = await DSDialogCO.
|
|
12
|
+
const errorOnGo = await DSDialogCO.basicURL.go();
|
|
13
13
|
if (errorOnGo) throw errorOnGo;
|
|
14
14
|
});
|
|
15
|
-
it('should open the dialog after clicking the trigger', async () => {
|
|
15
|
+
it('01: should open the dialog after clicking the trigger', async () => {
|
|
16
16
|
const triggerBtn = await DSDialogCO.getTriggerBtn();
|
|
17
17
|
await triggerBtn.click();
|
|
18
18
|
const dialog = await DSDialogCO.getDialog();
|
|
19
19
|
await dialog.waitForDisplayed();
|
|
20
20
|
await expect(dialog).toBeDisplayedInViewport();
|
|
21
21
|
});
|
|
22
|
-
it('should focus the trigger after closing the dialog', async () => {
|
|
22
|
+
it('02: should focus the trigger after closing the dialog', async () => {
|
|
23
23
|
const closeBtn = await DSDialogCO.getCloseBtn();
|
|
24
24
|
await closeBtn.click();
|
|
25
25
|
const triggerBtn = await DSDialogCO.getTriggerBtn();
|
|
@@ -31,14 +31,14 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
31
31
|
const errorOnGo = await DSDialogCO.removeFocusURL.go();
|
|
32
32
|
if (errorOnGo) throw errorOnGo;
|
|
33
33
|
});
|
|
34
|
-
it('should open the dialog after clicking the trigger', async () => {
|
|
34
|
+
it('01: should open the dialog after clicking the trigger', async () => {
|
|
35
35
|
const triggerBtn = await DSDialogCO.getTriggerBtn();
|
|
36
36
|
await triggerBtn.click();
|
|
37
37
|
const dialog = await DSDialogCO.getDialog();
|
|
38
38
|
await dialog.waitForDisplayed();
|
|
39
39
|
await expect(dialog).toBeDisplayedInViewport();
|
|
40
40
|
});
|
|
41
|
-
it('should focus the first form input on the dialog and not the container', async () => {
|
|
41
|
+
it('02: should focus the first form input on the dialog and not the container', async () => {
|
|
42
42
|
const firstInput = await DialogFormsCO.getFormInputByIndex(0);
|
|
43
43
|
await expect(firstInput).toBeFocused();
|
|
44
44
|
});
|
|
@@ -48,7 +48,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
48
48
|
const errorOnGo = await DSDialogCO.accesibleForm.go();
|
|
49
49
|
if (errorOnGo) throw errorOnGo;
|
|
50
50
|
});
|
|
51
|
-
it('should open the dialog after clicking the trigger and focus on the first input', async () => {
|
|
51
|
+
it('01: should open the dialog after clicking the trigger and focus on the first input', async () => {
|
|
52
52
|
const triggerBtn = await DSDialogCO.getTriggerBtn();
|
|
53
53
|
await triggerBtn.click();
|
|
54
54
|
const dialog = await DSDialogCO.getDialog();
|
|
@@ -57,32 +57,32 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
57
57
|
const firstInput = await DialogFormsCO.getFormInputByIndex(0);
|
|
58
58
|
await expect(firstInput).toBeFocused();
|
|
59
59
|
});
|
|
60
|
-
it('should focus the fisrst checkbox and mark it as checked', async () => {
|
|
60
|
+
it('02: should focus the fisrst checkbox and mark it as checked', async () => {
|
|
61
61
|
await browser.keys(Key.Tab);
|
|
62
62
|
await browser.keys(Key.Space);
|
|
63
63
|
const firstCheckbox = await $('[id="id3"]');
|
|
64
64
|
await expect(firstCheckbox).toBeFocused();
|
|
65
65
|
});
|
|
66
|
-
it('should focus the first toggle button', async () => {
|
|
66
|
+
it('03: should focus the first toggle button', async () => {
|
|
67
67
|
await browser.keys(Key.Tab);
|
|
68
68
|
await browser.keys(Key.Tab);
|
|
69
69
|
const firstToggle = await $('[id="unique_id_1"]');
|
|
70
70
|
await expect(firstToggle).toBeFocused();
|
|
71
71
|
});
|
|
72
|
-
it('should focus the Apply button', async () => {
|
|
72
|
+
it('04: should focus the Apply button', async () => {
|
|
73
73
|
await browser.keys(Key.Tab);
|
|
74
74
|
await browser.keys(Key.Tab);
|
|
75
75
|
await browser.keys(Key.Tab);
|
|
76
76
|
const applyButton = await DSDialogCO.getApplyBtn();
|
|
77
77
|
await expect(applyButton).toBeFocused();
|
|
78
78
|
});
|
|
79
|
-
it('should loop and focus the first input again', async () => {
|
|
79
|
+
it('05: should loop and focus the first input again', async () => {
|
|
80
80
|
await browser.keys(Key.Tab);
|
|
81
81
|
await browser.keys(Key.Tab);
|
|
82
82
|
const firstInput = await DialogFormsCO.getFormInputByIndex(0);
|
|
83
83
|
await expect(firstInput).toBeFocused();
|
|
84
84
|
});
|
|
85
|
-
it('should go back to focus the close button', async () => {
|
|
85
|
+
it('06: should go back to focus the close button', async () => {
|
|
86
86
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
87
87
|
const firstInput = await DSDialogCO.getCloseBtn();
|
|
88
88
|
await expect(firstInput).toBeFocused();
|
|
@@ -93,16 +93,16 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
93
93
|
const errorOnGo = await DSDialogCO.basicURL.go();
|
|
94
94
|
if (errorOnGo) throw errorOnGo;
|
|
95
95
|
});
|
|
96
|
-
it('should open the dialog after clicking the trigger', async () => {
|
|
96
|
+
it('01: should open the dialog after clicking the trigger', async () => {
|
|
97
97
|
const triggerBtn = await DSDialogCO.getTriggerBtn();
|
|
98
98
|
await triggerBtn.click();
|
|
99
99
|
const dialog = await DSDialogCO.getDialog();
|
|
100
100
|
await dialog.waitForDisplayed();
|
|
101
101
|
await expect(dialog).toBeDisplayedInViewport();
|
|
102
102
|
});
|
|
103
|
-
it('should press tab 7 times and still be within the dialog', async () => {
|
|
103
|
+
it('02: should press tab 7 times and still be within the dialog', async () => {
|
|
104
104
|
// eslint-disable-next-line no-plusplus
|
|
105
|
-
for (let i = 0; i <
|
|
105
|
+
for (let i = 0; i < 6; i++) await browser.keys(Key.Tab);
|
|
106
106
|
const closeBtn = await DSDialogCO.getCloseBtn();
|
|
107
107
|
await expect(closeBtn).toBeFocused();
|
|
108
108
|
});
|
package/ds-dialog/DSDialogCO.js
CHANGED
|
@@ -4,7 +4,7 @@ import { PATH_DIALOG_EXAMPLES, PATH_E2E_DIALOG } from '../../environments/storyb
|
|
|
4
4
|
import { PageObject, Urlbuilder } from '../helpers';
|
|
5
5
|
|
|
6
6
|
export default class DSDialog extends PageObject {
|
|
7
|
-
static basicURL = new Urlbuilder(
|
|
7
|
+
static basicURL = new Urlbuilder(PATH_E2E_DIALOG, 'basic');
|
|
8
8
|
|
|
9
9
|
static centeredURL = new Urlbuilder(PATH_DIALOG_EXAMPLES, 'centered');
|
|
10
10
|
|
|
@@ -16,6 +16,8 @@ if (
|
|
|
16
16
|
it('01: should display a loading indicator when ddmenu is triggered', async () => {
|
|
17
17
|
const ddMenuTrigger = await DSDDMenuV2CO.getDropDownTrigger();
|
|
18
18
|
await ddMenuTrigger.click();
|
|
19
|
+
const loadingWrapper = await DSDDMenuV2CO.getLoadingWrapper();
|
|
20
|
+
await loadingWrapper.waitForDisplayed();
|
|
19
21
|
const result = await axeCoreCheck();
|
|
20
22
|
expect(result.length).toBe(0);
|
|
21
23
|
});
|
|
@@ -37,7 +37,11 @@ export default class DSDropdownMenu extends PageObject {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
static async getEmptyState() {
|
|
40
|
-
return $('[data-testid="ds-
|
|
40
|
+
return $('[data-testid="ds-dropdownmenu-empty-state-wrapper"]');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static async getLoadingWrapper() {
|
|
44
|
+
return $('[data-testid="dropdown-menu-loading-wrapper"]');
|
|
41
45
|
}
|
|
42
46
|
|
|
43
47
|
static async getOptions() {
|
|
@@ -61,7 +65,7 @@ export default class DSDropdownMenu extends PageObject {
|
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
static async getMenuItemLabel(label) {
|
|
64
|
-
return $(`//div[@data-testid="ds-
|
|
68
|
+
return $(`//div[@data-testid="ds-menuitem-menu-item-content-wrapper"]//span[contains(text(), "${label}")]`);
|
|
65
69
|
}
|
|
66
70
|
|
|
67
71
|
static async getCustomDataTestId(datatestid) {
|
|
@@ -6,6 +6,8 @@ export default class DSComboboxMultiCO extends PageObject {
|
|
|
6
6
|
// STORIES
|
|
7
7
|
static applyAriaDisabled = new Urlbuilder(PATH_E2E_COMBOBOX_MULTI, 'apply-aria-disabled-test');
|
|
8
8
|
|
|
9
|
+
static readOnly = new Urlbuilder(PATH_E2E_COMBOBOX_MULTI, 'read-only-test');
|
|
10
|
+
|
|
9
11
|
// COMBOBOX - INPUT
|
|
10
12
|
static async getCombobox() {
|
|
11
13
|
return $('[data-testid="combobox-container"]');
|
|
@@ -43,15 +45,6 @@ export default class DSComboboxMultiCO extends PageObject {
|
|
|
43
45
|
return $('[data-testid="combobox-ally-selected-values"]');
|
|
44
46
|
}
|
|
45
47
|
|
|
46
|
-
// MENU
|
|
47
|
-
static async getSelectAllCheckbox() {
|
|
48
|
-
return $('#select-all-checkbox');
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static async getSelectedOptionsToggle() {
|
|
52
|
-
return $('[data-testid="combobox-selected-options-toggle"]');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
48
|
static async getMenuList() {
|
|
56
49
|
return $('[data-testid="combobox-menu-list"]');
|
|
57
50
|
}
|
|
@@ -23,23 +23,14 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
23
23
|
await browser.keys(Key.Enter);
|
|
24
24
|
await browser.keys(Key.ArrowDown);
|
|
25
25
|
await browser.keys(Key.ArrowDown);
|
|
26
|
+
await browser.keys(Key.ArrowDown);
|
|
26
27
|
await browser.keys(Key.Enter);
|
|
27
28
|
const snapshot = await browser.eyesCheckSnapshot(
|
|
28
29
|
DSComboboxMultiCO.snapshotPath('combobox-multi-aria-disabled-options-kb-nav'),
|
|
29
30
|
);
|
|
30
31
|
await expect(snapshot).toEqual(0);
|
|
31
32
|
});
|
|
32
|
-
|
|
33
|
-
it('03: After select-all, only enabled options are selected; pre-selected disabled/aria-disabled retain selection', async () => {
|
|
34
|
-
await browser.eyesOpen();
|
|
35
|
-
const selectAllBtn = await DSComboboxMultiCO.getSelectAllCheckbox();
|
|
36
|
-
await selectAllBtn.click();
|
|
37
|
-
const snapshot = await browser.eyesCheckSnapshot(
|
|
38
|
-
DSComboboxMultiCO.snapshotPath('combobox-multi-aria-disabled-select-all-kb-nav'),
|
|
39
|
-
);
|
|
40
|
-
await expect(snapshot).toEqual(0);
|
|
41
|
-
});
|
|
42
|
-
it('04: first aria-disabled combobox should be focused', async () => {
|
|
33
|
+
it('03: first aria-disabled combobox should be focused', async () => {
|
|
43
34
|
await browser.eyesOpen();
|
|
44
35
|
await browser.keys(Key.Escape);
|
|
45
36
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
3
|
+
import { axeCoreCheck } from '../../helpers';
|
|
4
|
+
|
|
5
|
+
if (
|
|
6
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
7
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
8
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
9
|
+
browser.capabilities.browserName === 'Chrome'
|
|
10
|
+
) {
|
|
11
|
+
describe('PUI-15028 - ComboboxMulti:: readOnly - axe-core test', () => {
|
|
12
|
+
before('loading page', async () => {
|
|
13
|
+
const errorOnGo = await DSComboboxMultiCO.readOnly.go();
|
|
14
|
+
if (errorOnGo) throw errorOnGo;
|
|
15
|
+
});
|
|
16
|
+
// eslint-disable-next-line max-len
|
|
17
|
+
it('01: should display a combobox multi with readOnly and pass axe-core scan', async () => {
|
|
18
|
+
const combobox = await DSComboboxMultiCO.getCombobox();
|
|
19
|
+
await combobox.click();
|
|
20
|
+
const menuList = await DSComboboxMultiCO.getMenuList();
|
|
21
|
+
await menuList.waitForDisplayed();
|
|
22
|
+
const result = await axeCoreCheck();
|
|
23
|
+
await expect(result.length).toBe(0);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-15098 - ComboboxMulti:: readOnly - keyboard nav', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxMultiCO.readOnly.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: combobox multi readOnly should be focused - Tab', async () => {
|
|
12
|
+
await browser.keys(Key.Tab);
|
|
13
|
+
const combobox = await DSComboboxMultiCO.getComboboxInput();
|
|
14
|
+
await expect(combobox).toBeFocused();
|
|
15
|
+
});
|
|
16
|
+
it('02: menu should not be opened - Enter', async () => {
|
|
17
|
+
await browser.keys(Key.Enter);
|
|
18
|
+
await expect(await DSComboboxMultiCO.getMenuList()).not.toBeDisplayed();
|
|
19
|
+
});
|
|
20
|
+
it('03: menu should not be opened and typed text not displayed - any key', async () => {
|
|
21
|
+
await browser.keys('this is a test');
|
|
22
|
+
await expect(await DSComboboxMultiCO.getMenuList()).not.toBeDisplayed();
|
|
23
|
+
const input = await (await DSComboboxMultiCO.getComboboxInput()).getText();
|
|
24
|
+
await expect(input).toBe('');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSComboboxMultiCO from '../DSComboboxMultiCO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-15026 - ComboboxMulti:: readOnly prop - visual', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxMultiCO.readOnly.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: readOnly combobox multi - default', async () => {
|
|
12
|
+
await browser.eyesOpen();
|
|
13
|
+
const snapshot = await browser.eyesCheckSnapshot(DSComboboxMultiCO.snapshotPath('combobox-multi-readOnly'));
|
|
14
|
+
await expect(snapshot).toEqual(0);
|
|
15
|
+
});
|
|
16
|
+
it('02: readOnly combobox multi option selected focused', async () => {
|
|
17
|
+
await browser.eyesOpen();
|
|
18
|
+
await browser.keys(Key.Tab);
|
|
19
|
+
const snapshot = await browser.eyesCheckSnapshot(
|
|
20
|
+
DSComboboxMultiCO.snapshotPath('combobox-multi-readOnly-focused'),
|
|
21
|
+
);
|
|
22
|
+
await expect(snapshot).toEqual(0);
|
|
23
|
+
});
|
|
24
|
+
it('03: readOnly combobox multi after typing', async () => {
|
|
25
|
+
await browser.eyesOpen();
|
|
26
|
+
await browser.keys('this is a test');
|
|
27
|
+
const snapshot = await browser.eyesCheckSnapshot(
|
|
28
|
+
DSComboboxMultiCO.snapshotPath('combobox-multi-readOnly-after-typing'),
|
|
29
|
+
);
|
|
30
|
+
await expect(snapshot).toEqual(0);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
@@ -6,6 +6,8 @@ export default class DSComboboxSingleCO extends PageObject {
|
|
|
6
6
|
// STORIES
|
|
7
7
|
static applyAriaDisabled = new Urlbuilder(PATH_E2E_COMBOBOX_SINGLE, 'apply-aria-disabled-test');
|
|
8
8
|
|
|
9
|
+
static readOnly = new Urlbuilder(PATH_E2E_COMBOBOX_SINGLE, 'read-only-test');
|
|
10
|
+
|
|
9
11
|
// COMBOBOX - INPUT
|
|
10
12
|
static async getCombobox() {
|
|
11
13
|
return $('[data-testid="combobox-container"]');
|
|
@@ -43,15 +45,6 @@ export default class DSComboboxSingleCO extends PageObject {
|
|
|
43
45
|
return $('[data-testid="combobox-ally-selected-values"]');
|
|
44
46
|
}
|
|
45
47
|
|
|
46
|
-
// MENU
|
|
47
|
-
static async getSelectAllCheckbox() {
|
|
48
|
-
return $('#select-all-checkbox');
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static async getSelectedOptionsToggle() {
|
|
52
|
-
return $('[data-testid="combobox-selected-options-toggle"]');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
48
|
static async getMenuList() {
|
|
56
49
|
return $('[data-testid="combobox-menu-list"]');
|
|
57
50
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
3
|
+
import { axeCoreCheck } from '../../helpers';
|
|
4
|
+
|
|
5
|
+
if (
|
|
6
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
7
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
8
|
+
browser.capabilities.browserName === 'chrome') ||
|
|
9
|
+
browser.capabilities.browserName === 'Chrome'
|
|
10
|
+
) {
|
|
11
|
+
describe('PUI-15030 - ComboboxSingle:: readOnly - axe-core test', () => {
|
|
12
|
+
before('loading page', async () => {
|
|
13
|
+
const errorOnGo = await DSComboboxSingleCO.readOnly.go();
|
|
14
|
+
if (errorOnGo) throw errorOnGo;
|
|
15
|
+
});
|
|
16
|
+
// eslint-disable-next-line max-len
|
|
17
|
+
it('01: should display a combobox single with readOnly and pass axe-core scan', async () => {
|
|
18
|
+
const combobox = await DSComboboxSingleCO.getCombobox();
|
|
19
|
+
await combobox.click();
|
|
20
|
+
const menuList = await DSComboboxSingleCO.getMenuList();
|
|
21
|
+
await menuList.waitForDisplayed();
|
|
22
|
+
const result = await axeCoreCheck();
|
|
23
|
+
await expect(result.length).toBe(0);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
package/ds-form-combobox-single/read-only/DSComboboxSingle.read-only.keyboard-nav.func.spec.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-15097 - ComboboxSingle:: readOnly - keyboard nav', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxSingleCO.readOnly.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: combobox single readOnly should be focused - Tab', async () => {
|
|
12
|
+
await browser.keys(Key.Tab);
|
|
13
|
+
const combobox = await DSComboboxSingleCO.getComboboxInput();
|
|
14
|
+
await expect(combobox).toBeFocused();
|
|
15
|
+
});
|
|
16
|
+
it('02: menu should not be opened - Enter', async () => {
|
|
17
|
+
await browser.keys(Key.Enter);
|
|
18
|
+
await expect(await DSComboboxSingleCO.getMenuList()).not.toBeDisplayed();
|
|
19
|
+
});
|
|
20
|
+
it('03: menu should not be opened and typed text not displayed - any key', async () => {
|
|
21
|
+
await browser.keys('this is a test');
|
|
22
|
+
await expect(await DSComboboxSingleCO.getMenuList()).not.toBeDisplayed();
|
|
23
|
+
const input = await (await DSComboboxSingleCO.getComboboxInput()).getText();
|
|
24
|
+
await expect(input).toBe('');
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSComboboxSingleCO from '../DSComboboxSingleCO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-15029 - ComboboxSingle:: readOnly prop - visual', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSComboboxSingleCO.readOnly.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: readOnly combobox single - default', async () => {
|
|
12
|
+
await browser.eyesOpen();
|
|
13
|
+
const snapshot = await browser.eyesCheckSnapshot(DSComboboxSingleCO.snapshotPath('combobox-single-readOnly'));
|
|
14
|
+
await expect(snapshot).toEqual(0);
|
|
15
|
+
});
|
|
16
|
+
it('02: readOnly combobox single focused', async () => {
|
|
17
|
+
await browser.eyesOpen();
|
|
18
|
+
await browser.keys(Key.Tab);
|
|
19
|
+
const snapshot = await browser.eyesCheckSnapshot(
|
|
20
|
+
DSComboboxSingleCO.snapshotPath('combobox-single-readOnly-focused'),
|
|
21
|
+
);
|
|
22
|
+
await expect(snapshot).toEqual(0);
|
|
23
|
+
});
|
|
24
|
+
it('03: readOnly combobox - after typing', async () => {
|
|
25
|
+
await browser.eyesOpen();
|
|
26
|
+
await browser.keys('this is a test');
|
|
27
|
+
const snapshot = await browser.eyesCheckSnapshot(
|
|
28
|
+
DSComboboxSingleCO.snapshotPath('combobox-single-readOnly-after-typing'),
|
|
29
|
+
);
|
|
30
|
+
await expect(snapshot).toEqual(0);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
@@ -85,23 +85,27 @@ export default class DSFormLayoutBlockItemCO extends PageObject {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
static async getErrorMessages() {
|
|
88
|
-
return $$('[data-testid="ds-
|
|
88
|
+
return $$('[data-testid="ds-formlayoutblockitem-error-message"]');
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
static async getErrorMessage() {
|
|
92
|
-
return $('[data-testid="ds-
|
|
92
|
+
return $('[data-testid="ds-formlayoutblockitem-error-message"]');
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
static async getFeedbackMessage() {
|
|
96
|
+
return $('[data-testid="ds-form-layout-block-item-message"]');
|
|
93
97
|
}
|
|
94
98
|
|
|
95
99
|
static async getBlockContainersByIndex(index = 0) {
|
|
96
|
-
return $$('[data-testid="ds-
|
|
100
|
+
return $$('[data-testid="ds-formlayoutblockitem-container"]')[index];
|
|
97
101
|
}
|
|
98
102
|
|
|
99
103
|
static async getErrorMessageByParent(parent) {
|
|
100
|
-
return parent.$('[data-testid="ds-
|
|
104
|
+
return parent.$('[data-testid="ds-formlayoutblockitem-error-message"]');
|
|
101
105
|
}
|
|
102
106
|
|
|
103
107
|
static async getErrorMessagesByIndex(index = 0) {
|
|
104
|
-
return $$('[data-testid="ds-
|
|
108
|
+
return $$('[data-testid="ds-formlayoutblockitem-error-message"]')[index];
|
|
105
109
|
}
|
|
106
110
|
|
|
107
111
|
static async getByTestId(name) {
|
package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroup.visual.spec.js
CHANGED
|
@@ -5,7 +5,7 @@ describe('PUI-7010 - DSFormLayoutCheckboxGroup: Directions - visual test', () =>
|
|
|
5
5
|
const errorOnGo = await DSFormLayoutCheckboxGroupCO.directionURL.go();
|
|
6
6
|
if (errorOnGo) throw errorOnGo;
|
|
7
7
|
});
|
|
8
|
-
it('should display checkbox group horizontal and vertical', async () => {
|
|
8
|
+
it('01: should display checkbox group horizontal and vertical', async () => {
|
|
9
9
|
await (await DSFormLayoutCheckboxGroupCO.checkboxLabel('Pepper')).waitForDisplayed();
|
|
10
10
|
const snapshot = await browser.checkSnapshot(DSFormLayoutCheckboxGroupCO.snapshotPath('checkbox-group-directions'));
|
|
11
11
|
await expect(snapshot).toEqual(0);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PATH_E2E_CHECKBOX_GROUP } from '../../../environments/storybook/paths';
|
|
2
2
|
import { PageObject, Urlbuilder } from '../../helpers';
|
|
3
3
|
|
|
4
4
|
export default class DSFormLayoutCheckboxGroupCO extends PageObject {
|
|
5
|
-
static directionURL = new Urlbuilder(
|
|
5
|
+
static directionURL = new Urlbuilder(PATH_E2E_CHECKBOX_GROUP, 'direction-test');
|
|
6
6
|
|
|
7
7
|
static async checkboxLabel(label) {
|
|
8
8
|
return $(`label*=${label}`);
|
|
@@ -1,22 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PATH_E2E_MENU_BUTTON } from '../../environments/storybook/paths';
|
|
2
2
|
import { PageObject, Urlbuilder } from '../helpers';
|
|
3
3
|
|
|
4
4
|
export default class DSMenuButtonCO extends PageObject {
|
|
5
5
|
// Current supported examples: POC
|
|
6
|
-
static activableMenuItem = new Urlbuilder(
|
|
6
|
+
static activableMenuItem = new Urlbuilder(PATH_E2E_MENU_BUTTON, 'activable-menu-item');
|
|
7
7
|
|
|
8
|
-
static multipleSelectMenuItem = new Urlbuilder(
|
|
8
|
+
static multipleSelectMenuItem = new Urlbuilder(PATH_E2E_MENU_BUTTON, 'multiple-select-menu-item');
|
|
9
9
|
|
|
10
|
-
static singleSelectMenuItem = new Urlbuilder(
|
|
10
|
+
static singleSelectMenuItem = new Urlbuilder(PATH_E2E_MENU_BUTTON, 'single-select-menu-item');
|
|
11
11
|
|
|
12
|
-
static withSubmenuMenuItem = new Urlbuilder(
|
|
12
|
+
static withSubmenuMenuItem = new Urlbuilder(PATH_E2E_MENU_BUTTON, 'with-submenu-menu-item');
|
|
13
|
+
|
|
14
|
+
static withDisabled = new Urlbuilder(PATH_E2E_MENU_BUTTON, 'disabled-items-test');
|
|
15
|
+
|
|
16
|
+
static withLeftDecorations = new Urlbuilder(PATH_E2E_MENU_BUTTON, 'with-left-decorations-test');
|
|
13
17
|
|
|
14
18
|
static async getMenuRoots() {
|
|
15
|
-
return $$('[data-testid="ds-
|
|
19
|
+
return $$('[data-testid="ds-flyoutmenu-root"]');
|
|
16
20
|
}
|
|
17
21
|
|
|
18
22
|
static async getMenuRoot() {
|
|
19
|
-
return $('[data-testid="ds-
|
|
23
|
+
return $('[data-testid="ds-flyoutmenu-root"]');
|
|
20
24
|
}
|
|
21
25
|
|
|
22
26
|
static async getMenuFloatingWrapperRoot(index = 0) {
|
|
@@ -28,23 +32,23 @@ export default class DSMenuButtonCO extends PageObject {
|
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
static async getMenuItemWrapper(index = 0) {
|
|
31
|
-
return $$('[data-testid="ds-
|
|
35
|
+
return $$('[data-testid="ds-menuitem-menu-item-wrapper"]')[index];
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
static async getMenuItems() {
|
|
35
|
-
return $$('[data-testid="ds-
|
|
39
|
+
return $$('[data-testid="ds-menuitem-menu-item-wrapper"]');
|
|
36
40
|
}
|
|
37
41
|
|
|
38
42
|
static async getMenuItemContentWrapper(index = 0) {
|
|
39
|
-
return $$('[data-testid="ds-
|
|
43
|
+
return $$('[data-testid="ds-menuitem-menu-item-content-wrapper"]')[index];
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
static async getMenuItemContentLabel(index = 0) {
|
|
43
|
-
return $$('[data-testid="ds-
|
|
47
|
+
return $$('[data-testid="ds-menuitem-menu-item-label"]')[index];
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
static async getMenuItemContentLabels() {
|
|
47
|
-
return $$('[data-testid="ds-
|
|
51
|
+
return $$('[data-testid="ds-menuitem-menu-item-label"]');
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
static async getMenuItemByID(id = 1) {
|
|
@@ -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();
|