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
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSPillsV2CO from '../DSPillsV2CO';
|
|
4
|
+
import { axeCoreCheck } from '../../helpers';
|
|
5
|
+
|
|
6
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
7
|
+
describe('PUI-14708 - PillsV2 Selection: Single Select -AxeCore', () => {
|
|
8
|
+
before('loading page', async () => {
|
|
9
|
+
const errorOnGo = await DSPillsV2CO.singleSelectMB.go();
|
|
10
|
+
if (errorOnGo) throw errorOnGo;
|
|
11
|
+
});
|
|
12
|
+
it('01: should have a pill with expanded single select menu, unselected, and pass axe-core scan', async () => {
|
|
13
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(0);
|
|
14
|
+
await menuTrigger.click();
|
|
15
|
+
const result = await axeCoreCheck();
|
|
16
|
+
expect(result.length).toBe(0);
|
|
17
|
+
});
|
|
18
|
+
it('02: should have a pill with expanded single select menu, selected, and pass axe-core scan', async () => {
|
|
19
|
+
await browser.keys(Key.ArrowDown);
|
|
20
|
+
await browser.keys(Key.Space);
|
|
21
|
+
const result = await axeCoreCheck();
|
|
22
|
+
expect(result.length).toBe(0);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
describe('PUI-14713 - PillsV2 Selection: Required Select -AxeCore', () => {
|
|
27
|
+
before('loading page', async () => {
|
|
28
|
+
const errorOnGo = await DSPillsV2CO.requiredSelectMB.go();
|
|
29
|
+
if (errorOnGo) throw errorOnGo;
|
|
30
|
+
});
|
|
31
|
+
it('01: should have a pill with one required option selected (single) and pass axe-core scan', async () => {
|
|
32
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(0);
|
|
33
|
+
await menuTrigger.click();
|
|
34
|
+
const result = await axeCoreCheck();
|
|
35
|
+
expect(result.length).toBe(0);
|
|
36
|
+
});
|
|
37
|
+
it('02: should have a pill with one required option selected (multi) and pass axe-core scan', async () => {
|
|
38
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(1);
|
|
39
|
+
await menuTrigger.click();
|
|
40
|
+
const result = await axeCoreCheck();
|
|
41
|
+
expect(result.length).toBe(0);
|
|
42
|
+
});
|
|
43
|
+
it('03: should have a pill with two optional options selected and pass axe-core scan', async () => {
|
|
44
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(1);
|
|
45
|
+
await menuTrigger.click();
|
|
46
|
+
await browser.keys(Key.ArrowDown);
|
|
47
|
+
await browser.keys(Key.Space);
|
|
48
|
+
await browser.keys(Key.ArrowDown);
|
|
49
|
+
await browser.keys(Key.Space);
|
|
50
|
+
await browser.keys(Key.ArrowDown);
|
|
51
|
+
await browser.keys(Key.Space);
|
|
52
|
+
const result = await axeCoreCheck();
|
|
53
|
+
expect(result.length).toBe(0);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
describe('PUI-14710 - PillsV2 Selection: Multi Selec -AxeCore', () => {
|
|
58
|
+
before('loading page', async () => {
|
|
59
|
+
const errorOnGo = await DSPillsV2CO.multiSelectMB.go();
|
|
60
|
+
if (errorOnGo) throw errorOnGo;
|
|
61
|
+
});
|
|
62
|
+
it('01: should have a pill with multi select menu, unselected, and pass axe-core scan', async () => {
|
|
63
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(0);
|
|
64
|
+
await menuTrigger.click();
|
|
65
|
+
const result = await axeCoreCheck();
|
|
66
|
+
expect(result.length).toBe(0);
|
|
67
|
+
});
|
|
68
|
+
it('02: should have a pill with multi select menu, multi opts selected, and pass axe-core scan', async () => {
|
|
69
|
+
await browser.keys(Key.ArrowDown);
|
|
70
|
+
await browser.keys(Key.Space);
|
|
71
|
+
await browser.keys(Key.ArrowDown);
|
|
72
|
+
await browser.keys(Key.Space);
|
|
73
|
+
const result = await axeCoreCheck();
|
|
74
|
+
expect(result.length).toBe(0);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSPillsV2CO from '../DSPillsV2CO';
|
|
4
|
+
import DSMenuButtonCO from '../../ds-menu-button/DSMenuButtonCO';
|
|
5
|
+
|
|
6
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
7
|
+
describe('PUI-14703 - Pills v2: Selection: KB, multi', () => {
|
|
8
|
+
before('loading page', async () => {
|
|
9
|
+
const errorOnGo = await DSPillsV2CO.multiSelectMB.go();
|
|
10
|
+
if (errorOnGo) throw errorOnGo;
|
|
11
|
+
});
|
|
12
|
+
it('01: should have multi select expanded, no selection, no minipill', async () => {
|
|
13
|
+
await browser.keys(Key.Tab);
|
|
14
|
+
await browser.keys(Key.Return);
|
|
15
|
+
const pills = await DSPillsV2CO.getPills();
|
|
16
|
+
const howManyPills = pills.length;
|
|
17
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
18
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
19
|
+
await expect(howManyPills).toEqual(1); // The selection pill, no values pills displayed
|
|
20
|
+
});
|
|
21
|
+
it('02: should have multi select with two options selected, expanded, with two minipills', async () => {
|
|
22
|
+
await browser.keys(Key.ArrowDown);
|
|
23
|
+
await browser.keys(Key.Space);
|
|
24
|
+
await browser.keys(Key.ArrowDown);
|
|
25
|
+
await browser.keys(Key.Space);
|
|
26
|
+
const pills = await DSPillsV2CO.getPills();
|
|
27
|
+
const howManyPills = pills.length;
|
|
28
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
29
|
+
const minipillLabel1 = await (await DSPillsV2CO.getPillsTextByIndex(1)).getText();
|
|
30
|
+
const minipillLabel2 = await (await DSPillsV2CO.getPillsTextByIndex(2)).getText();
|
|
31
|
+
await expect(minipillLabel1).toEqual('Bold');
|
|
32
|
+
await expect(minipillLabel2).toEqual('Underlined');
|
|
33
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
34
|
+
await expect(howManyPills).toEqual(3);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
describe('PUI-14702 - Pills v2: Selection: MOUSE, single', () => {
|
|
39
|
+
before('loading page', async () => {
|
|
40
|
+
const errorOnGo = await DSPillsV2CO.singleSelectMB.go();
|
|
41
|
+
if (errorOnGo) throw errorOnGo;
|
|
42
|
+
});
|
|
43
|
+
it('01: should have single select menu expanded, no options selected, no minipills', async () => {
|
|
44
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(0);
|
|
45
|
+
await menuTrigger.click();
|
|
46
|
+
const pills = await DSPillsV2CO.getPills();
|
|
47
|
+
const howManyPills = pills.length;
|
|
48
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
49
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
50
|
+
await expect(howManyPills).toEqual(1); //
|
|
51
|
+
});
|
|
52
|
+
it('02: should select one option, and get its minipill. Menu stays open', async () => {
|
|
53
|
+
const optionRed = await DSMenuButtonCO.getMenuItemWrapper(0);
|
|
54
|
+
await optionRed.click();
|
|
55
|
+
const pills = await DSPillsV2CO.getPills();
|
|
56
|
+
const howManyPills = pills.length;
|
|
57
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
58
|
+
const minipillLabel1 = await (await DSPillsV2CO.getPillsTextByIndex(1)).getText();
|
|
59
|
+
await expect(optionRed).toHaveAttribute('aria-checked', 'true');
|
|
60
|
+
await expect(minipillLabel1).toEqual('Red');
|
|
61
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
62
|
+
await expect(howManyPills).toEqual(2);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
describe('PUI-14707 - Pills v2: Selection: REQUIRED, single', () => {
|
|
67
|
+
before('loading page', async () => {
|
|
68
|
+
const errorOnGo = await DSPillsV2CO.requiredSelectMB.go();
|
|
69
|
+
if (errorOnGo) throw errorOnGo;
|
|
70
|
+
});
|
|
71
|
+
it('01: should expand required single select and have one option select by default', async () => {
|
|
72
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(0);
|
|
73
|
+
await menuTrigger.click();
|
|
74
|
+
const optionBlack = await DSMenuButtonCO.getMenuItemWrapper(0);
|
|
75
|
+
const pills = await DSPillsV2CO.getPills();
|
|
76
|
+
const howManyPills = pills.length;
|
|
77
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
78
|
+
const minipillLabel1 = await (await DSPillsV2CO.getPillsTextByIndex(1)).getText();
|
|
79
|
+
await expect(optionBlack).toHaveAttribute('aria-checked', 'true');
|
|
80
|
+
await expect(minipillLabel1).toEqual('Black');
|
|
81
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
82
|
+
await expect(howManyPills).toEqual(4);
|
|
83
|
+
});
|
|
84
|
+
it('02: should select antoher option, unselecting the first one and changing the minipill', async () => {
|
|
85
|
+
const optionBlack = await DSMenuButtonCO.getMenuItemWrapper(0);
|
|
86
|
+
const optionRed = await DSMenuButtonCO.getMenuItemWrapper(1);
|
|
87
|
+
await optionRed.click();
|
|
88
|
+
const pills = await DSPillsV2CO.getPills();
|
|
89
|
+
const howManyPills = pills.length;
|
|
90
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
91
|
+
const minipillLabel1 = await (await DSPillsV2CO.getPillsTextByIndex(1)).getText();
|
|
92
|
+
await expect(optionBlack).toHaveAttribute('aria-checked', 'false');
|
|
93
|
+
await expect(optionRed).toHaveAttribute('aria-checked', 'true');
|
|
94
|
+
await expect(minipillLabel1).toEqual('Red');
|
|
95
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
96
|
+
await expect(howManyPills).toEqual(4);
|
|
97
|
+
});
|
|
98
|
+
it('03: should NOT be able to unselect an option without selecting another one', async () => {
|
|
99
|
+
const optionRed = await DSMenuButtonCO.getMenuItemWrapper(1);
|
|
100
|
+
await optionRed.click();
|
|
101
|
+
await expect(optionRed).toHaveAttribute('aria-checked', 'true');
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
describe('PUI-14705 - Pills v2: Selection: REQUIRED, multi', () => {
|
|
106
|
+
before('loading page', async () => {
|
|
107
|
+
const errorOnGo = await DSPillsV2CO.requiredSelectMB.go();
|
|
108
|
+
if (errorOnGo) throw errorOnGo;
|
|
109
|
+
});
|
|
110
|
+
it('01: should not be able to unselect the only selected option by default', async () => {
|
|
111
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(1);
|
|
112
|
+
await menuTrigger.click();
|
|
113
|
+
const optionItalic = await DSMenuButtonCO.getMenuItemWrapper(0);
|
|
114
|
+
await browser.keys(Key.Space); // tries to unselect
|
|
115
|
+
const pills = await DSPillsV2CO.getPills();
|
|
116
|
+
const howManyPills = pills.length;
|
|
117
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
118
|
+
const minipillLabel1 = await (await DSPillsV2CO.getPillsTextByIndex(3)).getText();
|
|
119
|
+
await expect(optionItalic).toHaveAttribute('aria-checked', 'true');
|
|
120
|
+
await expect(minipillLabel1).toEqual('Italic');
|
|
121
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
122
|
+
await expect(howManyPills).toEqual(4);
|
|
123
|
+
});
|
|
124
|
+
it('02: should be able to select another option keeping the first one selected', async () => {
|
|
125
|
+
const optionBold = await DSMenuButtonCO.getMenuItemWrapper(1);
|
|
126
|
+
await optionBold.click();
|
|
127
|
+
const optionItalic = await DSMenuButtonCO.getMenuItemWrapper(0);
|
|
128
|
+
const pills = await DSPillsV2CO.getPills();
|
|
129
|
+
const howManyPills = pills.length;
|
|
130
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
131
|
+
const minipillLabel1 = await (await DSPillsV2CO.getPillsTextByIndex(3)).getText();
|
|
132
|
+
const minipillLabel2 = await (await DSPillsV2CO.getPillsTextByIndex(4)).getText();
|
|
133
|
+
await expect(optionItalic).toHaveAttribute('aria-checked', 'true');
|
|
134
|
+
await expect(optionBold).toHaveAttribute('aria-checked', 'true');
|
|
135
|
+
await expect(minipillLabel1).toEqual('Italic');
|
|
136
|
+
await expect(minipillLabel2).toEqual('Bold');
|
|
137
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
138
|
+
await expect(howManyPills).toEqual(5);
|
|
139
|
+
});
|
|
140
|
+
it('03: should now be able to unselect the first option', async () => {
|
|
141
|
+
const optionBold = await DSMenuButtonCO.getMenuItemWrapper(1);
|
|
142
|
+
const optionItalic = await DSMenuButtonCO.getMenuItemWrapper(0);
|
|
143
|
+
await optionItalic.click();
|
|
144
|
+
const pills = await DSPillsV2CO.getPills();
|
|
145
|
+
const howManyPills = pills.length;
|
|
146
|
+
const menu = await DSMenuButtonCO.getMenuRoot();
|
|
147
|
+
const minipillLabel1 = await (await DSPillsV2CO.getPillsTextByIndex(3)).getText();
|
|
148
|
+
await expect(optionItalic).toHaveAttribute('aria-checked', 'false');
|
|
149
|
+
await expect(optionBold).toHaveAttribute('aria-checked', 'true');
|
|
150
|
+
await expect(minipillLabel1).toEqual('Bold');
|
|
151
|
+
await expect(menu).toBeDisplayedInViewport();
|
|
152
|
+
await expect(howManyPills).toEqual(4);
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSPillsV2CO from '../DSPillsV2CO';
|
|
4
|
+
|
|
5
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
|
+
describe('PUI-14709 - PillsV2 Selection: Single Select -Visual', () => {
|
|
7
|
+
before('loading page', async () => {
|
|
8
|
+
const errorOnGo = await DSPillsV2CO.singleSelectMB.go();
|
|
9
|
+
if (errorOnGo) throw errorOnGo;
|
|
10
|
+
});
|
|
11
|
+
it('01: should have a pill with expanded single select menu, unselected, matching baseline', async () => {
|
|
12
|
+
await browser.eyesOpen();
|
|
13
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(0);
|
|
14
|
+
await menuTrigger.click();
|
|
15
|
+
const snapshot = await browser.eyesCheckSnapshot(DSPillsV2CO.snapshotPath('pillsv2-single-unsel'));
|
|
16
|
+
await expect(snapshot).toEqual(0);
|
|
17
|
+
});
|
|
18
|
+
it('02: should have a pill with expanded single select menu, selected, matching baseline', async () => {
|
|
19
|
+
await browser.eyesOpen();
|
|
20
|
+
await browser.keys(Key.ArrowDown);
|
|
21
|
+
await browser.keys(Key.Space);
|
|
22
|
+
const snapshot = await browser.eyesCheckSnapshot(DSPillsV2CO.snapshotPath('pillsv2-single-sel'));
|
|
23
|
+
await expect(snapshot).toEqual(0);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
describe('PUI-14712 - PillsV2 Selection: Required Select -Visual', () => {
|
|
28
|
+
before('loading page', async () => {
|
|
29
|
+
const errorOnGo = await DSPillsV2CO.requiredSelectMB.go();
|
|
30
|
+
if (errorOnGo) throw errorOnGo;
|
|
31
|
+
});
|
|
32
|
+
it('01: should have a pill with expanded single select menu, required, matching baseline', async () => {
|
|
33
|
+
await browser.eyesOpen();
|
|
34
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(0);
|
|
35
|
+
await menuTrigger.click();
|
|
36
|
+
const snapshot = await browser.eyesCheckSnapshot(DSPillsV2CO.snapshotPath('pillsv2-req-single'));
|
|
37
|
+
await expect(snapshot).toEqual(0);
|
|
38
|
+
});
|
|
39
|
+
it('02: should have a pill with expanded multi select menu, required, matching baseline', async () => {
|
|
40
|
+
await browser.eyesOpen();
|
|
41
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(1);
|
|
42
|
+
await menuTrigger.click();
|
|
43
|
+
await browser.keys(Key.ArrowDown);
|
|
44
|
+
await browser.keys(Key.Space);
|
|
45
|
+
const snapshot = await browser.eyesCheckSnapshot(DSPillsV2CO.snapshotPath('pillsv2-req-multi'));
|
|
46
|
+
await expect(snapshot).toEqual(0);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
describe('PUI-14711 - PillsV2 Selection: Multi Select -Visual', () => {
|
|
51
|
+
before('loading page', async () => {
|
|
52
|
+
const errorOnGo = await DSPillsV2CO.multiSelectMB.go();
|
|
53
|
+
if (errorOnGo) throw errorOnGo;
|
|
54
|
+
});
|
|
55
|
+
it('01: should have a pill with multi select menu, unselected, matching baseline', async () => {
|
|
56
|
+
await browser.eyesOpen();
|
|
57
|
+
const menuTrigger = await DSPillsV2CO.getMBChevronByIndex(0);
|
|
58
|
+
await menuTrigger.click();
|
|
59
|
+
const snapshot = await browser.eyesCheckSnapshot(DSPillsV2CO.snapshotPath('pillsv2-multi-unsel'));
|
|
60
|
+
await expect(snapshot).toEqual(0);
|
|
61
|
+
});
|
|
62
|
+
it('02: should have a pill with multi select menu, multi opts selected, and pass axe-core scan', async () => {
|
|
63
|
+
await browser.eyesOpen();
|
|
64
|
+
await browser.keys(Key.ArrowDown);
|
|
65
|
+
await browser.keys(Key.Space);
|
|
66
|
+
await browser.keys(Key.ArrowDown);
|
|
67
|
+
await browser.keys(Key.Space);
|
|
68
|
+
const snapshot = await browser.eyesCheckSnapshot(DSPillsV2CO.snapshotPath('pillsv2-multi-sel'));
|
|
69
|
+
await expect(snapshot).toEqual(0);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
1
2
|
import DSQueryBuilderCO from './DSQueryBuilderCO';
|
|
2
3
|
import { mouseOver, type } from '../helpers';
|
|
3
4
|
|
|
@@ -57,7 +58,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
57
58
|
});
|
|
58
59
|
it('02: should display the combobox with all options selected properly opened', async () => {
|
|
59
60
|
await DSQueryBuilderCO.openComboBox(0);
|
|
60
|
-
await
|
|
61
|
+
await browser.keys([Key.Control, Key.Command, 'a']);
|
|
61
62
|
const snapshot = await browser.checkSnapshot(DSQueryBuilderCO.snapshotPath('qb-error-combo-multi-all-selected'));
|
|
62
63
|
await expect(snapshot).toEqual(0);
|
|
63
64
|
});
|
|
@@ -39,11 +39,6 @@ export default class DSQueryBuilderCO extends PageObject {
|
|
|
39
39
|
return (await (await this.getComboBox(index)).$('[data-testid="combobox-dropdown-btn"]')).click();
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
static async selectAllMultiComboOptions() {
|
|
43
|
-
// eslint-disable-next-line no-return-await
|
|
44
|
-
return $('[id="select-all-checkbox"]').click();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
42
|
static async getComboBoxes() {
|
|
48
43
|
return $$('[data-testid="combobox"]');
|
|
49
44
|
}
|
|
@@ -132,16 +132,14 @@ export default class DSShuttleV2CO extends PageObject {
|
|
|
132
132
|
|
|
133
133
|
static getCheckboxByIndex = async (index = 0) => $$(`[data-testid="ds-checkbox"]`)[index];
|
|
134
134
|
|
|
135
|
+
static getBreadcrumbItemContByIndex = async (index = 0) => $$(`[data-testid="breadcrumb-item-content"]`)[index];
|
|
136
|
+
|
|
135
137
|
static getBreadcrumbByIndex = async (index = 0) => $$(`[data-testid="breadcrumb-item-container"]`)[index];
|
|
136
138
|
|
|
137
139
|
static getBreadcrumbs = async () => $$(`[data-testid="breadcrumb-item-container"]`);
|
|
138
140
|
|
|
139
|
-
static getFocuseableByBreadcrumb = async (breadcrumb) => breadcrumb.$(`[data-testid="ds-typography-element"]`);
|
|
140
|
-
|
|
141
141
|
static getSubtitleByItem = async (item) => item.$$(`p`)[1];
|
|
142
142
|
|
|
143
|
-
static getTypographyByItem = async (item) => item.$(`[data-testid="ds-typography-element"]`);
|
|
144
|
-
|
|
145
143
|
static getActionButtonByItemAndIndex = async (item, index = 0) =>
|
|
146
144
|
item.$$(`[data-testid=${DSShuttleV2DataTestIds.ITEM_ACTION_BTN}]`)[index];
|
|
147
145
|
|
|
@@ -12,7 +12,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
12
12
|
await browser.eyesOpen();
|
|
13
13
|
await browser.keys(Key.Tab);
|
|
14
14
|
await browser.keys(Key.Tab);
|
|
15
|
-
await browser.keys(Key.Tab);
|
|
16
15
|
await browser.keys(Key.ArrowDown);
|
|
17
16
|
await browser.keys(Key.ArrowLeft);
|
|
18
17
|
const snapshot = await browser.eyesCheckSnapshot(DSShuttleV2CO.snapshotPath('shuttle-v2-focus-dnd'));
|
|
@@ -22,7 +21,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
22
21
|
await browser.eyesOpen();
|
|
23
22
|
await browser.keys(Key.Tab);
|
|
24
23
|
await browser.keys(Key.Tab);
|
|
25
|
-
await browser.keys(Key.Tab);
|
|
26
24
|
await browser.keys(Key.ArrowDown);
|
|
27
25
|
await browser.keys(Key.ArrowLeft);
|
|
28
26
|
await browser.keys(Key.Space);
|
|
@@ -34,7 +32,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
34
32
|
await browser.eyesOpen();
|
|
35
33
|
await browser.keys(Key.Tab);
|
|
36
34
|
await browser.keys(Key.Tab);
|
|
37
|
-
await browser.keys(Key.Tab);
|
|
38
35
|
await browser.keys(Key.ArrowDown);
|
|
39
36
|
await browser.keys(Key.ArrowLeft);
|
|
40
37
|
await browser.keys(Key.Space);
|
|
@@ -60,7 +57,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
60
57
|
await browser.keys(Key.Tab);
|
|
61
58
|
await browser.keys(Key.Tab);
|
|
62
59
|
await browser.keys(Key.Tab);
|
|
63
|
-
await browser.keys(Key.Tab);
|
|
64
60
|
await browser.keys(Key.ArrowDown);
|
|
65
61
|
await browser.keys(Key.ArrowLeft);
|
|
66
62
|
await browser.keys(Key.Return);
|
|
@@ -76,7 +72,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
76
72
|
await browser.keys(Key.Tab);
|
|
77
73
|
await browser.keys(Key.Tab);
|
|
78
74
|
await browser.keys(Key.Tab);
|
|
79
|
-
await browser.keys(Key.Tab);
|
|
80
75
|
await browser.keys(Key.ArrowDown);
|
|
81
76
|
await browser.keys(Key.ArrowLeft);
|
|
82
77
|
await browser.keys(Key.Return);
|
|
@@ -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);
|
|
@@ -12,7 +12,6 @@ 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
17
|
await browser.keys(Key.Tab);
|
|
@@ -27,11 +26,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
27
26
|
const testItem = await DSShuttleV2CO.getItemWrapper(0);
|
|
28
27
|
await browser.keys(Key.Tab);
|
|
29
28
|
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
29
|
await browser.keys(Key.Tab);
|
|
36
30
|
await browser.keys(Key.Enter);
|
|
37
31
|
await browser.keys(Key.Tab);
|
|
@@ -40,7 +34,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
40
34
|
await expect(destinationItems).toBe(10);
|
|
41
35
|
});
|
|
42
36
|
it('04: should filter and find only one match at destination panel', async () => {
|
|
43
|
-
await type('
|
|
37
|
+
await type('0.3');
|
|
44
38
|
const destinationItems = (await DSShuttleV2CO.getItemsFromDestination()).length;
|
|
45
39
|
await expect(destinationItems).toBe(1);
|
|
46
40
|
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');
|