dimsum-e2e-tests 3.27.0-next.3 → 3.27.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 +4 -0
- package/ds-button-v3/DSButtonV3.visual.spec.js +56 -0
- package/ds-button-v3/DSButtonV3CO.js +19 -0
- package/ds-chat/DSChat-loadmore.func.spec.js +4 -1
- package/ds-circular-indeterminate-indicator/DSCircularIndicator.axe-core.func.spec.js +10 -3
- package/ds-comments-card/DSComments.axe-core.func.spec.js +4 -2
- package/ds-controlled-form/ds-combobox/DSComboboxCO.js +1 -1
- package/ds-controlled-form/ds-combobox/DSComboboxbox.func.spec.js +19 -0
- package/ds-controlled-form/ds-combobox/error-state/DSComboboxbox.with-form-item-block.visual.spec.js +14 -12
- package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.auto-advance.func.spec.js +1 -1
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.visual.spec.js +1 -1
- package/ds-data-table-async/dnd/DSDataTable.dnd.func.spec.js +25 -63
- package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +42 -14
- package/ds-datagrids/DSDatagrids-filterable-dates.func.spec.js +5 -1
- package/ds-datagrids/DSDatagrids-filterable.func.spec.js +2 -0
- package/ds-datagrids/DSDatagrids-toolbar.visual.spec.js +5 -1
- package/ds-dataviz/axecore/DSDataViz.extra.axe-core.func.spec.js +2 -2
- package/ds-date-picker/DSDatePicker.func.spec.js +3 -5
- package/ds-dialog/DSDialog.visual.spec.js +45 -0
- package/ds-dialog/DSDialogCO.js +8 -2
- package/ds-drag-and-drop/DSDragAndDrop.axe-core.func.spec.js +0 -1
- package/ds-dropdownmenu/DSDropddownMenu-loading.visual.spec.js +14 -11
- package/ds-dropdownmenu/DropdownMenuCO.js +4 -0
- package/ds-form/InputMask/DSInputMask.visual.spec.js +1 -1
- package/ds-global-header/GlobalHeader.func.spec.js +49 -0
- package/ds-global-header/GlobalHeaderCO.js +8 -0
- package/ds-leftnavigation/LeftNavigation.axe-core.func.spec.js +1 -2
- package/ds-modal-slide/ModalSlide.visual.spec.js +28 -0
- package/ds-modal-slide/ModalSlideCO.js +4 -0
- package/ds-pills/DSPills.func.spec.js +1 -0
- package/ds-shuttle/DSShuttle-infinite-scroll.visual.spec.js +1 -3
- package/ds-shuttle/DSShuttle.func.spec.js +17 -16
- package/ds-shuttle-v2/basic/DSShuttleV2.visual.spec.js +6 -36
- package/ds-shuttle-v2/disabled/DSShuttleV2.disabled.visual.spec.js +22 -0
- package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.axe-core.func.spec.js +2 -1
- package/ds-shuttle-v2/responsive/DSShuttleV2.responsive.visual.spec.js +15 -0
- package/ds-squareindicator/DSSquareIndicatorCO.js +2 -2
- package/ds-tabs/DSTabs.axe-core.func.spec.js +1 -1
- package/ds-treeview/TreeView-dnd.visual.spec.js +10 -1
- package/ds-wizard/DSWizard.axe-core.func.spec.js +6 -1
- package/package.json +119 -119
- package/{ds-button-v1 → zzz-eol/ds-button-v1}/DSButton.func.spec.js +1 -1
- package/{ds-button-v1 → zzz-eol/ds-button-v1}/DSButtonCO.js +2 -2
- package/{ds-button-v2 → zzz-eol/ds-button-v2}/DSButtonV2.axe-core.func.spec.js +1 -1
- package/{ds-button-v2 → zzz-eol/ds-button-v2}/DSButtonV2.func.spec.js +1 -1
- package/{ds-button-v2 → zzz-eol/ds-button-v2}/DSButtonV2.visual.spec.js +1 -1
- package/{ds-button-v2 → zzz-eol/ds-button-v2}/DSButtonV2CO.js +2 -2
- package/zzz-eol/ds-group-box/DSGroupBox.axe-core.func.spec.js +6 -4
- package/zzz-eol/ds-group-box/DSGroupBox.visual.spec.js +1 -1
- /package/{ds-button-v1 → zzz-eol/ds-button-v1}/DSButton.visual.spec.js +0 -0
|
@@ -60,7 +60,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
60
60
|
const errorOnGo = await DSDatePicker.useCasePUI4195.go();
|
|
61
61
|
if (errorOnGo) throw errorOnGo;
|
|
62
62
|
});
|
|
63
|
-
it('should close calendar after
|
|
63
|
+
it('should select a date, close calendar after and focus return to the picker', async () => {
|
|
64
64
|
const datePickerBtn = await DSDatePicker.getDatePickerBtn();
|
|
65
65
|
await datePickerBtn.click();
|
|
66
66
|
const calendar = await DSDatePicker.getCalendar();
|
|
@@ -69,12 +69,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
69
69
|
await datePickerDay.waitForDisplayed();
|
|
70
70
|
await datePickerDay.click();
|
|
71
71
|
await expect(calendar).not.toExist();
|
|
72
|
-
|
|
73
|
-
it('should select the day', async () => {
|
|
72
|
+
// should select the day
|
|
74
73
|
const day = await DSDatePicker.getDay();
|
|
75
74
|
await expect(day).toHaveValue('16');
|
|
76
|
-
|
|
77
|
-
it('focus will return to the picker', async () => {
|
|
75
|
+
// focus will return to the picker
|
|
78
76
|
const pickerBtn = await DSDatePicker.getDatePickerBtn();
|
|
79
77
|
await pickerBtn.waitForDisplayed();
|
|
80
78
|
await expect(pickerBtn).toBeFocused();
|
|
@@ -65,6 +65,51 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
65
65
|
await expect(snapshot).toEqual(0);
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
|
+
describe('PUI-12213 - DSDialog, Warning dialog -visual', () => {
|
|
69
|
+
before('loading page', async () => {
|
|
70
|
+
const errorOnGo = await DSDialog.warningURL.go();
|
|
71
|
+
if (errorOnGo) throw errorOnGo;
|
|
72
|
+
});
|
|
73
|
+
it('should display Warning DSDialog correctly', async () => {
|
|
74
|
+
await browser.eyesOpen();
|
|
75
|
+
const triggerBtn = await DSDialog.getTriggerBtn();
|
|
76
|
+
await triggerBtn.click();
|
|
77
|
+
const dialog = await DSDialog.getDialog();
|
|
78
|
+
await dialog.waitForDisplayed();
|
|
79
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDialog.snapshotPath('dialog-warning-layout'));
|
|
80
|
+
await expect(snapshot).toEqual(0);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
describe('PUI-12216 - DSDialog, Error dialog -visual', () => {
|
|
84
|
+
before('loading page', async () => {
|
|
85
|
+
const errorOnGo = await DSDialog.errorURL.go();
|
|
86
|
+
if (errorOnGo) throw errorOnGo;
|
|
87
|
+
});
|
|
88
|
+
it('should display Error DSDialog correctly', async () => {
|
|
89
|
+
await browser.eyesOpen();
|
|
90
|
+
const triggerBtn = await DSDialog.getTriggerBtn();
|
|
91
|
+
await triggerBtn.click();
|
|
92
|
+
const dialog = await DSDialog.getDialog();
|
|
93
|
+
await dialog.waitForDisplayed();
|
|
94
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDialog.snapshotPath('dialog-error-layout'));
|
|
95
|
+
await expect(snapshot).toEqual(0);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
describe('PUI-12215 - DSDialog, Success dialog -visual', () => {
|
|
99
|
+
before('loading page', async () => {
|
|
100
|
+
const errorOnGo = await DSDialog.successURL.go();
|
|
101
|
+
if (errorOnGo) throw errorOnGo;
|
|
102
|
+
});
|
|
103
|
+
it('should display Success DSDialog correctly', async () => {
|
|
104
|
+
await browser.eyesOpen();
|
|
105
|
+
const triggerBtn = await DSDialog.getTriggerBtn();
|
|
106
|
+
await triggerBtn.click();
|
|
107
|
+
const dialog = await DSDialog.getDialog();
|
|
108
|
+
await dialog.waitForDisplayed();
|
|
109
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDialog.snapshotPath('dialog-success-layout'));
|
|
110
|
+
await expect(snapshot).toEqual(0);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
68
113
|
describe('PUI-7877 - DSDialog, Shuttle dialog -visual', () => {
|
|
69
114
|
before('loading page', async () => {
|
|
70
115
|
const errorOnGo = await DSDialog.shuttleURL.go();
|
package/ds-dialog/DSDialogCO.js
CHANGED
|
@@ -10,11 +10,11 @@ export default class DSDialog extends PageObject {
|
|
|
10
10
|
|
|
11
11
|
static withPopperjs = new Urlbuilder(PATH_E2E_DIALOG, 'with-popperjs');
|
|
12
12
|
|
|
13
|
-
static decisionURL = new Urlbuilder(
|
|
13
|
+
static decisionURL = new Urlbuilder(PATH_E2E_DIALOG, 'decision-test');
|
|
14
14
|
|
|
15
15
|
static formDialogURL = new Urlbuilder(PATH_DIALOG_EXAMPLES, 'form-dialog');
|
|
16
16
|
|
|
17
|
-
static informationURL = new Urlbuilder(
|
|
17
|
+
static informationURL = new Urlbuilder(PATH_E2E_DIALOG, 'informational-test');
|
|
18
18
|
|
|
19
19
|
static manageFocusURL = new Urlbuilder(PATH_DIALOG_EXAMPLES, 'manage-focus-after-close');
|
|
20
20
|
|
|
@@ -40,6 +40,12 @@ export default class DSDialog extends PageObject {
|
|
|
40
40
|
|
|
41
41
|
static backdropCoverFullPage = new Urlbuilder(PATH_E2E_DIALOG, 'backdrop-cover-full-page');
|
|
42
42
|
|
|
43
|
+
static warningURL = new Urlbuilder(PATH_E2E_DIALOG, 'warning-test');
|
|
44
|
+
|
|
45
|
+
static successURL = new Urlbuilder(PATH_E2E_DIALOG, 'success-test');
|
|
46
|
+
|
|
47
|
+
static errorURL = new Urlbuilder(PATH_E2E_DIALOG, 'error-test');
|
|
48
|
+
|
|
43
49
|
// Selectors
|
|
44
50
|
static async getTriggerBtn() {
|
|
45
51
|
return $('[data-testid="open-dialog-button"]');
|
|
@@ -63,7 +63,6 @@ if (
|
|
|
63
63
|
const thirdItemDNDHandler = await DSDragAndDropCO.getSVGByListAndIndex(leftList, 3);
|
|
64
64
|
await secondItemDNDHandler.dragAndDrop(thirdItemDNDHandler);
|
|
65
65
|
await browser.keys(Key.Tab);
|
|
66
|
-
await browser.keys(Key.Tab);
|
|
67
66
|
await browser.keys(Key.Return);
|
|
68
67
|
const result = await axeCoreCheck();
|
|
69
68
|
expect(result.length).toBe(0);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import DropdownMenuCO from './DropdownMenuCO';
|
|
2
|
-
import { DimsumConfig } from '../helpers';
|
|
3
2
|
|
|
4
3
|
if (!browser.capabilities['ice:options'].isPhone) {
|
|
5
4
|
describe('Dropdown Menu with select', () => {
|
|
@@ -7,21 +6,25 @@ if (!browser.capabilities['ice:options'].isPhone) {
|
|
|
7
6
|
const errorOnGo = await DropdownMenuCO.loadingURL.go();
|
|
8
7
|
if (errorOnGo) throw errorOnGo;
|
|
9
8
|
});
|
|
10
|
-
it('should display menu with loading indicator when loading=true', async () => {
|
|
11
|
-
|
|
9
|
+
it('01: should display menu with loading indicator when loading=true', async () => {
|
|
10
|
+
await browser.eyesOpen();
|
|
11
|
+
const button = await DropdownMenuCO.getTriggerBtn();
|
|
12
12
|
await button.click();
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const menu = await DropdownMenuCO.getMenu();
|
|
14
|
+
await menu.waitForExist();
|
|
15
|
+
const snapshot = await browser.eyesCheckSnapshot(DropdownMenuCO.snapshotPath('dropdownmenu--loading-true'));
|
|
15
16
|
await expect(snapshot).toEqual(0);
|
|
16
17
|
});
|
|
17
18
|
|
|
18
|
-
it('should display menu without loading indicator when loading=false', async () => {
|
|
19
|
-
|
|
19
|
+
it('02: should display menu without loading indicator when loading=false', async () => {
|
|
20
|
+
await browser.eyesOpen();
|
|
21
|
+
const button = await DropdownMenuCO.getTriggerBtn();
|
|
20
22
|
await button.click();
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
);
|
|
24
|
-
|
|
23
|
+
// eslint-disable-next-line wdio/no-pause
|
|
24
|
+
await browser.pause(6000);
|
|
25
|
+
const menuItem = await DropdownMenuCO.getMenuItem(0);
|
|
26
|
+
await menuItem.waitForDisplayed({ timeout: 7000 });
|
|
27
|
+
const snapshot = await browser.eyesCheckSnapshot(DropdownMenuCO.snapshotPath('dropdownmenu--loading-false'));
|
|
25
28
|
await expect(snapshot).toEqual(0);
|
|
26
29
|
});
|
|
27
30
|
});
|
|
@@ -50,6 +50,10 @@ export default class DSDropdownMenu extends PageObject {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
static async getMenu() {
|
|
54
|
+
return $('[data-testid="em-ds-menu"]');
|
|
55
|
+
}
|
|
56
|
+
|
|
53
57
|
// Snapshots
|
|
54
58
|
static snapshotPath(example = 'loading') {
|
|
55
59
|
return PageObject.getSnapshotPathBuilder('DSDropdownMenu', example, 'ds-dropdownmenu');
|
|
@@ -10,7 +10,7 @@ describe('PUI-3889 - InputMask, visual tests', () => {
|
|
|
10
10
|
await expect(snapshot).toEqual(0);
|
|
11
11
|
});
|
|
12
12
|
|
|
13
|
-
if (!browser.capabilities['ice:options'].isPhone) {
|
|
13
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
14
14
|
it('should format numbers properly', async () => {
|
|
15
15
|
await (await DSInputMaskCO.getInput()).click();
|
|
16
16
|
await DSInputMaskCO.type();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
1
2
|
import GlobalHeader from './GlobalHeaderCO';
|
|
2
3
|
|
|
3
4
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
@@ -31,4 +32,52 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
31
32
|
await expect(popupContent).not.toBeDisplayed();
|
|
32
33
|
});
|
|
33
34
|
});
|
|
35
|
+
|
|
36
|
+
describe('PUI-12184 - GlobalHeader: TabStops', () => {
|
|
37
|
+
before(async () => {
|
|
38
|
+
const errorOnGo = await GlobalHeader.basicURL.go();
|
|
39
|
+
if (errorOnGo) throw errorOnGo;
|
|
40
|
+
});
|
|
41
|
+
it('01: should tab and have skipTo btn focused', async () => {
|
|
42
|
+
await browser.keys(Key.Tab);
|
|
43
|
+
const skipTo = await GlobalHeader.getSkipTo();
|
|
44
|
+
await expect(skipTo).toBeFocused();
|
|
45
|
+
});
|
|
46
|
+
it('02: should tab and have first breadcrumb item focused', async () => {
|
|
47
|
+
await browser.keys(Key.Tab);
|
|
48
|
+
const breadcrumbItem = await GlobalHeader.getGHBreadcrumbBtn('pipeline');
|
|
49
|
+
await expect(breadcrumbItem).toBeFocused();
|
|
50
|
+
});
|
|
51
|
+
it('03: should tab x2 and have third breadcrumb item focused', async () => {
|
|
52
|
+
await browser.keys(Key.Tab);
|
|
53
|
+
await browser.keys(Key.Tab);
|
|
54
|
+
const breadcrumbItem = await GlobalHeader.getGHBreadcrumbBtn('task');
|
|
55
|
+
await expect(breadcrumbItem).toBeFocused();
|
|
56
|
+
});
|
|
57
|
+
it('04: should tab and have first toolbar item focused', async () => {
|
|
58
|
+
await browser.keys(Key.Tab);
|
|
59
|
+
const toolbarItem = await GlobalHeader.getGHToolbarItem(0);
|
|
60
|
+
await expect(toolbarItem).toBeFocused();
|
|
61
|
+
});
|
|
62
|
+
it('05: should use arrowKey right to move to next toolbar item ', async () => {
|
|
63
|
+
await browser.keys(Key.ArrowRight);
|
|
64
|
+
const toolbarItem = await GlobalHeader.getMenuItems(1);
|
|
65
|
+
await expect(toolbarItem).toBeFocused();
|
|
66
|
+
});
|
|
67
|
+
it('06: should shift tab to go back one item', async () => {
|
|
68
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
69
|
+
const toolbarItem = await GlobalHeader.getGHToolbarItem(0);
|
|
70
|
+
await expect(toolbarItem).toBeFocused();
|
|
71
|
+
});
|
|
72
|
+
it('07: should left arrow to move back one item and cycle to the last item on the toolbar ', async () => {
|
|
73
|
+
await browser.keys(Key.ArrowLeft);
|
|
74
|
+
const breadcrumbItem = await GlobalHeader.getMenuItems(4);
|
|
75
|
+
await expect(breadcrumbItem).toBeFocused();
|
|
76
|
+
});
|
|
77
|
+
it('08: should tab and focus should leave toolbar (not cycle)', async () => {
|
|
78
|
+
await browser.keys(Key.Tab);
|
|
79
|
+
const firstToolbarItem = await GlobalHeader.getGHToolbarItem(0);
|
|
80
|
+
await expect(firstToolbarItem).not.toBeFocused();
|
|
81
|
+
});
|
|
82
|
+
});
|
|
34
83
|
}
|
|
@@ -58,6 +58,14 @@ export default class GlobalHeader extends PageObject {
|
|
|
58
58
|
return $('[id="my-main-content"]');
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
static async getMenuItems(index = 0) {
|
|
62
|
+
return $$('[role="menuitem"] button')[index];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static async getSkipTo() {
|
|
66
|
+
return $('button*=Skip');
|
|
67
|
+
}
|
|
68
|
+
|
|
61
69
|
// Snapshots
|
|
62
70
|
static snapshotPath(example = 'basic') {
|
|
63
71
|
return PageObject.getSnapshotPathBuilder('GlobalHeader', example, 'ds-global-header');
|
|
@@ -53,8 +53,7 @@ if (
|
|
|
53
53
|
const result = await axeCoreCheck();
|
|
54
54
|
expect(result.length).toBe(0);
|
|
55
55
|
});
|
|
56
|
-
|
|
57
|
-
it.skip('03: loading indicator in leftnav opened', async () => {
|
|
56
|
+
it('03: loading indicator in leftnav opened', async () => {
|
|
58
57
|
const loadingIndicator = await LeftNavCO.loadingIndicator();
|
|
59
58
|
await loadingIndicator.waitForDisplayed();
|
|
60
59
|
const footerBtn = await LeftNavCO.footerBtn();
|
|
@@ -95,6 +95,34 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
95
95
|
await expect(snapshot).toEqual(0);
|
|
96
96
|
});
|
|
97
97
|
});
|
|
98
|
+
|
|
99
|
+
describe('PUI-12193 - ModalSlide:: Page Level -Visual', () => {
|
|
100
|
+
before(async () => {
|
|
101
|
+
const errorOnGo = await ModalSlideCO.pageLevelURL.go();
|
|
102
|
+
if (errorOnGo) throw errorOnGo;
|
|
103
|
+
});
|
|
104
|
+
it('01: should display a slide at page level (width: 50%)', async () => {
|
|
105
|
+
await (await ModalSlideCO.getToggleSlide()).waitForDisplayed();
|
|
106
|
+
await (await ModalSlideCO.getToggleSlide()).click();
|
|
107
|
+
await ModalSlideCO.waitModalSlide();
|
|
108
|
+
const snapshot = await browser.checkSnapshot(ModalSlideCO.snapshotPath('slide-pagelevel-50%'));
|
|
109
|
+
await expect(snapshot).toEqual(0);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
describe('PUI-12194 - ModalSlide:: Page Level (Full width) -Visual', () => {
|
|
114
|
+
before(async () => {
|
|
115
|
+
const errorOnGo = await ModalSlideCO.pageLevelFullWidthURL.go();
|
|
116
|
+
if (errorOnGo) throw errorOnGo;
|
|
117
|
+
});
|
|
118
|
+
it('01: should display a slide at page level (width: 100%)', async () => {
|
|
119
|
+
await (await ModalSlideCO.getToggleSlide()).waitForDisplayed();
|
|
120
|
+
await (await ModalSlideCO.getToggleSlide()).click();
|
|
121
|
+
await ModalSlideCO.waitModalSlide();
|
|
122
|
+
const snapshot = await browser.checkSnapshot(ModalSlideCO.snapshotPath('slide-pagelevel-100%'));
|
|
123
|
+
await expect(snapshot).toEqual(0);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
98
126
|
}
|
|
99
127
|
if (browser.capabilities['ice:options'].isTablet) {
|
|
100
128
|
describe('PUI-9692 - ModalSlide:: Resize - portrait and landscape on tablet', () => {
|
|
@@ -22,6 +22,10 @@ export default class ModalSlideCO extends PageObject {
|
|
|
22
22
|
|
|
23
23
|
static cardsURL = new Urlbuilder(PATH_E2E_MODALSLIDE, 'cards-test');
|
|
24
24
|
|
|
25
|
+
static pageLevelURL = new Urlbuilder(PATH_E2E_MODALSLIDE, 'page-level-test');
|
|
26
|
+
|
|
27
|
+
static pageLevelFullWidthURL = new Urlbuilder(PATH_E2E_MODALSLIDE, 'page-level-full-width-test');
|
|
28
|
+
|
|
25
29
|
static async getModalSlide() {
|
|
26
30
|
return $('[data-testid="ds-modal-slide"]');
|
|
27
31
|
}
|
|
@@ -57,6 +57,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
57
57
|
const removablePillTxt = await DSPillsCO.getRemovablePillText('option 4');
|
|
58
58
|
await expect(removablePillTxt).toBeDisplayed();
|
|
59
59
|
const dropDownMenu = await DSPillsCO.getDropDownMenu();
|
|
60
|
+
await dropDownMenu.waitForDisplayed({ reverse: true, timeout: 5000 });
|
|
60
61
|
await expect(dropDownMenu).not.toBeDisplayed();
|
|
61
62
|
});
|
|
62
63
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Key } from 'webdriverio';
|
|
2
2
|
import { DSShuttleCO } from './DSShuttleCO';
|
|
3
3
|
|
|
4
|
-
if (!browser.capabilities['ice:options'].isPhone) {
|
|
4
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
5
5
|
describe('PUI-3336 - Shuttle Infinite Scroll', () => {
|
|
6
6
|
beforeEach(async () => {
|
|
7
7
|
const errorOnGo = await DSShuttleCO.infiniteScrollURL.go();
|
|
@@ -19,8 +19,6 @@ if (!browser.capabilities['ice:options'].isPhone) {
|
|
|
19
19
|
await expect(snapshot).toEqual(0);
|
|
20
20
|
});
|
|
21
21
|
});
|
|
22
|
-
}
|
|
23
|
-
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
24
22
|
describe('PUI-3337 - Shuttle Infinite Scroll - search', () => {
|
|
25
23
|
beforeEach(async () => {
|
|
26
24
|
const errorOnGo = await DSShuttleCO.infiniteScrollURL.go();
|
|
@@ -118,21 +118,22 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
118
118
|
await expect(searchCbCounterTxt).toBe('1');
|
|
119
119
|
});
|
|
120
120
|
});
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
if (browser.capabilities.browserName !== 'Safari') {
|
|
122
|
+
describe('PUI-5984 - Shuttle - Shuttle add items fast', () => {
|
|
123
|
+
before(async () => {
|
|
124
|
+
const errorOnGo = await DSShuttleCO.fastItemsAddURL.go();
|
|
125
|
+
if (errorOnGo) throw errorOnGo;
|
|
126
|
+
});
|
|
127
|
+
it('should not duplicate items on target', async () => {
|
|
128
|
+
await DSShuttleCO.waitForShuttleToBeDisplayed();
|
|
129
|
+
const moveBtns = await DSShuttleCO.getSourceMoveButtons();
|
|
130
|
+
await moveBtns[10].click();
|
|
131
|
+
await moveBtns[9].click();
|
|
132
|
+
await moveBtns[8].click();
|
|
133
|
+
await moveBtns[7].click();
|
|
134
|
+
const targetItemsLenght = (await DSShuttleCO.targetItems()).length;
|
|
135
|
+
await expect(targetItemsLenght).toBe(4);
|
|
136
|
+
});
|
|
126
137
|
});
|
|
127
|
-
|
|
128
|
-
await DSShuttleCO.waitForShuttleToBeDisplayed();
|
|
129
|
-
const moveBtns = await DSShuttleCO.getSourceMoveButtons();
|
|
130
|
-
await moveBtns[10].click();
|
|
131
|
-
await moveBtns[9].click();
|
|
132
|
-
await moveBtns[8].click();
|
|
133
|
-
await moveBtns[7].click();
|
|
134
|
-
const targetItemsLenght = (await DSShuttleCO.targetItems()).length;
|
|
135
|
-
await expect(targetItemsLenght).toBe(4);
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
+
}
|
|
138
139
|
}
|
|
@@ -2,23 +2,9 @@ import { Key } from 'webdriverio';
|
|
|
2
2
|
import DSShuttleV2CO from '../DSShuttleV2CO';
|
|
3
3
|
import { mouseOver } from '../../helpers';
|
|
4
4
|
|
|
5
|
-
if (!browser.capabilities['ice:options'].isPhone) {
|
|
6
|
-
describe('PUI-10780 - Shuttle V2, Responsive -Visual.', () => {
|
|
7
|
-
before(async () => {
|
|
8
|
-
const errorOnGo = await DSShuttleV2CO.basicURL.go();
|
|
9
|
-
if (errorOnGo) throw errorOnGo;
|
|
10
|
-
});
|
|
11
|
-
it('01: Should display the component panels vertically aligned on small viewport', async () => {
|
|
12
|
-
await browser.eyesOpen();
|
|
13
|
-
const snapshot = await browser.eyesCheckSnapshot(DSShuttleV2CO.snapshotPath('shuttle-v2-basic'));
|
|
14
|
-
await expect(snapshot).toEqual(0);
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
|
|
19
5
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
20
6
|
describe('PUI-9817 - Shuttle V2, Custom item renderer -Visual.', () => {
|
|
21
|
-
before(async () => {
|
|
7
|
+
before('loading page', async () => {
|
|
22
8
|
const errorOnGo = await DSShuttleV2CO.customRendererURL.go();
|
|
23
9
|
if (errorOnGo) throw errorOnGo;
|
|
24
10
|
});
|
|
@@ -37,7 +23,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
37
23
|
});
|
|
38
24
|
|
|
39
25
|
describe('PUI-9819 - Shuttle V2, With Icon -Visual.', () => {
|
|
40
|
-
before(async () => {
|
|
26
|
+
before('loading page', async () => {
|
|
41
27
|
const errorOnGo = await DSShuttleV2CO.withIconURL.go();
|
|
42
28
|
if (errorOnGo) throw errorOnGo;
|
|
43
29
|
});
|
|
@@ -65,7 +51,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
65
51
|
});
|
|
66
52
|
|
|
67
53
|
describe('PUI-9818 - Shuttle V2, With subtitle -Visual.', () => {
|
|
68
|
-
before(async () => {
|
|
54
|
+
before('loading page', async () => {
|
|
69
55
|
const errorOnGo = await DSShuttleV2CO.subtitleURL.go();
|
|
70
56
|
if (errorOnGo) throw errorOnGo;
|
|
71
57
|
});
|
|
@@ -93,7 +79,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
93
79
|
});
|
|
94
80
|
|
|
95
81
|
describe('PUI-9821 - Shuttle V2, Soft delete -Visual.', () => {
|
|
96
|
-
before(async () => {
|
|
82
|
+
before('loading page', async () => {
|
|
97
83
|
const errorOnGo = await DSShuttleV2CO.softDeleteURL.go();
|
|
98
84
|
if (errorOnGo) throw errorOnGo;
|
|
99
85
|
});
|
|
@@ -116,7 +102,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
116
102
|
});
|
|
117
103
|
|
|
118
104
|
describe('PUI-9820 - Shuttle V2, Basic styles -Visual.', () => {
|
|
119
|
-
before(async () => {
|
|
105
|
+
before('loading page', async () => {
|
|
120
106
|
const errorOnGo = await DSShuttleV2CO.loadMoreURL.go();
|
|
121
107
|
if (errorOnGo) throw errorOnGo;
|
|
122
108
|
});
|
|
@@ -135,7 +121,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
135
121
|
|
|
136
122
|
// beforeEach required since eyesOpen will break DND cycle on automated test
|
|
137
123
|
describe('PUI-9822 - Shuttle V2, DND -Visual.', () => {
|
|
138
|
-
beforeEach(async () => {
|
|
124
|
+
beforeEach('loading page', async () => {
|
|
139
125
|
const errorOnGo = await DSShuttleV2CO.dndURL.go();
|
|
140
126
|
if (errorOnGo) throw errorOnGo;
|
|
141
127
|
});
|
|
@@ -179,20 +165,4 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
179
165
|
await expect(snapshot).toEqual(0);
|
|
180
166
|
});
|
|
181
167
|
});
|
|
182
|
-
|
|
183
|
-
describe('PUI-9823 - Shuttle V2, Disabled -Visual.', () => {
|
|
184
|
-
before(async () => {
|
|
185
|
-
const errorOnGo = await DSShuttleV2CO.disabledItemsURL.go();
|
|
186
|
-
if (errorOnGo) throw errorOnGo;
|
|
187
|
-
});
|
|
188
|
-
it('01: Should display items with disabled movement, not checked after click, no BAB', async () => {
|
|
189
|
-
await browser.eyesOpen();
|
|
190
|
-
const testItem = await DSShuttleV2CO.getItemWrapper(2);
|
|
191
|
-
await testItem.click();
|
|
192
|
-
const testItem2 = await DSShuttleV2CO.getItemWrapper(1);
|
|
193
|
-
await mouseOver(testItem2);
|
|
194
|
-
const snapshot = await browser.eyesCheckSnapshot(DSShuttleV2CO.snapshotPath('shuttle-v2-disabled'));
|
|
195
|
-
await expect(snapshot).toEqual(0);
|
|
196
|
-
});
|
|
197
|
-
});
|
|
198
168
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import DSShuttleV2CO from '../DSShuttleV2CO';
|
|
2
|
+
import { mouseOver } from '../../helpers';
|
|
3
|
+
|
|
4
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
5
|
+
describe('PUI-9823 - Shuttle V2, Disabled -Visual.', () => {
|
|
6
|
+
before(async () => {
|
|
7
|
+
const errorOnGo = await DSShuttleV2CO.disabledItemsURL.go();
|
|
8
|
+
if (errorOnGo) throw errorOnGo;
|
|
9
|
+
});
|
|
10
|
+
it('01: Should display items with disabled movement, not checked after click, no BAB', async () => {
|
|
11
|
+
it('01: Should display items with disabled movement, not checked after click, no BAB', async () => {
|
|
12
|
+
await browser.eyesOpen();
|
|
13
|
+
const testItem = await DSShuttleV2CO.getItemWrapper(2);
|
|
14
|
+
await testItem.click();
|
|
15
|
+
const testItem2 = await DSShuttleV2CO.getItemWrapper(1);
|
|
16
|
+
await mouseOver(testItem2);
|
|
17
|
+
const snapshot = await browser.eyesCheckSnapshot(DSShuttleV2CO.snapshotPath('shuttle-v2-disabled'));
|
|
18
|
+
await expect(snapshot).toEqual(0);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -8,7 +8,8 @@ if (
|
|
|
8
8
|
browser.capabilities.browserName === 'Chrome') ||
|
|
9
9
|
browser.capabilities.browserName === 'chrome'
|
|
10
10
|
) {
|
|
11
|
-
|
|
11
|
+
// to be unskiped after PUI-11211 is fixed
|
|
12
|
+
describe.skip('PUI-10771 - Shuttle V2, Drill Down and NOT Keep parent -AxeCore.', () => {
|
|
12
13
|
before(async () => {
|
|
13
14
|
const errorOnGo = await DSShuttleV2CO.basicURL.go();
|
|
14
15
|
if (errorOnGo) throw errorOnGo;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import DSShuttleV2CO from '../DSShuttleV2CO';
|
|
2
|
+
|
|
3
|
+
if (!browser.capabilities['ice:options'].isPhone) {
|
|
4
|
+
describe('PUI-10780 - Shuttle V2, Responsive -Visual.', () => {
|
|
5
|
+
before(async () => {
|
|
6
|
+
const errorOnGo = await DSShuttleV2CO.basicURL.go();
|
|
7
|
+
if (errorOnGo) throw errorOnGo;
|
|
8
|
+
});
|
|
9
|
+
it('01: Should display the component panels vertically aligned on small viewport', async () => {
|
|
10
|
+
await browser.eyesOpen();
|
|
11
|
+
const snapshot = await browser.eyesCheckSnapshot(DSShuttleV2CO.snapshotPath('shuttle-v2-basic'));
|
|
12
|
+
await expect(snapshot).toEqual(0);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PATH_E2E_SQUARE_INDICATOR } from '../../environments/storybook/paths';
|
|
2
2
|
import { PageObject, Urlbuilder, getElementByIndex } from '../helpers';
|
|
3
3
|
|
|
4
4
|
export default class DSSquareIndicator extends PageObject {
|
|
5
|
-
static basicURL = new Urlbuilder(
|
|
5
|
+
static basicURL = new Urlbuilder(PATH_E2E_SQUARE_INDICATOR, 'basic-test');
|
|
6
6
|
|
|
7
7
|
static insideDialog = new Urlbuilder(PATH_E2E_SQUARE_INDICATOR, 'inside-dialog-test');
|
|
8
8
|
|
|
@@ -75,7 +75,7 @@ if (
|
|
|
75
75
|
});
|
|
76
76
|
it('02: should have tabs with a grid, interacted passing axe-core scan', async () => {
|
|
77
77
|
await (await DSTabsCO.getTab(1)).click();
|
|
78
|
-
await (await DSTabsCO.getTab(
|
|
78
|
+
await (await DSTabsCO.getTab(4)).click();
|
|
79
79
|
const result = await axeCoreCheck();
|
|
80
80
|
expect(result.length).toBe(0);
|
|
81
81
|
});
|
|
@@ -4,7 +4,7 @@ import DSTreeViewCO from './DSTreeViewCO';
|
|
|
4
4
|
|
|
5
5
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
6
6
|
describe('PUI-11324 - TreeView, Restrict Drag and Drop Functionality - visual', () => {
|
|
7
|
-
|
|
7
|
+
beforeEach(async () => {
|
|
8
8
|
const errorOnGo = await DSTreeViewCO.restrictDragAndDropTest.go();
|
|
9
9
|
if (errorOnGo) throw errorOnGo;
|
|
10
10
|
});
|
|
@@ -21,6 +21,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
21
21
|
});
|
|
22
22
|
it('02: should display "inside" position restricted correctly', async () => {
|
|
23
23
|
await browser.eyesOpen();
|
|
24
|
+
await browser.keys(Key.Tab);
|
|
25
|
+
await browser.keys(Key.Tab);
|
|
26
|
+
await browser.keys(Key.Return);
|
|
27
|
+
await DSTreeViewCO.expandCollapseAll();
|
|
24
28
|
await browser.keys(Key.ArrowDown);
|
|
25
29
|
const snapshot = await browser.eyesCheckSnapshot(
|
|
26
30
|
DSTreeViewCO.snapshotPath('treeview-restict-dnd-inside-restricted'),
|
|
@@ -29,6 +33,11 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
29
33
|
});
|
|
30
34
|
it('03: drag a parent and drop it in another parent', async () => {
|
|
31
35
|
await browser.eyesOpen();
|
|
36
|
+
await browser.keys(Key.Tab);
|
|
37
|
+
await browser.keys(Key.Tab);
|
|
38
|
+
await browser.keys(Key.Return);
|
|
39
|
+
await DSTreeViewCO.expandCollapseAll();
|
|
40
|
+
await browser.keys(Key.ArrowDown);
|
|
32
41
|
await browser.keys(Key.ArrowDown);
|
|
33
42
|
await browser.keys(Key.ArrowDown);
|
|
34
43
|
await browser.keys(Key.ArrowDown);
|
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
import WizardCO from './DSWizardCO';
|
|
3
3
|
import { axeCoreCheck } from '../helpers';
|
|
4
4
|
|
|
5
|
-
if (
|
|
5
|
+
if (
|
|
6
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
7
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
8
|
+
browser.capabilities.browserName === 'Chrome') ||
|
|
9
|
+
browser.capabilities.browserName === 'chrome'
|
|
10
|
+
) {
|
|
6
11
|
describe('PUI-11863 - Wizard:: Basic - AxeCore', () => {
|
|
7
12
|
before('loading page', async () => {
|
|
8
13
|
const errorOnGo = await WizardCO.basicURL.go();
|