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
|
@@ -9,35 +9,29 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
9
9
|
const errorOnGo = await DSShuttleV2CO.filterURL.go();
|
|
10
10
|
if (errorOnGo) throw errorOnGo;
|
|
11
11
|
});
|
|
12
|
-
it('01: should tab and focus the
|
|
13
|
-
await browser.keys(Key.Tab);
|
|
14
|
-
const breadCrumb = await DSShuttleV2CO.getBreadcrumbByIndex(0);
|
|
15
|
-
const breadcrumbFocuseable = await DSShuttleV2CO.getFocuseableByBreadcrumb(breadCrumb);
|
|
16
|
-
await expect(breadcrumbFocuseable).toBeFocused();
|
|
17
|
-
});
|
|
18
|
-
it('02: should tab and focus the filter icon', async () => {
|
|
12
|
+
it('01: should tab and focus the filter icon (skiping text title)', async () => {
|
|
19
13
|
await browser.keys(Key.Tab);
|
|
20
14
|
const sourceFilterBtn = await DSShuttleV2CO.getHeaderSearchIcon(0);
|
|
21
15
|
await expect(sourceFilterBtn).toBeFocused();
|
|
22
16
|
});
|
|
23
|
-
it('
|
|
17
|
+
it('02: should tab and focus the select/deselect all checkbox', async () => {
|
|
24
18
|
await browser.keys(Key.Tab);
|
|
25
19
|
const sourcePanelCheckbox = await DSShuttleV2CO.getCheckboxByIndex(0);
|
|
26
20
|
await expect(sourcePanelCheckbox).toBeFocused();
|
|
27
21
|
});
|
|
28
|
-
it('
|
|
22
|
+
it('03: should tab and focus the source panel', async () => {
|
|
29
23
|
await browser.keys(Key.Tab);
|
|
30
24
|
const sourcePanel = await DSShuttleV2CO.getListWrapperMid(0);
|
|
31
25
|
await expect(sourcePanel).toBeFocused();
|
|
32
26
|
});
|
|
33
|
-
it('
|
|
27
|
+
it('04: should select first item with arrowKeys', async () => {
|
|
34
28
|
await browser.keys(Key.ArrowDown);
|
|
35
29
|
const firstItem = await DSShuttleV2CO.getItemCheckboxByItem(await DSShuttleV2CO.getItemFromSourceByIndex(0));
|
|
36
30
|
const isFirstItemFocused = await firstItem.getAttribute('tabindex');
|
|
37
31
|
await expect(isFirstItemFocused).toEqual('0'); // 0 = true for pseudofocus
|
|
38
32
|
await expect(firstItem).toBeFocused();
|
|
39
33
|
});
|
|
40
|
-
it('
|
|
34
|
+
it('05: should Shift+Tab to focus the panel again and select last item with arrowKeys', async () => {
|
|
41
35
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
42
36
|
await browser.keys(Key.ArrowUp);
|
|
43
37
|
const firstItem = await DSShuttleV2CO.getItemCheckboxByIndex(9);
|
|
@@ -45,64 +39,56 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
45
39
|
await expect(isFirstItemFocused).toEqual('0'); // 0 = true for pseudofocus
|
|
46
40
|
await expect(firstItem).toBeFocused();
|
|
47
41
|
});
|
|
48
|
-
it('
|
|
49
|
-
await browser.keys(Key.Tab);
|
|
50
|
-
const breadCrumb = await DSShuttleV2CO.getBreadcrumbByIndex(1);
|
|
51
|
-
const breadcrumbFocuseable = await DSShuttleV2CO.getFocuseableByBreadcrumb(breadCrumb);
|
|
52
|
-
await expect(breadcrumbFocuseable).toBeFocused();
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
describe('PUI-9799 - Shuttle V2, TabStops with BAB and LoadMore -Func.', () => {
|
|
57
|
-
before(async () => {
|
|
58
|
-
const errorOnGo = await DSShuttleV2CO.loadMoreURL.go();
|
|
59
|
-
if (errorOnGo) throw errorOnGo;
|
|
60
|
-
});
|
|
61
|
-
it('01: display the BAB and return focus to the breadcrumb to follow normal flow', async () => {
|
|
62
|
-
const testItem = await DSShuttleV2CO.getItemWrapper(2);
|
|
63
|
-
await testItem.click();
|
|
64
|
-
const breadCrumb = await DSShuttleV2CO.getBreadcrumbByIndex(0);
|
|
65
|
-
await breadCrumb.click();
|
|
66
|
-
const breadcrumbFocuseable = await DSShuttleV2CO.getFocuseableByBreadcrumb(breadCrumb);
|
|
67
|
-
const BAB = await DSShuttleV2CO.getMoveMultipleButton();
|
|
68
|
-
await expect(BAB).toBeDisplayed();
|
|
69
|
-
await expect(breadcrumbFocuseable).toBeFocused();
|
|
70
|
-
});
|
|
71
|
-
it('02: should tab and focus the select/deselect all checkbox', async () => {
|
|
72
|
-
await browser.keys(Key.Tab);
|
|
73
|
-
const sourcePanelCheckbox = await DSShuttleV2CO.getCheckboxByIndex(0);
|
|
74
|
-
await expect(sourcePanelCheckbox).toBeFocused();
|
|
75
|
-
});
|
|
76
|
-
it('03: should tab and focus the source panel', async () => {
|
|
42
|
+
it('06: should tab and focus next header search icon from destination panel', async () => {
|
|
77
43
|
await browser.keys(Key.Tab);
|
|
78
|
-
const
|
|
79
|
-
await expect(
|
|
80
|
-
});
|
|
81
|
-
it('04: should tab and focus the BAB', async () => {
|
|
82
|
-
await browser.keys(Key.Tab);
|
|
83
|
-
const BAB = await DSShuttleV2CO.getMoveMultipleButton(0);
|
|
84
|
-
await expect(BAB).toBeFocused();
|
|
85
|
-
});
|
|
86
|
-
it('05: should tab and focus the loadmore', async () => {
|
|
87
|
-
await browser.keys(Key.Tab);
|
|
88
|
-
const loadMore = await DSShuttleV2CO.getListBottomLoadMoreBtn(0);
|
|
89
|
-
await expect(loadMore).toBeFocused();
|
|
90
|
-
});
|
|
91
|
-
it('06: should tab and focus the breadcrumb from destination panel', async () => {
|
|
92
|
-
await browser.keys(Key.Tab);
|
|
93
|
-
const breadCrumb = await DSShuttleV2CO.getBreadcrumbByIndex(1);
|
|
94
|
-
const breadcrumbFocuseable = await DSShuttleV2CO.getFocuseableByBreadcrumb(breadCrumb);
|
|
95
|
-
await expect(breadcrumbFocuseable).toBeFocused();
|
|
44
|
+
const sourceFilterBtn = await DSShuttleV2CO.getHeaderSearchIcon(1);
|
|
45
|
+
await expect(sourceFilterBtn).toBeFocused();
|
|
96
46
|
});
|
|
97
47
|
});
|
|
98
|
-
|
|
48
|
+
if (browser.capabilities.browserName !== 'Firefox') {
|
|
49
|
+
describe('PUI-9799 - Shuttle V2, TabStops with BAB and LoadMore -Func.', () => {
|
|
50
|
+
before(async () => {
|
|
51
|
+
const errorOnGo = await DSShuttleV2CO.loadMoreURL.go();
|
|
52
|
+
if (errorOnGo) throw errorOnGo;
|
|
53
|
+
});
|
|
54
|
+
it('01: display the BAB and return focus to the global checkbox to follow normal flow', async () => {
|
|
55
|
+
const testItem = await DSShuttleV2CO.getItemWrapper(2);
|
|
56
|
+
await testItem.click();
|
|
57
|
+
const BAB = await DSShuttleV2CO.getMoveMultipleButton();
|
|
58
|
+
const sourcePanelCheckbox = await DSShuttleV2CO.getCheckboxByIndex(0);
|
|
59
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
60
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
61
|
+
await expect(BAB).toBeDisplayed();
|
|
62
|
+
await expect(sourcePanelCheckbox).toBeFocused();
|
|
63
|
+
});
|
|
64
|
+
it('03: should tab and focus the source panel', async () => {
|
|
65
|
+
await browser.keys(Key.Tab);
|
|
66
|
+
const sourcePanel = await DSShuttleV2CO.getListWrapperMid(0);
|
|
67
|
+
await expect(sourcePanel).toBeFocused();
|
|
68
|
+
});
|
|
69
|
+
it('04: should tab and focus the BAB', async () => {
|
|
70
|
+
await browser.keys(Key.Tab);
|
|
71
|
+
const BAB = await DSShuttleV2CO.getMoveMultipleButton(0);
|
|
72
|
+
await expect(BAB).toBeFocused();
|
|
73
|
+
});
|
|
74
|
+
it('05: should tab and focus the loadmore', async () => {
|
|
75
|
+
await browser.keys(Key.Tab);
|
|
76
|
+
const loadMore = await DSShuttleV2CO.getListBottomLoadMoreBtn(0);
|
|
77
|
+
await expect(loadMore).toBeFocused();
|
|
78
|
+
});
|
|
79
|
+
it('06: should tab and focus the global checkbox from destination panel', async () => {
|
|
80
|
+
await browser.keys(Key.Tab);
|
|
81
|
+
const destinationPanelCheckbox = await DSShuttleV2CO.getCheckboxByIndex(1);
|
|
82
|
+
await expect(destinationPanelCheckbox).toBeFocused();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
99
86
|
describe('PUI-9815 - Shuttle V2, Range selection -Func.', () => {
|
|
100
87
|
before(async () => {
|
|
101
88
|
const errorOnGo = await DSShuttleV2CO.basicURL.go();
|
|
102
89
|
if (errorOnGo) throw errorOnGo;
|
|
103
90
|
});
|
|
104
91
|
it('01: should select four items pressing space only two times (using shift for range select)', async () => {
|
|
105
|
-
await browser.keys(Key.Tab);
|
|
106
92
|
await browser.keys(Key.Tab);
|
|
107
93
|
await browser.keys(Key.Tab);
|
|
108
94
|
await browser.keys(Key.ArrowDown);
|
|
@@ -153,8 +139,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
153
139
|
await browser.keys(Key.Tab);
|
|
154
140
|
await browser.keys(Key.Tab);
|
|
155
141
|
await browser.keys(Key.Tab);
|
|
156
|
-
await browser.keys(Key.Tab);
|
|
157
|
-
await browser.keys(Key.Tab);
|
|
158
142
|
await browser.keys(Key.ArrowDown);
|
|
159
143
|
await browser.keys(Key.Space);
|
|
160
144
|
const bab = await DSShuttleV2CO.getMoveMultipleButton();
|
|
@@ -175,7 +159,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
175
159
|
await expect(testItem2OnSource).toBe('Destination 0.3');
|
|
176
160
|
});
|
|
177
161
|
it('03: should bulk move items from source to destination', async () => {
|
|
178
|
-
await browser.keys([Key.Shift, Key.Tab]);
|
|
179
162
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
180
163
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
181
164
|
await browser.keys(Key.ArrowDown);
|
|
@@ -201,7 +184,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
201
184
|
if (errorOnGo) throw errorOnGo;
|
|
202
185
|
});
|
|
203
186
|
it('01: should DND first item to fourth position (source)', async () => {
|
|
204
|
-
await browser.keys(Key.Tab);
|
|
205
187
|
await browser.keys(Key.Tab);
|
|
206
188
|
await browser.keys(Key.Tab);
|
|
207
189
|
await browser.keys(Key.ArrowDown);
|
|
@@ -224,7 +206,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
224
206
|
if (errorOnGo) throw errorOnGo;
|
|
225
207
|
});
|
|
226
208
|
it('01: should display tooltip on hover of a truncated item', async () => {
|
|
227
|
-
await browser.keys(Key.Tab);
|
|
228
209
|
await browser.keys(Key.Tab);
|
|
229
210
|
await browser.keys(Key.Tab);
|
|
230
211
|
await browser.keys(Key.ArrowDown);
|
|
@@ -242,7 +223,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
242
223
|
if (errorOnGo) throw errorOnGo;
|
|
243
224
|
});
|
|
244
225
|
it('01: should display focus BAB after selecting an item and arrow right', async () => {
|
|
245
|
-
await browser.keys(Key.Tab);
|
|
246
226
|
await browser.keys(Key.Tab);
|
|
247
227
|
await browser.keys(Key.Tab);
|
|
248
228
|
await browser.keys(Key.ArrowDown);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable max-len */
|
|
1
2
|
/* eslint-disable no-unused-vars */
|
|
2
3
|
/* eslint-disable max-statements */
|
|
3
4
|
import { Key } from 'webdriverio';
|
|
@@ -10,7 +11,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
10
11
|
if (errorOnGo) throw errorOnGo;
|
|
11
12
|
});
|
|
12
13
|
it('01: should focus item', async () => {
|
|
13
|
-
await browser.keys(Key.Tab);
|
|
14
14
|
await browser.keys(Key.Tab);
|
|
15
15
|
await browser.keys(Key.Tab);
|
|
16
16
|
await browser.keys(Key.ArrowDown);
|
|
@@ -53,7 +53,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
53
53
|
if (errorOnGo) throw errorOnGo;
|
|
54
54
|
});
|
|
55
55
|
it('01: should add breadcrumbs with the items name while drilling down', async () => {
|
|
56
|
-
await browser.keys(Key.Tab);
|
|
57
56
|
await browser.keys(Key.Tab);
|
|
58
57
|
await browser.keys(Key.Tab);
|
|
59
58
|
await browser.keys(Key.ArrowDown);
|
|
@@ -94,9 +93,8 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
94
93
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
95
94
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
96
95
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
97
|
-
await browser.keys([Key.Shift, Key.Tab]);
|
|
98
96
|
await browser.keys(Key.Enter);
|
|
99
|
-
const breadcrumbItem2 = await DSShuttleV2CO.
|
|
97
|
+
const breadcrumbItem2 = await DSShuttleV2CO.getBreadcrumbItemContByIndex(1);
|
|
100
98
|
const breadcrumbs = (await DSShuttleV2CO.getBreadcrumbs()).length;
|
|
101
99
|
await expect(breadcrumbItem2).toBeFocused();
|
|
102
100
|
await expect(breadcrumbs).toEqual(3);
|
|
@@ -104,7 +102,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
104
102
|
it('02: should focus first breadcrumb item after going up from second level with KB', async () => {
|
|
105
103
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
106
104
|
await browser.keys(Key.Enter);
|
|
107
|
-
const breadcrumbItem1 = await DSShuttleV2CO.
|
|
105
|
+
const breadcrumbItem1 = await DSShuttleV2CO.getBreadcrumbItemContByIndex(0);
|
|
108
106
|
const breadcrumbs = (await DSShuttleV2CO.getBreadcrumbs()).length;
|
|
109
107
|
await expect(breadcrumbItem1).toBeFocused();
|
|
110
108
|
await expect(breadcrumbs).toEqual(2);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
1
2
|
import DSShuttleV2CO from '../DSShuttleV2CO';
|
|
2
3
|
|
|
3
4
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
@@ -27,4 +28,22 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
27
28
|
await expect(snapshot).toEqual(0);
|
|
28
29
|
});
|
|
29
30
|
});
|
|
31
|
+
|
|
32
|
+
describe('PUI-15294 - Shuttle V2, Render after bulk move -Visual.', () => {
|
|
33
|
+
before(async () => {
|
|
34
|
+
const errorOnGo = await DSShuttleV2CO.adHocRenderAfterBulkMove.go();
|
|
35
|
+
if (errorOnGo) throw errorOnGo;
|
|
36
|
+
});
|
|
37
|
+
it('01: should move all the items and scrolldown. Items should be correctly rendered', async () => {
|
|
38
|
+
await browser.eyesOpen();
|
|
39
|
+
const selectAllCheckbox = await DSShuttleV2CO.getCheckboxByIndex(1);
|
|
40
|
+
await selectAllCheckbox.click();
|
|
41
|
+
const bab = await DSShuttleV2CO.getMoveMultipleButton();
|
|
42
|
+
await bab.click();
|
|
43
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
44
|
+
await browser.keys(Key.ArrowUp);
|
|
45
|
+
const snapshot = await browser.eyesCheckSnapshot(DSShuttleV2CO.snapshotPath('shuttle-v2-after-bulkmove-adhoc'));
|
|
46
|
+
await expect(snapshot).toEqual(0);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
30
49
|
}
|
|
@@ -13,8 +13,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
13
13
|
it('02: should filter and find only one match at source panel', async () => {
|
|
14
14
|
const sourceFilterBtn = await DSShuttleV2CO.getHeaderSearchIcon(0);
|
|
15
15
|
await sourceFilterBtn.click();
|
|
16
|
-
const searchBar = await DSShuttleV2CO.getAreaSearchBar();
|
|
17
|
-
await searchBar.click();
|
|
18
16
|
await type('0.2');
|
|
19
17
|
const sourceItems = (await DSShuttleV2CO.getItemsFromSource()).length;
|
|
20
18
|
await expect(sourceItems).toBe(1);
|
|
@@ -27,8 +25,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
27
25
|
await testItemMoveBtn.click();
|
|
28
26
|
const sourceFilterBtn = await DSShuttleV2CO.getHeaderSearchIcon(1);
|
|
29
27
|
await sourceFilterBtn.click();
|
|
30
|
-
const searchBar = await DSShuttleV2CO.getAreaSearchBar(1);
|
|
31
|
-
await searchBar.click();
|
|
32
28
|
await type('Destination');
|
|
33
29
|
const destinationItems = (await DSShuttleV2CO.getItemsFromDestination()).length;
|
|
34
30
|
await expect(destinationItems).toBe(10);
|
|
@@ -53,8 +49,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
53
49
|
it('02: should filter and find only one match at source panel', async () => {
|
|
54
50
|
const sourceFilterBtn = await DSShuttleV2CO.getHeaderSearchIcon(0);
|
|
55
51
|
await sourceFilterBtn.click();
|
|
56
|
-
const searchBar = await DSShuttleV2CO.getAreaSearchBar();
|
|
57
|
-
await searchBar.click();
|
|
58
52
|
await type('Vote for Pedro');
|
|
59
53
|
const sourceItems = (await DSShuttleV2CO.getItemsFromSource()).length;
|
|
60
54
|
await expect(sourceItems).toBe(0);
|
|
@@ -12,10 +12,8 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
12
12
|
await expect($('[data-testid="ds-shuttle-v2-area-search-bar"]')).not.toBeDisplayed();
|
|
13
13
|
});
|
|
14
14
|
it('02: should filter and find only one match at source panel', async () => {
|
|
15
|
-
await browser.keys(Key.Tab);
|
|
16
15
|
await browser.keys(Key.Tab);
|
|
17
16
|
await browser.keys(Key.Enter);
|
|
18
|
-
await browser.keys(Key.Tab);
|
|
19
17
|
await type('0.2');
|
|
20
18
|
const sourceItems = (await DSShuttleV2CO.getItemsFromSource()).length;
|
|
21
19
|
await expect(sourceItems).toBe(1);
|
|
@@ -27,20 +25,14 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
27
25
|
const testItem = await DSShuttleV2CO.getItemWrapper(0);
|
|
28
26
|
await browser.keys(Key.Tab);
|
|
29
27
|
await browser.keys(Key.Tab);
|
|
30
|
-
await browser.keys(Key.ArrowDown);
|
|
31
|
-
await browser.keys(Key.ArrowRight);
|
|
32
|
-
await browser.keys(Key.ArrowRight);
|
|
33
|
-
await browser.keys(Key.Enter);
|
|
34
|
-
await browser.keys(Key.Tab);
|
|
35
28
|
await browser.keys(Key.Tab);
|
|
36
29
|
await browser.keys(Key.Enter);
|
|
37
|
-
await browser.keys(Key.Tab);
|
|
38
30
|
await type('Destination');
|
|
39
31
|
const destinationItems = (await DSShuttleV2CO.getItemsFromDestination()).length;
|
|
40
32
|
await expect(destinationItems).toBe(10);
|
|
41
33
|
});
|
|
42
34
|
it('04: should filter and find only one match at destination panel', async () => {
|
|
43
|
-
await type('
|
|
35
|
+
await type('0.3');
|
|
44
36
|
const destinationItems = (await DSShuttleV2CO.getItemsFromDestination()).length;
|
|
45
37
|
await expect(destinationItems).toBe(1);
|
|
46
38
|
const testItem = await (await DSShuttleV2CO.getItemFromDestinationByIndex(0)).getText();
|
|
@@ -18,8 +18,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
18
18
|
await browser.keys(Key.Tab);
|
|
19
19
|
await browser.keys(Key.Tab);
|
|
20
20
|
await browser.keys(Key.Tab);
|
|
21
|
-
await browser.keys(Key.Tab);
|
|
22
|
-
await browser.keys(Key.Tab);
|
|
23
21
|
await browser.keys(Key.ArrowDown);
|
|
24
22
|
await browser.keys(Key.Space);
|
|
25
23
|
const isChecked = await selectAllCheckbox.getAttribute('aria-checked');
|
|
@@ -8,7 +8,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
8
8
|
if (errorOnGo) throw errorOnGo;
|
|
9
9
|
});
|
|
10
10
|
it('01: should move an item to destination and display its ghost on that position', async () => {
|
|
11
|
-
await browser.keys(Key.Tab);
|
|
12
11
|
await browser.keys(Key.Tab);
|
|
13
12
|
await browser.keys(Key.Tab);
|
|
14
13
|
await browser.keys(Key.ArrowDown);
|
|
@@ -26,7 +25,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
26
25
|
await expect(destinationItems).toBe(11);
|
|
27
26
|
});
|
|
28
27
|
it('02: should return the item to its previous position', async () => {
|
|
29
|
-
await browser.keys(Key.Tab);
|
|
30
28
|
await browser.keys(Key.Tab);
|
|
31
29
|
await browser.keys(Key.Tab);
|
|
32
30
|
await browser.keys(Key.ArrowUp);
|
|
@@ -21,8 +21,6 @@ if (
|
|
|
21
21
|
it('02: displayed empty searchbar to be axecore compliant', async () => {
|
|
22
22
|
const sourceFilterBtn = await DSShuttleV2CO.getHeaderSearchIcon(0);
|
|
23
23
|
await sourceFilterBtn.click();
|
|
24
|
-
const searchBar = await DSShuttleV2CO.getAreaSearchBar();
|
|
25
|
-
await searchBar.click();
|
|
26
24
|
const result = await axeCoreCheck();
|
|
27
25
|
expect(result.length).toBe(0);
|
|
28
26
|
});
|
|
@@ -104,4 +104,18 @@ if (
|
|
|
104
104
|
expect(result.length).toBe(0);
|
|
105
105
|
});
|
|
106
106
|
});
|
|
107
|
+
|
|
108
|
+
describe('PUI-15965 - SliderV2 - ReadOnly prop - AxeCore Test', () => {
|
|
109
|
+
before('loading page', async () => {
|
|
110
|
+
const errorOnGo = await DSSliderV2CO.readOnlyURL.go();
|
|
111
|
+
if (errorOnGo) throw errorOnGo;
|
|
112
|
+
});
|
|
113
|
+
it('01: should display slider with read only and pass axe-core scan', async () => {
|
|
114
|
+
const slider = await DSSliderV2CO.getSliderRoot();
|
|
115
|
+
await slider.waitForDisplayed();
|
|
116
|
+
await browser.keys(Key.Tab);
|
|
117
|
+
const result = await axeCoreCheck();
|
|
118
|
+
expect(result.length).toBe(0);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
107
121
|
}
|
|
@@ -114,4 +114,22 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
114
114
|
await expect(value2AfterChange).toEqual('75');
|
|
115
115
|
});
|
|
116
116
|
});
|
|
117
|
+
|
|
118
|
+
describe('PUI-15066 - SliderV2 - ReadOnly - Func', () => {
|
|
119
|
+
before('loading page', async () => {
|
|
120
|
+
const errorOnGo = await DSSliderV2CO.readOnlyURL.go();
|
|
121
|
+
if (errorOnGo) throw errorOnGo;
|
|
122
|
+
});
|
|
123
|
+
it('01: should not change the default value of the readonly slider (50) ', async () => {
|
|
124
|
+
const handler = await DSSliderV2CO.getSliderThumb(0);
|
|
125
|
+
await browser.keys(Key.Tab);
|
|
126
|
+
await browser.keys(Key.ArrowRight);
|
|
127
|
+
const valueHandler = await DSSliderV2CO.getSliderValue(handler);
|
|
128
|
+
await handler.dragAndDrop({ x: 200, y: 0 });
|
|
129
|
+
const valueHandlerAfter = await DSSliderV2CO.getSliderValue(handler);
|
|
130
|
+
await expect(handler).toBeFocused();
|
|
131
|
+
await expect(valueHandler).toEqual('50');
|
|
132
|
+
await expect(valueHandlerAfter).toEqual('50');
|
|
133
|
+
});
|
|
134
|
+
});
|
|
117
135
|
}
|
|
@@ -175,3 +175,18 @@ describe('PUI-12340 - SliderV2 - Responsive - Visual Test', () => {
|
|
|
175
175
|
await expect(snapshot).toEqual(0);
|
|
176
176
|
});
|
|
177
177
|
});
|
|
178
|
+
|
|
179
|
+
describe('PUI-15064 - SliderV2 - ReadOnly - Visual Test', () => {
|
|
180
|
+
before('loading page', async () => {
|
|
181
|
+
const errorOnGo = await DSSliderV2CO.readOnlyURL.go();
|
|
182
|
+
if (errorOnGo) throw errorOnGo;
|
|
183
|
+
});
|
|
184
|
+
it('01: should display slider with readOnly', async () => {
|
|
185
|
+
await browser.eyesOpen();
|
|
186
|
+
const slider = await DSSliderV2CO.getSliderRoot();
|
|
187
|
+
await slider.waitForDisplayed();
|
|
188
|
+
await browser.keys(Key.Tab);
|
|
189
|
+
const snapshot = await browser.eyesCheckSnapshot(DSSliderV2CO.snapshotPath('slider-v2-readOnly'));
|
|
190
|
+
await expect(snapshot).toEqual(0);
|
|
191
|
+
});
|
|
192
|
+
});
|
|
@@ -25,6 +25,8 @@ export default class DSSliderCO extends PageObject {
|
|
|
25
25
|
|
|
26
26
|
static dialogURL = new Urlbuilder(PATH_E2E_SLIDER_V2, 'within-dialog-test');
|
|
27
27
|
|
|
28
|
+
static readOnlyURL = new Urlbuilder(PATH_E2E_SLIDER_V2, 'read-only-test');
|
|
29
|
+
|
|
28
30
|
static applyAriaDisabledURL = new Urlbuilder(PATH_E2E_SLIDER_V2, 'apply-aria-disabled-test');
|
|
29
31
|
|
|
30
32
|
// Snapshots
|
|
@@ -34,43 +36,43 @@ export default class DSSliderCO extends PageObject {
|
|
|
34
36
|
|
|
35
37
|
// selectors
|
|
36
38
|
static async getSliderRoot(index = 0) {
|
|
37
|
-
return $$('[data-testid="ds-
|
|
39
|
+
return $$('[data-testid="ds-sliderv2-root"]')[index];
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
static async getSliderRangeWrapper(index = 0) {
|
|
41
|
-
return $$('[data-testid="ds-
|
|
43
|
+
return $$('[data-testid="ds-sliderv2-range-wrapper"]')[index];
|
|
42
44
|
}
|
|
43
45
|
|
|
44
46
|
static async getSliderTrack(index = 0) {
|
|
45
|
-
return $$('[data-testid="ds-
|
|
47
|
+
return $$('[data-testid="ds-sliderv2-track"]')[index];
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
static async getSliderThumb(index = 0) {
|
|
49
|
-
return $$('[data-testid="ds-
|
|
51
|
+
return $$('[data-testid="ds-sliderv2-thumb"]')[index];
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
static async getSliderRangeWrapperBySlider(slider) {
|
|
53
|
-
return slider.$('[data-testid="ds-
|
|
55
|
+
return slider.$('[data-testid="ds-sliderv2-range-wrapper"]');
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
static async getSliderTrackBySlider(slider) {
|
|
57
|
-
return slider.$('[data-testid="ds-
|
|
59
|
+
return slider.$('[data-testid="ds-sliderv2-track"]');
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
static async getSliderThumbBySlider(slider) {
|
|
61
|
-
return slider.$('[data-testid="ds-
|
|
63
|
+
return slider.$('[data-testid="ds-sliderv2-thumb"]');
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
static async getSliderTickMarkValue(index = 0) {
|
|
65
|
-
return $$('[data-testid="ds-
|
|
67
|
+
return $$('[data-testid="ds-sliderv2-tick-mark-value"]')[index];
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
static async getSliderTickMark(index = 0) {
|
|
69
|
-
return $$('[data-testid="ds-
|
|
71
|
+
return $$('[data-testid="ds-sliderv2-tick-mark-container"]')[index];
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
static async getSliderTickMarkValues() {
|
|
73
|
-
return $$('[data-testid="ds-
|
|
75
|
+
return $$('[data-testid="ds-sliderv2-tick-mark-value"]');
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
// actions
|
|
@@ -17,7 +17,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
17
17
|
});
|
|
18
18
|
it('02: should tab to focus content with link', async () => {
|
|
19
19
|
await browser.keys(Key.Tab);
|
|
20
|
-
const closeButton = await DSToastCO.
|
|
20
|
+
const closeButton = await DSToastCO.getActionRoot();
|
|
21
21
|
await expect(closeButton).toBeFocused();
|
|
22
22
|
});
|
|
23
23
|
it('03: should tab to focus close button again', async () => {
|
|
@@ -27,7 +27,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
27
27
|
});
|
|
28
28
|
it('04: should shift+tab to focus content with link', async () => {
|
|
29
29
|
await browser.keys([Key.Shift, Key.Tab]);
|
|
30
|
-
const closeButton = await DSToastCO.
|
|
30
|
+
const closeButton = await DSToastCO.getActionRoot();
|
|
31
31
|
await expect(closeButton).toBeFocused();
|
|
32
32
|
});
|
|
33
33
|
it('05: should shift+tab to focus close button again', async () => {
|
package/ds-toast/DSToastCO.js
CHANGED
|
@@ -70,8 +70,8 @@ export default class DSToastCO extends PageObject {
|
|
|
70
70
|
return $(`[data-testid="ds-toast-close-button"]`);
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
static async
|
|
74
|
-
return $(`[data-testid="ds-
|
|
73
|
+
static async getActionRoot() {
|
|
74
|
+
return $(`[data-testid="ds-toastaction-root"]`);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
static async getToastByPosition(position) {
|
|
@@ -10,12 +10,12 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
10
10
|
if (errorOnGo) throw errorOnGo;
|
|
11
11
|
await (await DSToggleCO.getToggle()).waitForExist();
|
|
12
12
|
});
|
|
13
|
-
it('should change state to ON', async () => {
|
|
13
|
+
it('01: should change state to ON', async () => {
|
|
14
14
|
await (await DSToggleCO.getToggle()).click();
|
|
15
15
|
const toggleState = await DSToggleCO.getToggleState('ON');
|
|
16
16
|
await expect(toggleState).toBeDisplayed();
|
|
17
17
|
});
|
|
18
|
-
it('should change state to OFF', async () => {
|
|
18
|
+
it('02: should change state to OFF', async () => {
|
|
19
19
|
await (await DSToggleCO.getToggle()).click();
|
|
20
20
|
const toggleState = await DSToggleCO.getToggleState('OFF');
|
|
21
21
|
await expect(toggleState).toBeDisplayed();
|
|
@@ -27,51 +27,54 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
27
27
|
if (errorOnGo) throw errorOnGo;
|
|
28
28
|
await (await DSToggleCO.getToggle()).waitForExist();
|
|
29
29
|
});
|
|
30
|
-
it('toggle should be focused', async () => {
|
|
30
|
+
it('01: toggle should be focused', async () => {
|
|
31
31
|
await browser.keys(Key.Tab);
|
|
32
32
|
const toggleComponent = await DSToggleCO.getToggleFocuseableByDataTestId('my-toggle');
|
|
33
33
|
await expect(toggleComponent).toBeFocused();
|
|
34
34
|
});
|
|
35
|
-
it('should change state to ON (Enter)', async () => {
|
|
35
|
+
it('02: should change state to ON (Enter)', async () => {
|
|
36
36
|
await browser.keys(Key.Enter);
|
|
37
37
|
const toggleState = await DSToggleCO.getToggleState('ON');
|
|
38
38
|
await expect(toggleState).toBeDisplayed();
|
|
39
39
|
});
|
|
40
|
-
it('should change state to OFF (Space)', async () => {
|
|
40
|
+
it('03: should change state to OFF (Space)', async () => {
|
|
41
41
|
await browser.keys(Key.Space);
|
|
42
42
|
const toggleState = await DSToggleCO.getToggleState('OFF');
|
|
43
43
|
await expect(toggleState).toBeDisplayed();
|
|
44
44
|
});
|
|
45
|
-
it('should change state to ON (Space)', async () => {
|
|
45
|
+
it('04: should change state to ON (Space)', async () => {
|
|
46
46
|
await browser.keys(Key.Space);
|
|
47
47
|
const toggleState = await DSToggleCO.getToggleState('ON');
|
|
48
48
|
await expect(toggleState).toBeDisplayed();
|
|
49
49
|
});
|
|
50
50
|
});
|
|
51
|
+
|
|
51
52
|
describe('PUI-6761 - DSControlledToggle:: disabled state', () => {
|
|
52
53
|
before('loading page', async () => {
|
|
53
54
|
const errorOnGo = await DSToggleCO.disabled.go();
|
|
54
55
|
if (errorOnGo) throw errorOnGo;
|
|
55
56
|
await (await DSToggleCO.getToggle()).waitForExist();
|
|
56
57
|
});
|
|
57
|
-
it('should not change state in disabled toggle', async () => {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
await
|
|
58
|
+
it('01: should not change state in disabled toggle', async () => {
|
|
59
|
+
const disabledToggle = await DSToggleCO.getToggleByIndex(0);
|
|
60
|
+
await disabledToggle.click();
|
|
61
|
+
const toggleState = await disabledToggle.$('//div[@disabled]//div[2]').getText();
|
|
62
|
+
await expect(toggleState).toEqual('ON');
|
|
61
63
|
});
|
|
62
64
|
});
|
|
65
|
+
|
|
63
66
|
describe('PUI-6762 - DSControlledToggle:: read only state', () => {
|
|
64
67
|
before('loading page', async () => {
|
|
65
68
|
const errorOnGo = await DSToggleCO.readOnly.go();
|
|
66
69
|
if (errorOnGo) throw errorOnGo;
|
|
67
70
|
await (await DSToggleCO.getToggle()).waitForExist();
|
|
68
71
|
});
|
|
69
|
-
it('should display tooltip in read only toggle (mouse over)', async () => {
|
|
72
|
+
it('01: should display tooltip in read only toggle (mouse over)', async () => {
|
|
70
73
|
await mouseOver(await DSToggleCO.getToggle(), 30, 10);
|
|
71
74
|
const tooltip = await DSToggleCO.getTooltip();
|
|
72
75
|
await expect(tooltip).toBeDisplayed();
|
|
73
76
|
});
|
|
74
|
-
it('should display tooltip in read only toggle (keyboard focus)', async () => {
|
|
77
|
+
it('02: should display tooltip in read only toggle (keyboard focus)', async () => {
|
|
75
78
|
await mouseOver(await DSToggleCO.getToggle(), 300, 100);
|
|
76
79
|
await browser.keys(Key.Tab);
|
|
77
80
|
const toggleComponent = await DSToggleCO.getToggleFocuseable();
|
|
@@ -79,17 +82,17 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
79
82
|
await expect(toggleComponent).toBeFocused();
|
|
80
83
|
await expect(tooltip).toBeDisplayed();
|
|
81
84
|
});
|
|
82
|
-
it('should not change state on [Enter] key press', async () => {
|
|
85
|
+
it('03: should not change state on [Enter] key press', async () => {
|
|
83
86
|
await browser.keys(Key.Enter);
|
|
84
87
|
const toggleState = await DSToggleCO.getToggleState('OFF');
|
|
85
88
|
await expect(toggleState).toBeDisplayed();
|
|
86
89
|
});
|
|
87
|
-
it('should not change state on [Space] key press', async () => {
|
|
90
|
+
it('04: should not change state on [Space] key press', async () => {
|
|
88
91
|
await browser.keys(Key.Space);
|
|
89
92
|
const toggleState = await DSToggleCO.getToggleState('OFF');
|
|
90
93
|
await expect(toggleState).toBeDisplayed();
|
|
91
94
|
});
|
|
92
|
-
it('should not change state on click', async () => {
|
|
95
|
+
it('05: should not change state on click', async () => {
|
|
93
96
|
await (await DSToggleCO.getToggle()).click();
|
|
94
97
|
const toggleState = await DSToggleCO.getToggleState('OFF');
|
|
95
98
|
await expect(toggleState).toBeDisplayed();
|
|
@@ -101,17 +104,17 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
101
104
|
if (errorOnGo) throw errorOnGo;
|
|
102
105
|
await (await DSToggleCO.getToggle()).waitForExist();
|
|
103
106
|
});
|
|
104
|
-
it('should tab through the basic toggles to the last basic toggle', async () => {
|
|
107
|
+
it('01: should tab through the basic toggles to the last basic toggle', async () => {
|
|
105
108
|
await tabStops(6);
|
|
106
109
|
const toggle = await DSToggleCO.getToggleFocuseableByIndex(4);
|
|
107
110
|
await expect(toggle).toBeFocused();
|
|
108
111
|
});
|
|
109
|
-
it('should tab and skip all three disabled toggles to the first enabled toggle, next row', async () => {
|
|
112
|
+
it('02: should tab and skip all three disabled toggles to the first enabled toggle, next row', async () => {
|
|
110
113
|
await browser.keys(Key.Tab);
|
|
111
114
|
const toggle = await DSToggleCO.getToggleFocuseableByIndex(11);
|
|
112
115
|
await expect(toggle).toBeFocused();
|
|
113
116
|
});
|
|
114
|
-
it('should tab through the readonly toggles to the last readonly toggle', async () => {
|
|
117
|
+
it('03: should tab through the readonly toggles to the last readonly toggle', async () => {
|
|
115
118
|
await tabStops(5);
|
|
116
119
|
const toggle = await DSToggleCO.getToggleFocuseableByIndex(16);
|
|
117
120
|
await expect(toggle).toBeFocused();
|