dimsum-e2e-tests 3.48.2-rc.0 → 3.49.0-beta.1
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 +1689 -1
- package/ds-breadcrumb/DSBreadcrumb.axe-core.func.spec.js +21 -6
- package/ds-breadcrumb/DSBreadcrumb.func.spec.js +23 -2
- package/ds-breadcrumb/DSBreadcrumb.visual.spec.js +20 -15
- package/ds-breadcrumb/DSBreadcrumbCO.js +17 -1
- package/ds-button-v3/DSButtonV3CO.js +4 -0
- 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 +0 -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 +54 -2
- 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/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.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/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-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.visual.spec.js +39 -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.visual.spec.js +39 -0
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +4 -0
- package/ds-menu-button/DSMenuButtonCO.js +9 -5
- 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-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-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
|
@@ -13,7 +13,7 @@ if (
|
|
|
13
13
|
if (errorOnGo) throw errorOnGo;
|
|
14
14
|
});
|
|
15
15
|
it('should have actionable breadcrumb and pass axecore scan', async () => {
|
|
16
|
-
const actionBreadcrumb = await DSBreadcrumbCO.
|
|
16
|
+
const actionBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
17
17
|
await actionBreadcrumb.waitForDisplayed();
|
|
18
18
|
const result = await axeCoreCheck();
|
|
19
19
|
expect(result.length).toBe(0);
|
|
@@ -26,7 +26,7 @@ if (
|
|
|
26
26
|
if (errorOnGo) throw errorOnGo;
|
|
27
27
|
});
|
|
28
28
|
it('should have HREF on the breadcrumb and pass axecore scan', async () => {
|
|
29
|
-
const breadcrumbWithHREF = await DSBreadcrumbCO.
|
|
29
|
+
const breadcrumbWithHREF = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
30
30
|
await breadcrumbWithHREF.waitForDisplayed();
|
|
31
31
|
const result = await axeCoreCheck();
|
|
32
32
|
expect(result.length).toBe(0);
|
|
@@ -39,7 +39,7 @@ if (
|
|
|
39
39
|
if (errorOnGo) throw errorOnGo;
|
|
40
40
|
});
|
|
41
41
|
it('01: should have breadcrumb as footer and item as div and pass axecore scan', async () => {
|
|
42
|
-
const breadcrumbAsFooter = await DSBreadcrumbCO.
|
|
42
|
+
const breadcrumbAsFooter = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
43
43
|
await breadcrumbAsFooter.waitForDisplayed();
|
|
44
44
|
const result = await axeCoreCheck();
|
|
45
45
|
expect(result.length).toBe(0);
|
|
@@ -52,7 +52,7 @@ if (
|
|
|
52
52
|
if (errorOnGo) throw errorOnGo;
|
|
53
53
|
});
|
|
54
54
|
it('01: should have actionable breadcrumb and pass axecore scan', async () => {
|
|
55
|
-
const titleBreadcrumb = await DSBreadcrumbCO.
|
|
55
|
+
const titleBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
56
56
|
await titleBreadcrumb.waitForDisplayed();
|
|
57
57
|
const result = await axeCoreCheck();
|
|
58
58
|
expect(result.length).toBe(0);
|
|
@@ -65,7 +65,7 @@ if (
|
|
|
65
65
|
if (errorOnGo) throw errorOnGo;
|
|
66
66
|
});
|
|
67
67
|
it('01: should have actionable breadcrumb and pass axecore scan', async () => {
|
|
68
|
-
const breadcrumb = await DSBreadcrumbCO.
|
|
68
|
+
const breadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
69
69
|
await breadcrumb.waitForDisplayed();
|
|
70
70
|
const result = await axeCoreCheck();
|
|
71
71
|
expect(result.length).toBe(0);
|
|
@@ -78,10 +78,25 @@ if (
|
|
|
78
78
|
if (errorOnGo) throw errorOnGo;
|
|
79
79
|
});
|
|
80
80
|
it('01: should have actionable breadcrumb and pass axecore scan', async () => {
|
|
81
|
-
const truncBreadcrumb = await DSBreadcrumbCO.
|
|
81
|
+
const truncBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
82
82
|
await truncBreadcrumb.waitForDisplayed();
|
|
83
83
|
const result = await axeCoreCheck();
|
|
84
84
|
expect(result.length).toBe(0);
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
|
+
|
|
88
|
+
describe('PUI-14920 - BreadCrumb, Arias (current + label) - Func', () => {
|
|
89
|
+
before('loading page', async () => {
|
|
90
|
+
const errorOnGo = await DSBreadcrumbCO.containerProps.go();
|
|
91
|
+
if (errorOnGo) throw errorOnGo;
|
|
92
|
+
});
|
|
93
|
+
it('01: should have navigation breadcrumb with correct aria-current and custom container id', async () => {
|
|
94
|
+
const currentItem1 = await DSBreadcrumbCO.getBreadcrumbItems(6);
|
|
95
|
+
await currentItem1.click();
|
|
96
|
+
const currentItem2 = await DSBreadcrumbCO.getBreadcrumbItems(12);
|
|
97
|
+
await currentItem2.click();
|
|
98
|
+
const result = await axeCoreCheck();
|
|
99
|
+
expect(result.length).toBe(0);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
87
102
|
}
|
|
@@ -37,8 +37,8 @@ describe('PUI-9463 - BreadCrumb, Click - Firing Actions', () => {
|
|
|
37
37
|
if (errorOnGo) throw errorOnGo;
|
|
38
38
|
});
|
|
39
39
|
it('should fire the action with click two times', async () => {
|
|
40
|
-
const actionBreadcrumb = await DSBreadcrumbCO.
|
|
41
|
-
const otherBreadcrumb = await DSBreadcrumbCO.
|
|
40
|
+
const actionBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(1);
|
|
41
|
+
const otherBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(4);
|
|
42
42
|
await actionBreadcrumb.click();
|
|
43
43
|
await otherBreadcrumb.click(); // should ignore clicks on other items
|
|
44
44
|
await actionBreadcrumb.click();
|
|
@@ -46,3 +46,24 @@ describe('PUI-9463 - BreadCrumb, Click - Firing Actions', () => {
|
|
|
46
46
|
await expect(counter).toBeDisplayedInViewport();
|
|
47
47
|
});
|
|
48
48
|
});
|
|
49
|
+
|
|
50
|
+
describe('PUI-14919 - BreadCrumb, Arias (current + label) - Func', () => {
|
|
51
|
+
before('loading page', async () => {
|
|
52
|
+
const errorOnGo = await DSBreadcrumbCO.containerProps.go();
|
|
53
|
+
if (errorOnGo) throw errorOnGo;
|
|
54
|
+
});
|
|
55
|
+
it('01: should have navigation breadcrumb with correct aria-current and custom container id', async () => {
|
|
56
|
+
const breadcrumb = await DSBreadcrumbCO.getBreadcrumbsByIndex(0);
|
|
57
|
+
const currentItem = await DSBreadcrumbCO.getBreadcrumbItems(6);
|
|
58
|
+
await currentItem.click();
|
|
59
|
+
await expect(currentItem).toHaveAttribute('aria-current', 'page');
|
|
60
|
+
await expect(breadcrumb).toHaveAttribute('id', 'my-custom-id');
|
|
61
|
+
});
|
|
62
|
+
it('02: should have with-buttons breadcrumb with correct aria-current and custom container aria-label', async () => {
|
|
63
|
+
const breadcrumb = await DSBreadcrumbCO.getBreadcrumbsByIndex(1);
|
|
64
|
+
const currentItem = await DSBreadcrumbCO.getBreadcrumbItems(12);
|
|
65
|
+
await currentItem.click();
|
|
66
|
+
await expect(currentItem).toHaveAttribute('aria-current', 'step');
|
|
67
|
+
await expect(breadcrumb).toHaveAttribute('aria-label', 'my-custom-aria-label');
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -8,9 +8,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
8
8
|
if (errorOnGo) throw errorOnGo;
|
|
9
9
|
});
|
|
10
10
|
it('should display a title variant correctly', async () => {
|
|
11
|
+
await browser.eyesOpen();
|
|
11
12
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
12
13
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
13
|
-
const snapshot = await browser.
|
|
14
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('title'));
|
|
14
15
|
await expect(snapshot).toEqual(0);
|
|
15
16
|
});
|
|
16
17
|
});
|
|
@@ -21,11 +22,12 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
21
22
|
if (errorOnGo) throw errorOnGo;
|
|
22
23
|
});
|
|
23
24
|
it('should display a trailing slash for non title variant', async () => {
|
|
25
|
+
await browser.eyesOpen();
|
|
24
26
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
25
27
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
26
|
-
const otherBreadcrumb = await DSBreadcrumbCO.
|
|
28
|
+
const otherBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(2);
|
|
27
29
|
await mouseOver(otherBreadcrumb);
|
|
28
|
-
const snapshot = await browser.
|
|
30
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('non-title'));
|
|
29
31
|
await expect(snapshot).toEqual(0);
|
|
30
32
|
});
|
|
31
33
|
});
|
|
@@ -36,21 +38,20 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
36
38
|
if (errorOnGo) throw errorOnGo;
|
|
37
39
|
});
|
|
38
40
|
it('should show every link truncated', async () => {
|
|
41
|
+
await browser.eyesOpen();
|
|
39
42
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
43
|
+
await mouseOver(breadcrumb, 200, 200);
|
|
40
44
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
41
|
-
const snapshot = await browser.
|
|
45
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-all-truncated'));
|
|
42
46
|
await expect(snapshot).toEqual(0);
|
|
43
47
|
});
|
|
44
48
|
it('should show one the links not truncated after mouse hover', async () => {
|
|
49
|
+
await browser.eyesOpen();
|
|
45
50
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
46
51
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
47
52
|
const bcLink = await DSBreadcrumbCO.getBreadcrumbItem('Aenean non ante eu nunc volutpat');
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
} else {
|
|
51
|
-
await bcLink.moveTo();
|
|
52
|
-
}
|
|
53
|
-
const snapshot = await browser.checkSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-one-not-truncated'));
|
|
53
|
+
await mouseOver(bcLink);
|
|
54
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-one-not-truncated'));
|
|
54
55
|
await expect(snapshot).toEqual(0);
|
|
55
56
|
});
|
|
56
57
|
});
|
|
@@ -61,11 +62,12 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
61
62
|
if (errorOnGo) throw errorOnGo;
|
|
62
63
|
});
|
|
63
64
|
it('should breadcrumb of different custom colors', async () => {
|
|
65
|
+
await browser.eyesOpen();
|
|
64
66
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
65
67
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
66
|
-
const otherBreadcrumb = await DSBreadcrumbCO.
|
|
68
|
+
const otherBreadcrumb = await DSBreadcrumbCO.getBreadcrumbNavItems(2);
|
|
67
69
|
await mouseOver(otherBreadcrumb);
|
|
68
|
-
const snapshot = await browser.
|
|
70
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-custom-colors'));
|
|
69
71
|
await expect(snapshot).toEqual(0);
|
|
70
72
|
});
|
|
71
73
|
});
|
|
@@ -76,15 +78,17 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
76
78
|
if (errorOnGo) throw errorOnGo;
|
|
77
79
|
});
|
|
78
80
|
it('should show breadcrumb above title', async () => {
|
|
81
|
+
await browser.eyesOpen();
|
|
79
82
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
80
83
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
81
|
-
const snapshot = await browser.
|
|
84
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-above-title'));
|
|
82
85
|
await expect(snapshot).toEqual(0);
|
|
83
86
|
});
|
|
84
87
|
it('should show hovered editable title', async () => {
|
|
88
|
+
await browser.eyesOpen();
|
|
85
89
|
const title = await DSBreadcrumbCO.getEditableTitle();
|
|
86
90
|
await mouseOver(title);
|
|
87
|
-
const snapshot = await browser.
|
|
91
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-hovered-title'));
|
|
88
92
|
await expect(snapshot).toEqual(0);
|
|
89
93
|
});
|
|
90
94
|
});
|
|
@@ -95,9 +99,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
95
99
|
if (errorOnGo) throw errorOnGo;
|
|
96
100
|
});
|
|
97
101
|
it('should display the breadcrumb item 7 as active by default', async () => {
|
|
102
|
+
await browser.eyesOpen();
|
|
98
103
|
const breadcrumb = await DSBreadcrumbCO.getBreadcrumb();
|
|
99
104
|
await breadcrumb.waitForDisplayed({ timeout: 5000 });
|
|
100
|
-
const snapshot = await browser.
|
|
105
|
+
const snapshot = await browser.eyesCheckSnapshot(DSBreadcrumbCO.snapshotPath('breadcrumb-active-7'));
|
|
101
106
|
await expect(snapshot).toEqual(0);
|
|
102
107
|
});
|
|
103
108
|
});
|
|
@@ -33,10 +33,26 @@ export default class DSBreadcrumbCO extends PageObject {
|
|
|
33
33
|
return $('[data-testid="breadcrumb-nav-container"]');
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
static async
|
|
36
|
+
static async getBreadcrumbs() {
|
|
37
|
+
return $$('[data-testid="breadcrumb-nav-container"]');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static async getBreadcrumbsByIndex(index = 0) {
|
|
41
|
+
return $$('[data-testid="breadcrumb-nav-container"]')[index];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static async getBreadcrumbNavItems(index) {
|
|
37
45
|
return $$('//li[@data-testid="breadcrumb-item-container"]/a')[index];
|
|
38
46
|
}
|
|
39
47
|
|
|
48
|
+
static async getBreadcrumbItems(index = 0) {
|
|
49
|
+
return $$('[data-testid="breadcrumb-item-container"]')[index];
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static async getBreadcrumbButtonItems(index) {
|
|
53
|
+
return $$('//li[@data-testid="breadcrumb-item-container"]/button')[index];
|
|
54
|
+
}
|
|
55
|
+
|
|
40
56
|
static async getBreadcrumbItem(text) {
|
|
41
57
|
return $(`a*=${text}`);
|
|
42
58
|
}
|
|
@@ -22,6 +22,10 @@ export default class DSButtonV3CO extends PageObject {
|
|
|
22
22
|
return $('[data-testid="ds-button"]');
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
static async getButtonByLabel(label) {
|
|
26
|
+
return $(`button*=${label}`);
|
|
27
|
+
}
|
|
28
|
+
|
|
25
29
|
// Snapshot
|
|
26
30
|
static snapshotPath(example = 'basic') {
|
|
27
31
|
return PageObject.getSnapshotPathBuilder('ButtonV3', example);
|
|
@@ -37,6 +37,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
37
37
|
await browser.keys(Key.Tab);
|
|
38
38
|
await browser.keys(Key.Enter);
|
|
39
39
|
await browser.keys(Key.ArrowDown);
|
|
40
|
+
await browser.keys(Key.ArrowDown);
|
|
40
41
|
await browser.keys(Key.Tab);
|
|
41
42
|
const selectedOption = await DSComboboxCO.getSelectedValues();
|
|
42
43
|
await expect(combobox).not.toBeFocused();
|
|
@@ -171,62 +171,7 @@ if (
|
|
|
171
171
|
await expect(dropdownMenu).toBeDisplayed();
|
|
172
172
|
});
|
|
173
173
|
});
|
|
174
|
-
|
|
175
|
-
before('loading page', async () => {
|
|
176
|
-
const errorOnGo = await DSComboboxCO.multiSelectFixedWidth.go();
|
|
177
|
-
if (errorOnGo) throw errorOnGo;
|
|
178
|
-
});
|
|
179
|
-
it('01: select all options', async () => {
|
|
180
|
-
await DSComboboxCO.openMenuListMouse();
|
|
181
|
-
const selectAllCheckbox = await DSComboboxCO.getSelectAllCheckbox();
|
|
182
|
-
await selectAllCheckbox.click();
|
|
183
|
-
const selectedOption = await DSComboboxCO.getOptionByLabel('Luke Skywalker too long this text is super long 1');
|
|
184
|
-
const overflowPill = await DSComboboxCO.getPillByLabel('+8');
|
|
185
|
-
const menulist = await DSComboboxCO.getMenuList();
|
|
186
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
187
|
-
await expect(showSelectedBtn).toHaveTextContaining('SHOW SELECTED [9]');
|
|
188
|
-
await expect(overflowPill).toBeDisplayedInViewport();
|
|
189
|
-
await expect(menulist).toBeDisplayedInViewport();
|
|
190
|
-
await expect(selectedOption).toBeDisplayedInViewport();
|
|
191
|
-
});
|
|
192
|
-
it('02: should display only selected options', async () => {
|
|
193
|
-
const selectedOptionBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
194
|
-
await selectedOptionBtn.click();
|
|
195
|
-
const numOptions = await DSComboboxCO.getNumberOptions();
|
|
196
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
197
|
-
await expect(showSelectedBtn).toHaveTextContaining('SHOW ALL');
|
|
198
|
-
await expect(numOptions).toBe(9);
|
|
199
|
-
});
|
|
200
|
-
it('03: should display all options', async () => {
|
|
201
|
-
const showAllBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
202
|
-
await showAllBtn.click();
|
|
203
|
-
const numOptions = await DSComboboxCO.getNumberOptions();
|
|
204
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
205
|
-
await expect(showSelectedBtn).toHaveTextContaining('SHOW SELECTED [9]');
|
|
206
|
-
await expect(numOptions).toBe(11);
|
|
207
|
-
});
|
|
208
|
-
it('04: should unselect last item', async () => {
|
|
209
|
-
await browser.keys(Key.ArrowUp);
|
|
210
|
-
const option2 = await DSComboboxCO.getOptionByIndex(9);
|
|
211
|
-
await option2.click();
|
|
212
|
-
const overflowPill = await DSComboboxCO.getPillByLabel('+7');
|
|
213
|
-
await expect(overflowPill).toBeDisplayedInViewport();
|
|
214
|
-
});
|
|
215
|
-
it('05: should unselect all items', async () => {
|
|
216
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
217
|
-
await showSelectedBtn.click();
|
|
218
|
-
const selectAllCheckbox = await DSComboboxCO.getSelectAllCheckbox();
|
|
219
|
-
await selectAllCheckbox.click();
|
|
220
|
-
const numOptions = await DSComboboxCO.getNumberOptions();
|
|
221
|
-
const zeroSelected = await DSComboboxCO.getZeroSelectedMsg();
|
|
222
|
-
const selectedOption = await DSComboboxCO.getPillByLabel('Luke Skywalker too long this text is super long 1');
|
|
223
|
-
const overflowPill = await DSComboboxCO.getPillByLabel('+7');
|
|
224
|
-
await expect(zeroSelected).toBeDisplayedInViewport();
|
|
225
|
-
await expect(numOptions).toBe(11);
|
|
226
|
-
await expect(selectedOption).not.toBeDisplayedInViewport();
|
|
227
|
-
await expect(overflowPill).not.toBeDisplayedInViewport();
|
|
228
|
-
});
|
|
229
|
-
});
|
|
174
|
+
|
|
230
175
|
describe('PUI-8130 - ComboboxV3:: Single Select - basic- keyboard func', () => {
|
|
231
176
|
before('loading page', async () => {
|
|
232
177
|
const errorOnGo = await DSComboboxCO.singleSelectFixedWidth.go();
|
|
@@ -256,6 +201,7 @@ if (
|
|
|
256
201
|
});
|
|
257
202
|
it('05: should select an option and close the menu - ENTER', async () => {
|
|
258
203
|
const menulist = await DSComboboxCO.getMenuList();
|
|
204
|
+
await browser.keys(Key.ArrowDown);
|
|
259
205
|
await browser.keys(Key.Enter);
|
|
260
206
|
const selectedOption = await DSComboboxCO.getSelectedValues();
|
|
261
207
|
await expect(menulist).not.toBeDisplayed();
|
|
@@ -281,6 +227,7 @@ if (
|
|
|
281
227
|
await browser.keys(Key.ArrowDown);
|
|
282
228
|
await browser.keys(Key.ArrowDown);
|
|
283
229
|
await browser.keys(Key.ArrowDown);
|
|
230
|
+
await browser.keys(Key.ArrowDown);
|
|
284
231
|
await browser.keys(Key.Enter);
|
|
285
232
|
const selectedOption = await DSComboboxCO.getSelectedValues();
|
|
286
233
|
await expect(selectedOption).toHaveTextContaining('(555) 555-5555');
|
|
@@ -313,6 +260,7 @@ if (
|
|
|
313
260
|
await expect(numOptions).toBe(2);
|
|
314
261
|
});
|
|
315
262
|
it('04: select filtered option - Enter', async () => {
|
|
263
|
+
await browser.keys(Key.ArrowDown);
|
|
316
264
|
await browser.keys(Key.Enter);
|
|
317
265
|
const selectedOption = await (await DSComboboxCO.getSimpleTruncateText()).getText();
|
|
318
266
|
await expect(selectedOption).toBe('Luke Skywalker too long this text is super long');
|
|
@@ -82,15 +82,6 @@ export default class DSComboboxCO extends PageObject {
|
|
|
82
82
|
return $('[data-testid="combobox-ally-selected-values"]');
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
// MENU
|
|
86
|
-
static async getSelectAllCheckbox() {
|
|
87
|
-
return $('#select-all-checkbox');
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
static async getSelectedOptionsToggle() {
|
|
91
|
-
return $('[data-testid="combobox-selected-options-toggle"]');
|
|
92
|
-
}
|
|
93
|
-
|
|
94
85
|
static async getMenuList() {
|
|
95
86
|
return $('[data-testid="combobox-menu-list"]');
|
|
96
87
|
}
|
|
@@ -15,6 +15,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
15
15
|
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.';
|
|
16
16
|
await browser.keys(Key.Tab);
|
|
17
17
|
await type(longText);
|
|
18
|
+
await browser.keys(Key.ArrowDown);
|
|
18
19
|
await browser.keys(Key.Enter);
|
|
19
20
|
const pill = await DSComboboxCO.getPillByLabel(longText);
|
|
20
21
|
const option = await DSComboboxCO.getOptionByLabel(longText);
|
|
@@ -24,6 +25,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
24
25
|
it('02: create another option', async () => {
|
|
25
26
|
const newOption = 'Lorem ipsum dolor sit amet';
|
|
26
27
|
await type(newOption);
|
|
28
|
+
await browser.keys(Key.ArrowDown);
|
|
27
29
|
await browser.keys(Key.Enter);
|
|
28
30
|
const pill = await DSComboboxCO.getPillByLabel('+1');
|
|
29
31
|
const option = await DSComboboxCO.getOptionByLabel(newOption);
|
|
@@ -35,6 +37,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
35
37
|
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.';
|
|
36
38
|
const checkbox = await DSComboboxCO.getCheckboxByLabel(longText);
|
|
37
39
|
await browser.keys(Key.ArrowDown);
|
|
40
|
+
await browser.keys(Key.ArrowDown);
|
|
38
41
|
await browser.keys(Key.Enter);
|
|
39
42
|
const pill = await DSComboboxCO.getPillByLabel(longText);
|
|
40
43
|
const isChecked = await DSComboboxCO.isChecked(checkbox);
|
|
@@ -16,7 +16,6 @@ if (
|
|
|
16
16
|
if (errorOnGo) throw errorOnGo;
|
|
17
17
|
});
|
|
18
18
|
it('should have a INLINE combobox integrated with dropdownPill and be axecore compliant', async () => {
|
|
19
|
-
await browser.eyesOpen();
|
|
20
19
|
const dropDownPillBtn = await DSComboboxCO.getPillDropDownBtn();
|
|
21
20
|
await dropDownPillBtn.click();
|
|
22
21
|
const option1 = await DSComboboxCO.getOptionByIndex(0);
|
|
@@ -28,6 +28,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
28
28
|
it('03: should open the dropdown menu and select an option - SPACE-ENTER', async () => {
|
|
29
29
|
await browser.keys(Key.Enter);
|
|
30
30
|
await browser.keys(Key.ArrowDown);
|
|
31
|
+
await browser.keys(Key.ArrowDown);
|
|
31
32
|
await browser.keys(Key.Enter);
|
|
32
33
|
const pill = await DSComboboxCO.getPillByLabel('Obi-Wan Kenobi');
|
|
33
34
|
const checkbox = await DSComboboxCO.getCheckboxByIndex(1);
|
|
@@ -39,6 +40,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
39
40
|
await browser.keys(Key.ArrowUp);
|
|
40
41
|
await browser.keys(Key.ArrowUp);
|
|
41
42
|
await browser.keys(Key.ArrowUp);
|
|
43
|
+
await browser.keys(Key.ArrowUp);
|
|
42
44
|
await browser.keys(Key.Enter);
|
|
43
45
|
const pill = await DSComboboxCO.getPillByLabel('Padme Amidala');
|
|
44
46
|
const checkbox = await DSComboboxCO.getCheckboxByIndex(2);
|
|
@@ -70,6 +72,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
70
72
|
await expect(numOptions).toBe(2);
|
|
71
73
|
});
|
|
72
74
|
it('02: should select a filtered option - Enter', async () => {
|
|
75
|
+
await browser.keys(Key.ArrowDown);
|
|
73
76
|
await browser.keys(Key.ArrowDown);
|
|
74
77
|
await browser.keys(Key.Enter);
|
|
75
78
|
const pill = await DSComboboxCO.getPillByLabel('Anakin Skywalker');
|
|
@@ -88,6 +91,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
88
91
|
await expect(numOptions).toBe(1);
|
|
89
92
|
});
|
|
90
93
|
it('05: select an option - ENTER', async () => {
|
|
94
|
+
await browser.keys(Key.ArrowDown);
|
|
91
95
|
await browser.keys(Key.Enter);
|
|
92
96
|
const pill = await DSComboboxCO.getPillByLabel('Luke Skywalker too long this text is super long');
|
|
93
97
|
const checkbox = await DSComboboxCO.getCheckboxByIndex(0);
|
|
@@ -99,6 +103,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
99
103
|
await browser.keys(Key.ArrowDown);
|
|
100
104
|
await browser.keys(Key.ArrowDown);
|
|
101
105
|
await browser.keys(Key.ArrowDown);
|
|
106
|
+
await browser.keys(Key.ArrowDown);
|
|
102
107
|
await browser.keys(Key.Enter);
|
|
103
108
|
const pill = await DSComboboxCO.getPillByLabel('Anakin Skywalker');
|
|
104
109
|
const checkbox = await DSComboboxCO.getCheckboxByLabel('Anakin Skywalker');
|
package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.keyboard-multi-select.func.spec.js
CHANGED
|
@@ -33,6 +33,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
33
33
|
});
|
|
34
34
|
it('05: should select an option and not close the menu - ENTER', async () => {
|
|
35
35
|
const menulist = await DSComboboxCO.getMenuList();
|
|
36
|
+
await browser.keys(Key.ArrowDown);
|
|
36
37
|
await browser.keys(Key.Enter);
|
|
37
38
|
const selectedOption = await DSComboboxCO.getSelectedValues();
|
|
38
39
|
await expect(menulist).toBeDisplayed();
|
|
@@ -41,6 +42,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
41
42
|
it('06: should select last option and not close the menu - ArrowUp', async () => {
|
|
42
43
|
const menulist = await DSComboboxCO.getMenuList();
|
|
43
44
|
await browser.keys(Key.ArrowUp);
|
|
45
|
+
await browser.keys(Key.ArrowUp);
|
|
44
46
|
await browser.keys(Key.Enter);
|
|
45
47
|
const overflowPill = await DSComboboxCO.getPillByLabel('+1');
|
|
46
48
|
await expect(menulist).toBeDisplayed();
|
|
@@ -55,6 +57,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
55
57
|
await browser.keys(Key.ArrowDown);
|
|
56
58
|
await browser.keys(Key.ArrowDown);
|
|
57
59
|
await browser.keys(Key.ArrowDown);
|
|
60
|
+
await browser.keys(Key.ArrowDown);
|
|
58
61
|
await browser.keys(Key.Enter);
|
|
59
62
|
const selectedOption = await DSComboboxCO.getPillByLabel('+1');
|
|
60
63
|
await expect(selectedOption).toBeDisplayedInViewport();
|
|
@@ -68,6 +71,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
68
71
|
it('01: should unselect an option - Backspace', async () => {
|
|
69
72
|
await browser.keys(Key.Tab);
|
|
70
73
|
await type(')');
|
|
74
|
+
await browser.keys(Key.ArrowDown);
|
|
71
75
|
await browser.keys(Key.Enter);
|
|
72
76
|
const selectedOption = await DSComboboxCO.getPillByLabel('(555) 555-5555');
|
|
73
77
|
await selectedOption.waitForDisplayed();
|
|
@@ -76,6 +80,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
76
80
|
});
|
|
77
81
|
it('02: should unselect an option - using X close pill btn', async () => {
|
|
78
82
|
await type('2');
|
|
83
|
+
await browser.keys(Key.ArrowDown);
|
|
79
84
|
await browser.keys(Key.Enter);
|
|
80
85
|
const selectedOption = await DSComboboxCO.getPillByLabel('Luke Skywalker too long this text is super long 2');
|
|
81
86
|
await selectedOption.waitForDisplayed();
|
|
@@ -111,6 +116,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
111
116
|
await expect(numOptions).toBe(3);
|
|
112
117
|
});
|
|
113
118
|
it('04: select filtered option - Enter', async () => {
|
|
119
|
+
await browser.keys(Key.ArrowDown);
|
|
114
120
|
await browser.keys(Key.Enter);
|
|
115
121
|
const selectedOption = await DSComboboxCO.getPillByLabel('Luke Skywalker too long this text is super long 1');
|
|
116
122
|
await expect(selectedOption).toBeDisplayed();
|
|
@@ -144,72 +150,4 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
144
150
|
await expect(inputText).toBeFocused();
|
|
145
151
|
});
|
|
146
152
|
});
|
|
147
|
-
describe('PUI-8139 - ComboboxV3:: Multi Select - selectAll - keyboard func', () => {
|
|
148
|
-
before('loading page', async () => {
|
|
149
|
-
const errorOnGo = await DSComboboxCO.multiSelectFixedWidth.go();
|
|
150
|
-
if (errorOnGo) throw errorOnGo;
|
|
151
|
-
});
|
|
152
|
-
it('01: select all options', async () => {
|
|
153
|
-
await DSComboboxCO.openMenuUsingKeyboard();
|
|
154
|
-
await browser.keys(Key.Tab);
|
|
155
|
-
await browser.keys(Key.Space);
|
|
156
|
-
const selectedOption = await DSComboboxCO.getOptionByLabel('Luke Skywalker too long this text is super long 1');
|
|
157
|
-
const overflowPill = await DSComboboxCO.getPillByLabel('+8');
|
|
158
|
-
const menulist = await DSComboboxCO.getMenuList();
|
|
159
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
160
|
-
await expect(showSelectedBtn).toHaveTextContaining('SHOW SELECTED [9]');
|
|
161
|
-
await expect(overflowPill).toBeDisplayedInViewport();
|
|
162
|
-
await expect(menulist).toBeDisplayedInViewport();
|
|
163
|
-
await expect(selectedOption).toBeDisplayedInViewport();
|
|
164
|
-
});
|
|
165
|
-
it('02: should display only selected options', async () => {
|
|
166
|
-
await browser.keys(Key.Tab);
|
|
167
|
-
await browser.keys(Key.Space);
|
|
168
|
-
const numOptions = await DSComboboxCO.getNumberOptions();
|
|
169
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
170
|
-
await expect(showSelectedBtn).toHaveTextContaining('SHOW ALL');
|
|
171
|
-
await expect(numOptions).toBe(9);
|
|
172
|
-
});
|
|
173
|
-
it('03: should unselect last item', async () => {
|
|
174
|
-
await browser.keys(Key.Tab);
|
|
175
|
-
await browser.keys(Key.Enter);
|
|
176
|
-
const option = await DSComboboxCO.getOptionByLabel('Anakin Skywalker 5');
|
|
177
|
-
const overflowPill = await DSComboboxCO.getPillByLabel('+7');
|
|
178
|
-
await expect(option).not.toBeDisplayedInViewport();
|
|
179
|
-
await expect(overflowPill).toBeDisplayedInViewport();
|
|
180
|
-
});
|
|
181
|
-
it('04: should unselect all items', async () => {
|
|
182
|
-
await browser.keys(Key.Tab);
|
|
183
|
-
await browser.keys(Key.Space);
|
|
184
|
-
const numOptions = await DSComboboxCO.getNumberOptions();
|
|
185
|
-
const zeroSelected = await DSComboboxCO.getZeroSelectedMsg();
|
|
186
|
-
const selectedOption = await DSComboboxCO.getPillByLabel('Luke Skywalker too long this text is super long 1');
|
|
187
|
-
const overflowPill = await DSComboboxCO.getPillByLabel('+8');
|
|
188
|
-
await expect(zeroSelected).toBeDisplayedInViewport();
|
|
189
|
-
await expect(numOptions).toBe(11);
|
|
190
|
-
await expect(selectedOption).not.toBeDisplayedInViewport();
|
|
191
|
-
await expect(overflowPill).not.toBeDisplayedInViewport();
|
|
192
|
-
});
|
|
193
|
-
it('05: should close menu list correctly - focus in selectAll checkbox', async () => {
|
|
194
|
-
await browser.keys(Key.Tab);
|
|
195
|
-
await browser.keys(Key.Escape);
|
|
196
|
-
const menulist = await DSComboboxCO.getMenuList();
|
|
197
|
-
const comboboxInput = await DSComboboxCO.getComboboxInput();
|
|
198
|
-
await expect(menulist).not.toBeDisplayedInViewport();
|
|
199
|
-
await expect(comboboxInput).toBeFocused();
|
|
200
|
-
});
|
|
201
|
-
it('06: should close menu list correctly - focus in show selected toggle btn', async () => {
|
|
202
|
-
await browser.keys(Key.Enter);
|
|
203
|
-
await browser.keys(Key.Tab);
|
|
204
|
-
await browser.keys(Key.Space);
|
|
205
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
206
|
-
await showSelectedBtn.waitForDisplayed();
|
|
207
|
-
await browser.keys(Key.Tab);
|
|
208
|
-
await browser.keys(Key.Escape);
|
|
209
|
-
const menulist = await DSComboboxCO.getMenuList();
|
|
210
|
-
const comboboxInput = await DSComboboxCO.getComboboxInput();
|
|
211
|
-
await expect(menulist).not.toBeDisplayedInViewport();
|
|
212
|
-
await expect(comboboxInput).toBeFocused();
|
|
213
|
-
});
|
|
214
|
-
});
|
|
215
153
|
}
|
package/ds-controlled-form/ds-combobox/multi-select/DSCombobox.mouse-touch-multi-select.func.spec.js
CHANGED
|
@@ -162,62 +162,4 @@ if (!browser.capabilities['ice:options'].isPhone && browser.capabilities.browser
|
|
|
162
162
|
});
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
|
-
describe('PUI-8166 - ComboboxV3:: Multi Select - selectAll - func', () => {
|
|
166
|
-
before('loading page', async () => {
|
|
167
|
-
const errorOnGo = await DSComboboxCO.multiSelectFixedWidth.go();
|
|
168
|
-
if (errorOnGo) throw errorOnGo;
|
|
169
|
-
});
|
|
170
|
-
it('01: select all options', async () => {
|
|
171
|
-
await DSComboboxCO.openMenuListMouse();
|
|
172
|
-
const selectAllCheckbox = await DSComboboxCO.getSelectAllCheckbox();
|
|
173
|
-
await selectAllCheckbox.click();
|
|
174
|
-
const selectedOption = await DSComboboxCO.getOptionByLabel('Luke Skywalker too long this text is super long 1');
|
|
175
|
-
const overflowPill = await DSComboboxCO.getPillByLabel('+8');
|
|
176
|
-
const menulist = await DSComboboxCO.getMenuList();
|
|
177
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
178
|
-
await expect(showSelectedBtn).toHaveTextContaining('SHOW SELECTED [9]');
|
|
179
|
-
await expect(overflowPill).toBeDisplayedInViewport();
|
|
180
|
-
await expect(menulist).toBeDisplayedInViewport();
|
|
181
|
-
await expect(selectedOption).toBeDisplayedInViewport();
|
|
182
|
-
});
|
|
183
|
-
it('02: should display only selected options', async () => {
|
|
184
|
-
const selectedOptionBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
185
|
-
await selectedOptionBtn.click();
|
|
186
|
-
const numOptions = await DSComboboxCO.getNumberOptions();
|
|
187
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
188
|
-
await expect(showSelectedBtn).toHaveTextContaining('SHOW ALL');
|
|
189
|
-
await expect(numOptions).toBe(9);
|
|
190
|
-
});
|
|
191
|
-
it('03: should display all options', async () => {
|
|
192
|
-
const showAllBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
193
|
-
await showAllBtn.click();
|
|
194
|
-
const numOptions = await DSComboboxCO.getNumberOptions();
|
|
195
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
196
|
-
await expect(showSelectedBtn).toHaveTextContaining('SHOW SELECTED [9]');
|
|
197
|
-
await expect(numOptions).toBe(11);
|
|
198
|
-
});
|
|
199
|
-
it('04: should unselect last item', async () => {
|
|
200
|
-
const option = await DSComboboxCO.getOptionByLabel('Padme Amidala 3');
|
|
201
|
-
await option.scrollIntoView();
|
|
202
|
-
const option2 = await DSComboboxCO.getOptionByLabel('Anakin Skywalker 5');
|
|
203
|
-
await option2.scrollIntoView();
|
|
204
|
-
await option2.click();
|
|
205
|
-
const overflowPill = await DSComboboxCO.getPillByLabel('+7');
|
|
206
|
-
await expect(overflowPill).toBeDisplayedInViewport();
|
|
207
|
-
});
|
|
208
|
-
it('05: should unselect all items', async () => {
|
|
209
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
210
|
-
await showSelectedBtn.click();
|
|
211
|
-
const selectAllCheckbox = await DSComboboxCO.getSelectAllCheckbox();
|
|
212
|
-
await selectAllCheckbox.click();
|
|
213
|
-
const numOptions = await DSComboboxCO.getNumberOptions();
|
|
214
|
-
const zeroSelected = await DSComboboxCO.getZeroSelectedMsg();
|
|
215
|
-
const selectedOption = await DSComboboxCO.getPillByLabel('Luke Skywalker too long this text is super long 1');
|
|
216
|
-
const overflowPill = await DSComboboxCO.getPillByLabel('+7');
|
|
217
|
-
await expect(zeroSelected).toBeDisplayedInViewport();
|
|
218
|
-
await expect(numOptions).toBe(11);
|
|
219
|
-
await expect(selectedOption).not.toBeDisplayedInViewport();
|
|
220
|
-
await expect(overflowPill).not.toBeDisplayedInViewport();
|
|
221
|
-
});
|
|
222
|
-
});
|
|
223
165
|
}
|
|
@@ -43,22 +43,6 @@ if (!browser.capabilities['ice:options'].isPhone && browser.capabilities.browser
|
|
|
43
43
|
);
|
|
44
44
|
await expect(snapshot).toEqual(0);
|
|
45
45
|
});
|
|
46
|
-
it('05: should display only selected options - click show selected', async () => {
|
|
47
|
-
await browser.eyesOpen();
|
|
48
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
49
|
-
await showSelectedBtn.click();
|
|
50
|
-
const snapshot = await browser.eyesCheckSnapshot(DSComboboxCO.snapshotPath('comboboxV3-multi-show-selected'));
|
|
51
|
-
await expect(snapshot).toEqual(0);
|
|
52
|
-
});
|
|
53
|
-
it('06: should display all options - click select all', async () => {
|
|
54
|
-
await browser.eyesOpen();
|
|
55
|
-
const showSelectedBtn = await DSComboboxCO.getSelectedOptionsToggle();
|
|
56
|
-
await showSelectedBtn.click();
|
|
57
|
-
const selectAll = await DSComboboxCO.getSelectAllCheckbox();
|
|
58
|
-
await selectAll.click();
|
|
59
|
-
const snapshot = await browser.eyesCheckSnapshot(DSComboboxCO.snapshotPath('comboboxV3-multi-all-selected'));
|
|
60
|
-
await expect(snapshot).toEqual(0);
|
|
61
|
-
});
|
|
62
46
|
if (browser.capabilities['ice:options'].isTablet) {
|
|
63
47
|
it('07: should display tooltip - touch truncated pill', async () => {
|
|
64
48
|
await browser.eyesOpen();
|