dimsum-e2e-tests 3.51.0-next.2 → 3.51.0-next.4
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 +8 -0
- 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
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/* eslint-disable max-len */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSLargeInputTextCO from '../DSLargeInputTextCO';
|
|
4
|
+
import { axeCoreCheck, type } from '../../../helpers';
|
|
5
|
+
|
|
6
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
7
|
+
describe('PUI-15015 - LargeInputText:: Read Only: Basic -Func', () => {
|
|
8
|
+
before('loading page', async () => {
|
|
9
|
+
const errorOnGo = await DSLargeInputTextCO.readOnlyURL.go();
|
|
10
|
+
if (errorOnGo) throw errorOnGo;
|
|
11
|
+
});
|
|
12
|
+
it('01: should have readOnly attribute', async () => {
|
|
13
|
+
const input = await DSLargeInputTextCO.getInputByIndex(0);
|
|
14
|
+
await input.waitForDisplayed();
|
|
15
|
+
const result = await axeCoreCheck();
|
|
16
|
+
expect(result.length).toBe(0);
|
|
17
|
+
});
|
|
18
|
+
it('02: should be able to focus but not be able to type', async () => {
|
|
19
|
+
const input = await DSLargeInputTextCO.getInputByIndex(0);
|
|
20
|
+
await input.click();
|
|
21
|
+
await type('New text');
|
|
22
|
+
const content = await input.getText();
|
|
23
|
+
await expect(input).toBeFocused();
|
|
24
|
+
await expect(content).toBe('Default Value');
|
|
25
|
+
});
|
|
26
|
+
it('03: should not be able to delete', async () => {
|
|
27
|
+
const input = await DSLargeInputTextCO.getInputByIndex(0);
|
|
28
|
+
await input.click();
|
|
29
|
+
await browser.keys(Key.ArrowRight);
|
|
30
|
+
await browser.keys(Key.Backspace);
|
|
31
|
+
const content = await input.getText();
|
|
32
|
+
await expect(input).toBeFocused();
|
|
33
|
+
await expect(content).toBe('Default Value');
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* eslint-disable max-len */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
2
3
|
import DSLargeInputTextCO from '../DSLargeInputTextCO';
|
|
3
4
|
|
|
4
5
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
@@ -11,7 +12,17 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
11
12
|
await browser.eyesOpen();
|
|
12
13
|
const input = await DSLargeInputTextCO.getInputByIndex(0);
|
|
13
14
|
await input.waitForDisplayed();
|
|
14
|
-
const snapshot = await browser.eyesCheckSnapshot(
|
|
15
|
+
const snapshot = await browser.eyesCheckSnapshot(
|
|
16
|
+
DSLargeInputTextCO.snapshotPath('large-input-read-only-default'),
|
|
17
|
+
);
|
|
18
|
+
await expect(snapshot).toEqual(0);
|
|
19
|
+
});
|
|
20
|
+
it('02: should display focused LargeInputText with readOnly', async () => {
|
|
21
|
+
await browser.eyesOpen();
|
|
22
|
+
await browser.keys(Key.Tab);
|
|
23
|
+
const input = await DSLargeInputTextCO.getInputByIndex(0);
|
|
24
|
+
await input.waitForDisplayed();
|
|
25
|
+
const snapshot = await browser.eyesCheckSnapshot(DSLargeInputTextCO.snapshotPath('large-input-read-onl-focused'));
|
|
15
26
|
await expect(snapshot).toEqual(0);
|
|
16
27
|
});
|
|
17
28
|
});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable max-len */
|
|
1
2
|
/* eslint-disable max-lines */
|
|
2
3
|
import { Key } from 'webdriverio';
|
|
3
4
|
import { type } from '../../helpers';
|
|
@@ -9,14 +10,14 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
9
10
|
const errorOnGo = await DSInputTextCO.clearable.go();
|
|
10
11
|
if (errorOnGo) throw errorOnGo;
|
|
11
12
|
});
|
|
12
|
-
it('should write some text on the input and change the input value', async () => {
|
|
13
|
+
it('01: should write some text on the input and change the input value', async () => {
|
|
13
14
|
const input = await DSInputTextCO.getInputText();
|
|
14
15
|
await input.click();
|
|
15
16
|
await type('Hola');
|
|
16
17
|
const inputValue = await input.getAttribute('value');
|
|
17
18
|
await expect(inputValue).toEqual('Hola');
|
|
18
19
|
});
|
|
19
|
-
it('should erase the content from within the input and have an empty value for the input', async () => {
|
|
20
|
+
it('02: should erase the content from within the input and have an empty value for the input', async () => {
|
|
20
21
|
const input = await DSInputTextCO.getInputText();
|
|
21
22
|
await input.click();
|
|
22
23
|
await browser.keys(Key.Backspace);
|
|
@@ -33,44 +34,45 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
33
34
|
const errorOnGo = await DSInputTextCO.autocompleteURL.go();
|
|
34
35
|
if (errorOnGo) throw errorOnGo;
|
|
35
36
|
});
|
|
36
|
-
it('should not open the autocomplete list if there are no characters even with focus', async () => {
|
|
37
|
+
it('01: should not open the autocomplete list if there are no characters even with focus', async () => {
|
|
37
38
|
const input = await DSInputTextCO.getInputText();
|
|
38
39
|
await input.click();
|
|
39
40
|
const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
|
|
40
41
|
await expect(autocompleteList).not.toBeDisplayedInViewport();
|
|
41
42
|
});
|
|
42
|
-
it('should display autocomplete list after getting one character in the input', async () => {
|
|
43
|
+
it('02: should display autocomplete list after getting one character in the input', async () => {
|
|
43
44
|
await type('4');
|
|
44
45
|
const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
|
|
45
46
|
await expect(autocompleteList).toBeDisplayedInViewport();
|
|
46
47
|
});
|
|
47
|
-
it('should not close the autocomplete list after getting more characters', async () => {
|
|
48
|
+
it('03: should not close the autocomplete list after getting more characters', async () => {
|
|
48
49
|
await type('4');
|
|
49
50
|
const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
|
|
50
51
|
await expect(autocompleteList).toBeDisplayedInViewport();
|
|
51
52
|
});
|
|
52
|
-
it('should close the autocomplete list after getting more characters which dont match any option', async () => {
|
|
53
|
+
it('04: should close the autocomplete list after getting more characters which dont match any option', async () => {
|
|
53
54
|
await type('Z');
|
|
54
55
|
const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
|
|
55
56
|
await expect(autocompleteList).not.toBeDisplayedInViewport();
|
|
56
57
|
});
|
|
57
|
-
it('should display autocomplete options after erasing the character which caused a mismatch', async () => {
|
|
58
|
+
it('05: should display autocomplete options after erasing the character which caused a mismatch', async () => {
|
|
58
59
|
await browser.keys(Key.Backspace);
|
|
59
60
|
const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
|
|
60
61
|
await expect(autocompleteList).toBeDisplayedInViewport();
|
|
61
62
|
});
|
|
62
|
-
it('should not close the autocomplete list after deleting a character if there are characters left', async () => {
|
|
63
|
+
it('06: should not close the autocomplete list after deleting a character if there are characters left', async () => {
|
|
63
64
|
await browser.keys(Key.Backspace);
|
|
64
65
|
const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
|
|
65
66
|
await expect(autocompleteList).toBeDisplayedInViewport();
|
|
66
67
|
});
|
|
67
|
-
it('should close the autocomplete list after deleting a character if there are no characters left', async () => {
|
|
68
|
+
it('07: should close the autocomplete list after deleting a character if there are no characters left', async () => {
|
|
68
69
|
await browser.keys(Key.Backspace);
|
|
69
70
|
const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
|
|
70
71
|
await expect(autocompleteList).not.toBeDisplayedInViewport();
|
|
71
72
|
});
|
|
72
|
-
it('should select the first autocomplete list item and change the value of the input', async () => {
|
|
73
|
+
it('08: should select the first autocomplete list item and change the value of the input', async () => {
|
|
73
74
|
await type('4');
|
|
75
|
+
await browser.keys(Key.ArrowDown);
|
|
74
76
|
await browser.keys(Key.Enter);
|
|
75
77
|
const input = await DSInputTextCO.getInputText();
|
|
76
78
|
const autocompleteList = await DSInputTextCO.getAutocompleteMenuList();
|
|
@@ -85,7 +87,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
85
87
|
const errorOnGo = await DSInputTextCO.autocompleteURL.go();
|
|
86
88
|
if (errorOnGo) throw errorOnGo;
|
|
87
89
|
});
|
|
88
|
-
it('should click an autocomplete option and the input should have that value', async () => {
|
|
90
|
+
it('01: should click an autocomplete option and the input should have that value', async () => {
|
|
89
91
|
const input = await DSInputTextCO.getInputText();
|
|
90
92
|
await input.click();
|
|
91
93
|
await type('44');
|
|
@@ -103,7 +105,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
103
105
|
const errorOnGo = await DSInputTextCO.clearable.go();
|
|
104
106
|
if (errorOnGo) throw errorOnGo;
|
|
105
107
|
});
|
|
106
|
-
it('should click an autocomplete option and the input should have that value', async () => {
|
|
108
|
+
it('01: should click an autocomplete option and the input should have that value', async () => {
|
|
107
109
|
const input = await DSInputTextCO.getInputText();
|
|
108
110
|
await input.click();
|
|
109
111
|
await type('Hola');
|
|
@@ -19,6 +19,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
19
19
|
const comboBox = await ReactHookCO.getCombobox();
|
|
20
20
|
await comboBox.click();
|
|
21
21
|
await browser.keys(Key.ArrowDown);
|
|
22
|
+
await browser.keys(Key.ArrowDown);
|
|
22
23
|
await browser.keys(Key.Return);
|
|
23
24
|
await browser.keys(Key.ArrowDown);
|
|
24
25
|
await browser.keys(Key.Return);
|
|
@@ -124,6 +124,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
124
124
|
});
|
|
125
125
|
it('03: should create a new option', async () => {
|
|
126
126
|
await type('OHN');
|
|
127
|
+
await browser.keys(Key.ArrowDown);
|
|
127
128
|
await browser.keys(Key.Enter);
|
|
128
129
|
const pill = await FilterBarCO.getPillByText('JOHN');
|
|
129
130
|
await expect(pill).toBeDisplayedInViewport();
|
|
@@ -133,6 +134,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
133
134
|
await pillCloseBtn.click();
|
|
134
135
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
135
136
|
await type('John');
|
|
137
|
+
await browser.keys(Key.ArrowDown);
|
|
136
138
|
await browser.keys(Key.Enter);
|
|
137
139
|
const results = await RowCO.getRows();
|
|
138
140
|
const filteredNames = await DSDataTableCO.getAllColumnResults(results, 1);
|
|
@@ -163,6 +165,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
163
165
|
});
|
|
164
166
|
it('03: should create a new option', async () => {
|
|
165
167
|
await type('act');
|
|
168
|
+
await browser.keys(Key.ArrowDown);
|
|
166
169
|
await browser.keys(Key.Enter);
|
|
167
170
|
const pill = await FilterBarCO.getPillByText('React');
|
|
168
171
|
const menuItems = await FiltersCO.getFilterMultiSelectMenuItems();
|
|
@@ -172,6 +175,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
172
175
|
});
|
|
173
176
|
it('04: type a valid value', async () => {
|
|
174
177
|
await type('React dev');
|
|
178
|
+
await browser.keys(Key.ArrowDown);
|
|
175
179
|
await browser.keys(Key.Enter);
|
|
176
180
|
const results = await RowCO.getRows();
|
|
177
181
|
const filteredNames = await DSDataTableCO.getAllColumnResults(results, 2);
|
|
@@ -14,13 +14,14 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
14
14
|
if (errorOnGo) throw errorOnGo;
|
|
15
15
|
await DSDataTableCO.waitForDataTable();
|
|
16
16
|
});
|
|
17
|
-
it('should open the filter', async () => {
|
|
17
|
+
it('01: should open the filter', async () => {
|
|
18
18
|
await FiltersCO.openFilterPopperByColumnName('position', 0);
|
|
19
19
|
const inputSingleSelect = await FiltersCO.getFilterSingleSelectInput();
|
|
20
20
|
await expect(inputSingleSelect).toBeFocused();
|
|
21
21
|
});
|
|
22
|
-
it('
|
|
22
|
+
it('02: should interact the datatable and get the AllDataCSV correctly', async () => {
|
|
23
23
|
await type('Dev');
|
|
24
|
+
await browser.keys(Key.ArrowDown);
|
|
24
25
|
await browser.keys(Key.Enter);
|
|
25
26
|
const checkBox1 = await RowCO.getRowCheckBoxByIndex(2);
|
|
26
27
|
await checkBox1.click();
|
|
@@ -51,7 +52,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
51
52
|
"19","John ""lil finger"" doe","Developer/Coffe-maker, $_maker","","9856","7/19/2020","7/19/2019"
|
|
52
53
|
"20","Francisco 'the singer' de la vega","Designer || U.I. master","ARG","0,123.451235 !@#$%^&*() bitcoins","8/20/2020","8/20/2019"`);
|
|
53
54
|
});
|
|
54
|
-
it('
|
|
55
|
+
it('03: should have the datatable previously interacted and export the SelectedCSV', async () => {
|
|
55
56
|
const getSelectedBtn = await ExportCsvCO.getBtnSelectedDataCSV();
|
|
56
57
|
await getSelectedBtn.click();
|
|
57
58
|
const getSelectedTxt = await ExportCsvCO.getSelectedDataCSV();
|
|
@@ -60,7 +61,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
60
61
|
"5","John ""lil finger"" doe","Developer/Coffe-maker, $_maker","","9856","5/5/2020","5/5/2019"
|
|
61
62
|
"11","John ""lil finger"" doe","Developer/Coffe-maker, $_maker","","9856","11/11/2020","11/11/2019"`);
|
|
62
63
|
});
|
|
63
|
-
it('
|
|
64
|
+
it('04: should have the datatable previously interacted and export the FilteredCSV', async () => {
|
|
64
65
|
const getFilteredBtn = await ExportCsvCO.getBtnFilteredDataCSV();
|
|
65
66
|
await getFilteredBtn.click();
|
|
66
67
|
const getFilteredTxt = await ExportCsvCO.getFilteredDataCSV();
|
|
@@ -134,6 +134,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
134
134
|
});
|
|
135
135
|
it('Should show datatable with filterbar', async () => {
|
|
136
136
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
137
|
+
await browser.keys(Key.ArrowDown);
|
|
137
138
|
await browser.keys(Key.Return);
|
|
138
139
|
const snapshot = await browser.checkSnapshot(DSDataTableCO.snapshotPath('datatable-filterbar-present'));
|
|
139
140
|
await expect(snapshot).toEqual(0);
|
|
@@ -43,6 +43,10 @@ export default class RowCO extends PageObject {
|
|
|
43
43
|
return rows.$('[data-testid="data-table-checkbox"]');
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
+
static getCheckboxById(id) {
|
|
47
|
+
return $(`[id*="checkbox-${id}"]`);
|
|
48
|
+
}
|
|
49
|
+
|
|
46
50
|
static getRowExpandButtonByRow = async (row) => row.$('[data-testid="data-table-row-expand-cell"]');
|
|
47
51
|
|
|
48
52
|
static getRowExpandButtonByIndex = async (index) => $$('[data-testid="data-table-row-expand-cell"]')[index];
|
|
@@ -183,7 +183,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
183
183
|
if (errorOnGo) throw errorOnGo;
|
|
184
184
|
await DSDataTableCO.waitForDataTable();
|
|
185
185
|
});
|
|
186
|
-
it('Should show expanded rows, row 1
|
|
186
|
+
it('Should show expanded rows, row 1 within row 3', async () => {
|
|
187
187
|
const globalExpandBtn = await HeaderCO.getHeaderExpandButton();
|
|
188
188
|
await globalExpandBtn.click();
|
|
189
189
|
const secondRow = await RowCO.getRowByIndex(1);
|
|
@@ -29,6 +29,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
29
29
|
});
|
|
30
30
|
it('03: should create a new option', async () => {
|
|
31
31
|
await type('OHN');
|
|
32
|
+
await browser.keys(Key.ArrowDown);
|
|
32
33
|
await browser.keys(Key.Enter);
|
|
33
34
|
const pill = await FilterBarCO.getPillByText('JOHN');
|
|
34
35
|
await expect(pill).toBeDisplayedInViewport();
|
|
@@ -38,6 +39,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
38
39
|
await pillCloseBtn.click();
|
|
39
40
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
40
41
|
await type('John');
|
|
42
|
+
await browser.keys(Key.ArrowDown);
|
|
41
43
|
await browser.keys(Key.Enter);
|
|
42
44
|
const results = await RowCO.getRows();
|
|
43
45
|
const filteredNames = await DSDataTableCO.getAllColumnResults(results, 1);
|
|
@@ -68,6 +70,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
68
70
|
});
|
|
69
71
|
it('03: should create a new option', async () => {
|
|
70
72
|
await type('act');
|
|
73
|
+
await browser.keys(Key.ArrowDown);
|
|
71
74
|
await browser.keys(Key.Enter);
|
|
72
75
|
const pill = await FilterBarCO.getPillByText('React');
|
|
73
76
|
const menuItems = await FiltersCO.getFilterMultiSelectMenuItems();
|
|
@@ -77,6 +80,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
77
80
|
});
|
|
78
81
|
it('04: type a valid value', async () => {
|
|
79
82
|
await type('React dev');
|
|
83
|
+
await browser.keys(Key.ArrowDown);
|
|
80
84
|
await browser.keys(Key.Enter);
|
|
81
85
|
const results = await RowCO.getRows();
|
|
82
86
|
const filteredNames = await DSDataTableCO.getAllColumnResults(results, 2);
|
|
@@ -35,6 +35,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
35
35
|
await expect(inputSingleSelect).toBeFocused();
|
|
36
36
|
});
|
|
37
37
|
it('05: should show only one value on the datatable and focus should be on filter button', async () => {
|
|
38
|
+
await browser.keys(Key.ArrowDown);
|
|
38
39
|
await browser.keys(Key.Enter);
|
|
39
40
|
const dataTableValues = (await RowCO.getRows()).length;
|
|
40
41
|
const filterBtn = await HeaderCO.getFilterBtnByIndex(0);
|
|
@@ -67,6 +67,8 @@ if (
|
|
|
67
67
|
});
|
|
68
68
|
it('02: should scroll to last row and pass axe-core', async () => {
|
|
69
69
|
await browser.keys(Key.End);
|
|
70
|
+
const lastRow = await RowCO.getRowAriaIndex(99);
|
|
71
|
+
await lastRow.waitForDisplayed();
|
|
70
72
|
const result = await axeCoreCheck();
|
|
71
73
|
await expect(result.length).toBe(0);
|
|
72
74
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { Key } from 'webdriverio';
|
|
4
4
|
import DSDataTableCO from '../DSDataTableCO';
|
|
5
5
|
import { HeaderCO, RowCO, FiltersCO } from '../components';
|
|
6
|
-
import { getRadioValue
|
|
6
|
+
import { getRadioValue } from '../helpers';
|
|
7
7
|
import { tabStops, isChecked, type } from '../../helpers';
|
|
8
8
|
import DSToggleCO from '../../ds-toggle/DSToggleCO';
|
|
9
9
|
|
|
@@ -52,91 +52,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
52
52
|
await expect(firstRowCheckboxButton).not.toBeClickable();
|
|
53
53
|
});
|
|
54
54
|
});
|
|
55
|
-
if (browser.capabilities.browserName !== 'Firefox') {
|
|
56
|
-
describe('PUI-7219 - DataTable, Row selection with shift + click', () => {
|
|
57
|
-
before('loading page', async () => {
|
|
58
|
-
const errorOnGo = await DSDataTableCO.multiSelect.go();
|
|
59
|
-
if (errorOnGo) throw errorOnGo;
|
|
60
|
-
await DSDataTableCO.waitForDataTable();
|
|
61
|
-
});
|
|
62
|
-
it('should select all the rows in the range except the ones that are disabled', async () => {
|
|
63
|
-
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
64
|
-
const checkbox4 = await RowCO.getRowCheckBoxByIndex(4);
|
|
65
|
-
await pressShiftKey('Shift');
|
|
66
|
-
await browser.pause(200);
|
|
67
|
-
await checkbox1.click();
|
|
68
|
-
await checkbox4.click();
|
|
69
|
-
await browser.pause(200);
|
|
70
|
-
await releaseShiftKey('Shift');
|
|
71
|
-
const checkBoxRow1 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
72
|
-
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
73
|
-
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
74
|
-
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
75
|
-
await expect(checkBoxRow1).toBe('true');
|
|
76
|
-
await expect(checkBoxRow2).toBe('true');
|
|
77
|
-
await expect(checkBoxRow3).toBe('false');
|
|
78
|
-
await expect(checkBoxRow4).toBe('true');
|
|
79
|
-
});
|
|
80
|
-
it('should unselect all the rows in the range', async () => {
|
|
81
|
-
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
82
|
-
const checkbox4 = await RowCO.getRowCheckBoxByIndex(4);
|
|
83
|
-
await pressShiftKey('Shift');
|
|
84
|
-
await browser.pause(200);
|
|
85
|
-
await checkbox4.click();
|
|
86
|
-
await checkbox1.click();
|
|
87
|
-
await browser.pause(200);
|
|
88
|
-
await releaseShiftKey('Shift');
|
|
89
|
-
const checkBoxRow1 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
90
|
-
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
91
|
-
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
92
|
-
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
93
|
-
await expect(checkBoxRow1).toBe('false');
|
|
94
|
-
await expect(checkBoxRow2).toBe('false');
|
|
95
|
-
await expect(checkBoxRow3).toBe('false');
|
|
96
|
-
await expect(checkBoxRow4).toBe('false');
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
describe('PUI-7220 - DataTable, Row selection with shift + space - keyboard', () => {
|
|
101
|
-
before('loading page', async () => {
|
|
102
|
-
const errorOnGo = await DSDataTableCO.multiSelect.go();
|
|
103
|
-
if (errorOnGo) throw errorOnGo;
|
|
104
|
-
await DSDataTableCO.waitForDataTable();
|
|
105
|
-
});
|
|
106
|
-
it('should select all the rows in the range except the ones that are disabled', async () => {
|
|
107
|
-
await tabStops(10);
|
|
108
|
-
await browser.keys(Key.Space);
|
|
109
|
-
await browser.pause(200);
|
|
110
|
-
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
111
|
-
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
112
|
-
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
113
|
-
await browser.keys([Key.Shift, Key.Space]);
|
|
114
|
-
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
115
|
-
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
116
|
-
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
117
|
-
const checkBoxRow5 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
118
|
-
await expect(checkBoxRow2).toBe('true');
|
|
119
|
-
await expect(checkBoxRow3).toBe('true');
|
|
120
|
-
await expect(checkBoxRow4).toBe('false');
|
|
121
|
-
await expect(checkBoxRow5).toBe('true');
|
|
122
|
-
});
|
|
123
|
-
it('should unselect all the rows in the range', async () => {
|
|
124
|
-
await browser.keys(Key.Space);
|
|
125
|
-
await browser.pause(200);
|
|
126
|
-
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
127
|
-
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
128
|
-
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
129
|
-
await browser.keys([Key.Shift, Key.Space]);
|
|
130
|
-
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
131
|
-
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
132
|
-
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
133
|
-
const checkBoxRow5 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
134
|
-
await expect(checkBoxRow2).toBe('false');
|
|
135
|
-
await expect(checkBoxRow3).toBe('false');
|
|
136
|
-
await expect(checkBoxRow4).toBe('false');
|
|
137
|
-
await expect(checkBoxRow5).toBe('false');
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
55
|
describe('PUI-11233 - DataTable, Multi select disabled selection with uniqueRowAccessor', () => {
|
|
141
56
|
before('loading page', async () => {
|
|
142
57
|
const errorOnGo = await DSDataTableCO.multiSelectDisabledWithUniqueRowAccessor.go();
|
|
@@ -236,6 +151,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
236
151
|
await rowCheckBox.click();
|
|
237
152
|
await FiltersCO.openFilterPopperByColumnName('id', 0);
|
|
238
153
|
await type('1');
|
|
154
|
+
await browser.keys(Key.ArrowDown);
|
|
239
155
|
await browser.keys(Key.Return);
|
|
240
156
|
const globalCheckbox = await (await HeaderCO.getHeaderSelectCheckBox()).getAttribute('aria-checked');
|
|
241
157
|
const items = (await RowCO.getRows()).length;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
/* eslint-disable wdio/no-pause */
|
|
3
|
+
import { Key } from 'webdriverio';
|
|
4
|
+
import DSDataTableCO from '../DSDataTableCO';
|
|
5
|
+
import { RowCO } from '../components';
|
|
6
|
+
import { pressShiftKey, releaseShiftKey } from '../helpers';
|
|
7
|
+
import { tabStops } from '../../helpers';
|
|
8
|
+
|
|
9
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
10
|
+
if (browser.capabilities.browserName !== 'Firefox') {
|
|
11
|
+
describe('PUI-7219 - DataTable, Row selection with shift + click', () => {
|
|
12
|
+
before('loading page', async () => {
|
|
13
|
+
const errorOnGo = await DSDataTableCO.multiSelect.go();
|
|
14
|
+
if (errorOnGo) throw errorOnGo;
|
|
15
|
+
await DSDataTableCO.waitForDataTable();
|
|
16
|
+
});
|
|
17
|
+
it('01: should select all the rows in the range except the ones that are disabled', async () => {
|
|
18
|
+
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
19
|
+
const checkbox4 = await RowCO.getRowCheckBoxByIndex(4);
|
|
20
|
+
await pressShiftKey('Shift');
|
|
21
|
+
await browser.pause(200);
|
|
22
|
+
await checkbox1.click();
|
|
23
|
+
await checkbox4.click();
|
|
24
|
+
await browser.pause(200);
|
|
25
|
+
await releaseShiftKey('Shift');
|
|
26
|
+
const checkBoxRow1 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
27
|
+
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
28
|
+
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
29
|
+
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
30
|
+
await expect(checkBoxRow1).toBe('true');
|
|
31
|
+
await expect(checkBoxRow2).toBe('true');
|
|
32
|
+
await expect(checkBoxRow3).toBe('false');
|
|
33
|
+
await expect(checkBoxRow4).toBe('true');
|
|
34
|
+
});
|
|
35
|
+
it('02: should unselect all the rows in the range', async () => {
|
|
36
|
+
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
37
|
+
const checkbox4 = await RowCO.getRowCheckBoxByIndex(4);
|
|
38
|
+
await pressShiftKey('Shift');
|
|
39
|
+
await browser.pause(200);
|
|
40
|
+
await checkbox4.click();
|
|
41
|
+
await checkbox1.click();
|
|
42
|
+
await browser.pause(200);
|
|
43
|
+
await releaseShiftKey('Shift');
|
|
44
|
+
const checkBoxRow1 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
45
|
+
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
46
|
+
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
47
|
+
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
48
|
+
await expect(checkBoxRow1).toBe('false');
|
|
49
|
+
await expect(checkBoxRow2).toBe('false');
|
|
50
|
+
await expect(checkBoxRow3).toBe('false');
|
|
51
|
+
await expect(checkBoxRow4).toBe('false');
|
|
52
|
+
});
|
|
53
|
+
it('03: should select all the rows in the range from the begining to the middle of the table', async () => {
|
|
54
|
+
const checkbox1 = await RowCO.getRowCheckBoxByIndex(1);
|
|
55
|
+
await checkbox1.click();
|
|
56
|
+
await browser.pause(200);
|
|
57
|
+
await browser.keys(Key.PageDown);
|
|
58
|
+
await pressShiftKey('Shift');
|
|
59
|
+
const checkbox31 = await RowCO.getCheckboxById(31);
|
|
60
|
+
await checkbox31.click();
|
|
61
|
+
await browser.pause(200);
|
|
62
|
+
await releaseShiftKey('Shift');
|
|
63
|
+
const checkBoxRow11 = await (await RowCO.getCheckboxById(11)).getAttribute('aria-checked');
|
|
64
|
+
const checkBoxRow21 = await (await RowCO.getCheckboxById(21)).getAttribute('aria-checked');
|
|
65
|
+
const checkBoxRow31 = await (await RowCO.getCheckboxById(31)).getAttribute('aria-checked');
|
|
66
|
+
await expect(checkBoxRow11).toBe('true');
|
|
67
|
+
await expect(checkBoxRow21).toBe('true');
|
|
68
|
+
await expect(checkBoxRow31).toBe('true');
|
|
69
|
+
});
|
|
70
|
+
it('04: should select all the rows in the table', async () => {
|
|
71
|
+
await browser.keys(Key.End);
|
|
72
|
+
await pressShiftKey('Shift');
|
|
73
|
+
const checkbox100 = await RowCO.getCheckboxById(100);
|
|
74
|
+
await checkbox100.click();
|
|
75
|
+
await browser.pause(200);
|
|
76
|
+
await releaseShiftKey('Shift');
|
|
77
|
+
const checkBoxRow81 = await (await RowCO.getCheckboxById(81)).getAttribute('aria-checked');
|
|
78
|
+
const checkBoxRow91 = await (await RowCO.getCheckboxById(91)).getAttribute('aria-checked');
|
|
79
|
+
const checkBoxRow100 = await (await RowCO.getCheckboxById(100)).getAttribute('aria-checked');
|
|
80
|
+
await expect(checkBoxRow81).toBe('true');
|
|
81
|
+
await expect(checkBoxRow91).toBe('true');
|
|
82
|
+
await expect(checkBoxRow100).toBe('true');
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
describe('PUI-7220 - DataTable, Row selection with shift + space - keyboard', () => {
|
|
87
|
+
before('loading page', async () => {
|
|
88
|
+
const errorOnGo = await DSDataTableCO.multiSelect.go();
|
|
89
|
+
if (errorOnGo) throw errorOnGo;
|
|
90
|
+
await DSDataTableCO.waitForDataTable();
|
|
91
|
+
});
|
|
92
|
+
it('01: should select all the rows in the range except the ones that are disabled', async () => {
|
|
93
|
+
await tabStops(10);
|
|
94
|
+
await browser.keys(Key.Space);
|
|
95
|
+
await browser.pause(200);
|
|
96
|
+
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
97
|
+
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
98
|
+
await browser.keys([Key.Shift, Key.ArrowDown]);
|
|
99
|
+
await browser.keys([Key.Shift, Key.Space]);
|
|
100
|
+
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
101
|
+
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
102
|
+
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
103
|
+
const checkBoxRow5 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
104
|
+
await expect(checkBoxRow2).toBe('true');
|
|
105
|
+
await expect(checkBoxRow3).toBe('true');
|
|
106
|
+
await expect(checkBoxRow4).toBe('false');
|
|
107
|
+
await expect(checkBoxRow5).toBe('true');
|
|
108
|
+
});
|
|
109
|
+
it('02: should unselect all the rows in the range', async () => {
|
|
110
|
+
await browser.keys(Key.Space);
|
|
111
|
+
await browser.pause(200);
|
|
112
|
+
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
113
|
+
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
114
|
+
await browser.keys([Key.Shift, Key.ArrowUp]);
|
|
115
|
+
await browser.keys([Key.Shift, Key.Space]);
|
|
116
|
+
const checkBoxRow2 = await (await RowCO.getRowCheckBoxByIndex(1)).getAttribute('aria-checked');
|
|
117
|
+
const checkBoxRow3 = await (await RowCO.getRowCheckBoxByIndex(2)).getAttribute('aria-checked');
|
|
118
|
+
const checkBoxRow4 = await (await RowCO.getRowCheckBoxByIndex(3)).getAttribute('aria-checked');
|
|
119
|
+
const checkBoxRow5 = await (await RowCO.getRowCheckBoxByIndex(4)).getAttribute('aria-checked');
|
|
120
|
+
await expect(checkBoxRow2).toBe('false');
|
|
121
|
+
await expect(checkBoxRow3).toBe('false');
|
|
122
|
+
await expect(checkBoxRow4).toBe('false');
|
|
123
|
+
await expect(checkBoxRow5).toBe('false');
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable max-statements */
|
|
1
2
|
/* eslint-disable max-len */
|
|
2
3
|
import { Key } from 'webdriverio';
|
|
3
4
|
import DSDataTableCO from '../DSDataTableCO';
|
|
@@ -60,19 +61,24 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
60
61
|
it('should display two row of pills and the pagination correctly rendered', async () => {
|
|
61
62
|
await browser.eyesOpen();
|
|
62
63
|
await FiltersCO.openFilterPopperByColumnName('id', 0);
|
|
64
|
+
await browser.keys(Key.ArrowDown);
|
|
63
65
|
await browser.keys(Key.Return);
|
|
64
66
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
67
|
+
await browser.keys(Key.ArrowDown);
|
|
65
68
|
await browser.keys(Key.Return);
|
|
66
69
|
await FiltersCO.openFilterPopperByColumnName('position', 0);
|
|
67
70
|
await browser.keys(Key.ArrowDown);
|
|
71
|
+
await browser.keys(Key.ArrowDown);
|
|
68
72
|
await browser.keys(Key.Return);
|
|
69
73
|
await browser.keys(Key.ArrowDown);
|
|
70
74
|
await browser.keys(Key.Return);
|
|
71
75
|
await browser.keys(Key.ArrowDown);
|
|
72
76
|
await browser.keys(Key.Return);
|
|
73
77
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
78
|
+
await browser.keys(Key.ArrowDown);
|
|
74
79
|
await browser.keys(Key.Return);
|
|
75
80
|
await FiltersCO.openFilterPopperByColumnName('name', 0);
|
|
81
|
+
await browser.keys(Key.ArrowDown);
|
|
76
82
|
await browser.keys(Key.Return);
|
|
77
83
|
const checkSnap = await browser.eyesCheckSnapshot(await DSDataTableCO.snapshotPath('datatable-double-pill-row'));
|
|
78
84
|
await expect(checkSnap).toEqual(0);
|
|
@@ -6,6 +6,8 @@ export default class DSComboboxMultiCO extends PageObject {
|
|
|
6
6
|
// STORIES
|
|
7
7
|
static applyAriaDisabled = new Urlbuilder(PATH_E2E_COMBOBOX_MULTI, 'apply-aria-disabled-test');
|
|
8
8
|
|
|
9
|
+
static readOnly = new Urlbuilder(PATH_E2E_COMBOBOX_MULTI, 'read-only-test');
|
|
10
|
+
|
|
9
11
|
// COMBOBOX - INPUT
|
|
10
12
|
static async getCombobox() {
|
|
11
13
|
return $('[data-testid="combobox-container"]');
|
|
@@ -43,15 +45,6 @@ export default class DSComboboxMultiCO extends PageObject {
|
|
|
43
45
|
return $('[data-testid="combobox-ally-selected-values"]');
|
|
44
46
|
}
|
|
45
47
|
|
|
46
|
-
// MENU
|
|
47
|
-
static async getSelectAllCheckbox() {
|
|
48
|
-
return $('#select-all-checkbox');
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static async getSelectedOptionsToggle() {
|
|
52
|
-
return $('[data-testid="combobox-selected-options-toggle"]');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
48
|
static async getMenuList() {
|
|
56
49
|
return $('[data-testid="combobox-menu-list"]');
|
|
57
50
|
}
|
|
@@ -23,23 +23,14 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
23
23
|
await browser.keys(Key.Enter);
|
|
24
24
|
await browser.keys(Key.ArrowDown);
|
|
25
25
|
await browser.keys(Key.ArrowDown);
|
|
26
|
+
await browser.keys(Key.ArrowDown);
|
|
26
27
|
await browser.keys(Key.Enter);
|
|
27
28
|
const snapshot = await browser.eyesCheckSnapshot(
|
|
28
29
|
DSComboboxMultiCO.snapshotPath('combobox-multi-aria-disabled-options-kb-nav'),
|
|
29
30
|
);
|
|
30
31
|
await expect(snapshot).toEqual(0);
|
|
31
32
|
});
|
|
32
|
-
|
|
33
|
-
it('03: After select-all, only enabled options are selected; pre-selected disabled/aria-disabled retain selection', async () => {
|
|
34
|
-
await browser.eyesOpen();
|
|
35
|
-
const selectAllBtn = await DSComboboxMultiCO.getSelectAllCheckbox();
|
|
36
|
-
await selectAllBtn.click();
|
|
37
|
-
const snapshot = await browser.eyesCheckSnapshot(
|
|
38
|
-
DSComboboxMultiCO.snapshotPath('combobox-multi-aria-disabled-select-all-kb-nav'),
|
|
39
|
-
);
|
|
40
|
-
await expect(snapshot).toEqual(0);
|
|
41
|
-
});
|
|
42
|
-
it('04: first aria-disabled combobox should be focused', async () => {
|
|
33
|
+
it('03: first aria-disabled combobox should be focused', async () => {
|
|
43
34
|
await browser.eyesOpen();
|
|
44
35
|
await browser.keys(Key.Escape);
|
|
45
36
|
await browser.keys([Key.Shift, Key.Tab]);
|