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
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.27.0-next.4](https://git.elliemae.io/platform-ui/dimsum/compare/v3.27.0-next.3...v3.27.0-next.4) (2024-01-10)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package dimsum-e2e-tests
|
|
9
|
+
|
|
6
10
|
## [3.27.0-next.3](https://git.elliemae.io/platform-ui/dimsum/compare/v3.27.0-next.2...v3.27.0-next.3) (2024-01-09)
|
|
7
11
|
|
|
8
12
|
**Note:** Version bump only for package dimsum-e2e-tests
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import DSButtonV3CO from './DSButtonV3CO';
|
|
2
|
+
import { setTextSize } from '../helpers';
|
|
3
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
4
|
+
describe('PUI-12269 - ButtonV3 - Resize, long label -Visual', () => {
|
|
5
|
+
before('loading page', async () => {
|
|
6
|
+
const errorOnGo = await DSButtonV3CO.longlabelURL.go();
|
|
7
|
+
if (errorOnGo) throw errorOnGo;
|
|
8
|
+
});
|
|
9
|
+
it('should display default long-labelled buttons showcase correctly', async () => {
|
|
10
|
+
const button = await DSButtonV3CO.getButtonByIndex(0);
|
|
11
|
+
await button.waitForDisplayed({ timeout: 5000 });
|
|
12
|
+
const snapshot = await browser.checkSnapshot(DSButtonV3CO.snapshotPath('ds-button-v3-longlabel-default'));
|
|
13
|
+
await expect(snapshot).toEqual(0);
|
|
14
|
+
});
|
|
15
|
+
it('should display default long-labelled buttons showcase after resize', async () => {
|
|
16
|
+
const button = await DSButtonV3CO.getButtonByIndex(0);
|
|
17
|
+
await button.waitForDisplayed({ timeout: 5000 });
|
|
18
|
+
await setTextSize(32);
|
|
19
|
+
const snapshot = await browser.checkSnapshot(DSButtonV3CO.snapshotPath('ds-button-v3-longlabel-resize'));
|
|
20
|
+
await expect(snapshot).toEqual(0);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
describe('PUI-12268 - ButtonV3 - Resize, basic -Visual', () => {
|
|
25
|
+
before('loading page', async () => {
|
|
26
|
+
const errorOnGo = await DSButtonV3CO.showcaseURL.go();
|
|
27
|
+
if (errorOnGo) throw errorOnGo;
|
|
28
|
+
});
|
|
29
|
+
it('should display button showcase correctly', async () => {
|
|
30
|
+
const button = await DSButtonV3CO.getButtonByIndex(0);
|
|
31
|
+
await button.waitForDisplayed({ timeout: 5000 });
|
|
32
|
+
const snapshot = await browser.checkSnapshot(DSButtonV3CO.snapshotPath('ds-button-v3-showcase-default'));
|
|
33
|
+
await expect(snapshot).toEqual(0);
|
|
34
|
+
});
|
|
35
|
+
it('should display button showcase correctly after resize', async () => {
|
|
36
|
+
const button = await DSButtonV3CO.getButtonByIndex(0);
|
|
37
|
+
await button.waitForDisplayed({ timeout: 5000 });
|
|
38
|
+
await setTextSize(32);
|
|
39
|
+
const snapshot = await browser.checkSnapshot(DSButtonV3CO.snapshotPath('ds-button-v3-showcase-resize'));
|
|
40
|
+
await expect(snapshot).toEqual(0);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
describe('PUI-12267 - ButtonV3 - Responsive -Visual', () => {
|
|
46
|
+
before('loading page', async () => {
|
|
47
|
+
const errorOnGo = await DSButtonV3CO.responsiveURL.go();
|
|
48
|
+
if (errorOnGo) throw errorOnGo;
|
|
49
|
+
});
|
|
50
|
+
it('should display button showcase with responsive behavior (small viewport, bigger font)', async () => {
|
|
51
|
+
const button = await DSButtonV3CO.getButtonByIndex(0);
|
|
52
|
+
await button.waitForDisplayed({ timeout: 5000 });
|
|
53
|
+
const snapshot = await browser.checkSnapshot(DSButtonV3CO.snapshotPath('ds-button-v3-responsive'));
|
|
54
|
+
await expect(snapshot).toEqual(0);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PATH_E2E_BUTTON_V3 } from '../../environments/storybook/paths';
|
|
2
|
+
import { PageObject, Urlbuilder } from '../helpers';
|
|
3
|
+
export default class DSButtonV2CO extends PageObject {
|
|
4
|
+
static showcaseURL = new Urlbuilder(PATH_E2E_BUTTON_V3, 'showcase-test');
|
|
5
|
+
|
|
6
|
+
static responsiveURL = new Urlbuilder(PATH_E2E_BUTTON_V3, 'responsive-test');
|
|
7
|
+
|
|
8
|
+
static longlabelURL = new Urlbuilder(PATH_E2E_BUTTON_V3, 'long-labels-test');
|
|
9
|
+
|
|
10
|
+
// selectors
|
|
11
|
+
static async getButtonByIndex(index) {
|
|
12
|
+
return $$('[data-testid="ds-button"]')[index];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Snapshot
|
|
16
|
+
static snapshotPath(example = 'basic') {
|
|
17
|
+
return PageObject.getSnapshotPathBuilder('ButtonV3', example);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -34,8 +34,11 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
34
34
|
it('should scroll to the Load More Btn', async () => {
|
|
35
35
|
const floatBtn = await FloatingButtonCO.getFloatingButton();
|
|
36
36
|
await floatBtn.click();
|
|
37
|
+
const chatContainer = await DSChatCO.getThreadContainer();
|
|
38
|
+
await chatContainer.waitForDisplayed();
|
|
39
|
+
await browser.keys(Key.Tab);
|
|
40
|
+
await browser.keys(Key.Home);
|
|
37
41
|
const loadMoreBtn = await DSChatCO.getLoadMoreBtn();
|
|
38
|
-
await loadMoreBtn.scrollIntoView();
|
|
39
42
|
await expect(loadMoreBtn).toBeDisplayedInViewport();
|
|
40
43
|
});
|
|
41
44
|
it('should click the text input and focus it', async () => {
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import DSCircularIndicatorCO from './DSCircularIndicatorCO';
|
|
2
2
|
import { mouseOver, axeCoreCheck } from '../helpers';
|
|
3
3
|
|
|
4
|
-
if (
|
|
4
|
+
if (
|
|
5
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
6
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
7
|
+
browser.capabilities.browserName === 'Chrome') ||
|
|
8
|
+
browser.capabilities.browserName === 'chrome'
|
|
9
|
+
) {
|
|
5
10
|
describe('PUI-11275 - Circular Indeterminate Indicator, showcase/tooltip - Axe-Core', () => {
|
|
6
11
|
before('loading page', async () => {
|
|
7
12
|
const errorOnGo = await DSCircularIndicatorCO.showcaseURL.go();
|
|
@@ -16,7 +21,8 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
16
21
|
expect(result.length).toBe(0);
|
|
17
22
|
});
|
|
18
23
|
});
|
|
19
|
-
|
|
24
|
+
// unskip after PUI-12242 is fixed
|
|
25
|
+
describe.skip('PUI-11277 - Circular Indeterminate Indicator, full-screen - Axe-Core', () => {
|
|
20
26
|
before('loading page', async () => {
|
|
21
27
|
const errorOnGo = await DSCircularIndicatorCO.fullScreenURL.go();
|
|
22
28
|
if (errorOnGo) throw errorOnGo;
|
|
@@ -28,7 +34,8 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
28
34
|
expect(result.length).toBe(0);
|
|
29
35
|
});
|
|
30
36
|
});
|
|
31
|
-
|
|
37
|
+
// unskip after PUI-11614 is fixed
|
|
38
|
+
describe.skip('PUI-11276 - Circular Indeterminate Indicator, Dialog - Axe-Core', () => {
|
|
32
39
|
before('loading page', async () => {
|
|
33
40
|
const errorOnGo = await DSCircularIndicatorCO.insideDialog.go();
|
|
34
41
|
if (errorOnGo) throw errorOnGo;
|
|
@@ -2,8 +2,10 @@ import { mouseOver, axeCoreCheck, type } from '../helpers';
|
|
|
2
2
|
import DSCommentsCO from './DSCommentsCO';
|
|
3
3
|
|
|
4
4
|
if (
|
|
5
|
-
(!browser.capabilities['ice:options'].isPhone &&
|
|
6
|
-
|
|
5
|
+
(!browser.capabilities['ice:options'].isPhone &&
|
|
6
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
7
|
+
browser.capabilities.browserName === 'Chrome') ||
|
|
8
|
+
browser.capabilities.browserName === 'chrome'
|
|
7
9
|
) {
|
|
8
10
|
describe('PUI-10808 - DSCommentsCard, Basic -AxeCore test', () => {
|
|
9
11
|
before('loading page', async () => {
|
|
@@ -25,4 +25,23 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
25
25
|
await expect(combo).toBeFocused();
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
+
describe('PUI-12245 - ComboboxV3:: Select with Tab - func', () => {
|
|
29
|
+
before('loading page', async () => {
|
|
30
|
+
const errorOnGo = await DSComboboxCO.singleSelectFixedWidth.go();
|
|
31
|
+
if (errorOnGo) throw errorOnGo;
|
|
32
|
+
});
|
|
33
|
+
it('01: should select an option with TAB and focus should leave combo', async () => {
|
|
34
|
+
const combobox = await DSComboboxCO.getCombobox();
|
|
35
|
+
const menulist = await DSComboboxCO.getMenuList();
|
|
36
|
+
await combobox.waitForDisplayed();
|
|
37
|
+
await browser.keys(Key.Tab);
|
|
38
|
+
await browser.keys(Key.Enter);
|
|
39
|
+
await browser.keys(Key.ArrowDown);
|
|
40
|
+
await browser.keys(Key.Tab);
|
|
41
|
+
const selectedOption = await DSComboboxCO.getSelectedValues();
|
|
42
|
+
await expect(combobox).not.toBeFocused();
|
|
43
|
+
await expect(menulist).not.toBeDisplayed();
|
|
44
|
+
await expect(selectedOption).toHaveTextContaining('Obi-Wan Kenobi');
|
|
45
|
+
});
|
|
46
|
+
});
|
|
28
47
|
}
|
package/ds-controlled-form/ds-combobox/error-state/DSComboboxbox.with-form-item-block.visual.spec.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
1
2
|
import DSComboboxCO from '../DSComboboxCO';
|
|
2
3
|
|
|
3
4
|
// eyesOpen() should be modified in order to works with tablet and mobile
|
|
@@ -7,7 +8,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
7
8
|
const errorOnGo = await DSComboboxCO.withFormLayoutBlockItem.go();
|
|
8
9
|
if (errorOnGo) throw errorOnGo;
|
|
9
10
|
});
|
|
10
|
-
it('should display error state and highlight', async () => {
|
|
11
|
+
it('01: should display error state and highlight', async () => {
|
|
11
12
|
await browser.eyesOpen();
|
|
12
13
|
const combobox = await DSComboboxCO.getCombobox();
|
|
13
14
|
await combobox.waitForDisplayed();
|
|
@@ -16,7 +17,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
16
17
|
);
|
|
17
18
|
await expect(snapshot).toEqual(0);
|
|
18
19
|
});
|
|
19
|
-
it('should display error state and highliht with menu opened', async () => {
|
|
20
|
+
it('02: should display error state and highliht with menu opened', async () => {
|
|
20
21
|
await browser.eyesOpen();
|
|
21
22
|
const dropDownBtn = await DSComboboxCO.getDropDownMenuBtn();
|
|
22
23
|
await dropDownBtn.waitForExist();
|
|
@@ -28,19 +29,17 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
28
29
|
);
|
|
29
30
|
await expect(snapshot).toEqual(0);
|
|
30
31
|
});
|
|
31
|
-
it('should display error state and highliht with option selected', async () => {
|
|
32
|
+
it('03: should display error state and highliht with option selected', async () => {
|
|
32
33
|
await browser.eyesOpen();
|
|
33
34
|
const label = 'Luke Skywalker too long this text is super long';
|
|
34
35
|
const option = await DSComboboxCO.getOptionByLabel(label);
|
|
35
36
|
await option.click();
|
|
36
|
-
const pill = await DSComboboxCO.getPillByLabel(label);
|
|
37
|
-
await pill.waitForDisplayed();
|
|
38
37
|
const snapshot = await browser.eyesCheckSnapshot(
|
|
39
38
|
DSComboboxCO.snapshotPath('comboboxV3-error-state-with-highliht-option-selected'),
|
|
40
39
|
);
|
|
41
40
|
await expect(snapshot).toEqual(0);
|
|
42
41
|
});
|
|
43
|
-
it('should display error state with option selected', async () => {
|
|
42
|
+
it('04: should display error state with option selected', async () => {
|
|
44
43
|
await browser.eyesOpen();
|
|
45
44
|
const highlightCheckbox = await DSComboboxCO.getCheckboxByLabel('Set Highlight');
|
|
46
45
|
await highlightCheckbox.click();
|
|
@@ -49,17 +48,20 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
49
48
|
);
|
|
50
49
|
await expect(snapshot).toEqual(0);
|
|
51
50
|
});
|
|
52
|
-
it('should display error state focused', async () => {
|
|
51
|
+
it('05: should display error state focused', async () => {
|
|
53
52
|
await browser.eyesOpen();
|
|
54
|
-
const
|
|
55
|
-
await
|
|
53
|
+
const dropDownBtn = await DSComboboxCO.getDropDownMenuBtn();
|
|
54
|
+
await dropDownBtn.waitForExist();
|
|
55
|
+
await dropDownBtn.click();
|
|
56
|
+
const label = 'Luke Skywalker too long this text is super long';
|
|
57
|
+
const option = await DSComboboxCO.getOptionByLabel(label);
|
|
58
|
+
await option.click();
|
|
56
59
|
const snapshot = await browser.eyesCheckSnapshot(DSComboboxCO.snapshotPath('comboboxV3-error-state-focused'));
|
|
57
60
|
await expect(snapshot).toEqual(0);
|
|
58
61
|
});
|
|
59
|
-
it('should display error state', async () => {
|
|
62
|
+
it('06: should display error state', async () => {
|
|
60
63
|
await browser.eyesOpen();
|
|
61
|
-
|
|
62
|
-
await combobox.click({ x: 350 });
|
|
64
|
+
await browser.keys(Key.Tab);
|
|
63
65
|
const snapshot = await browser.eyesCheckSnapshot(DSComboboxCO.snapshotPath('comboboxV3-error-state'));
|
|
64
66
|
await expect(snapshot).toEqual(0);
|
|
65
67
|
});
|
|
@@ -6,7 +6,7 @@ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
|
|
|
6
6
|
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
7
7
|
describe('PUI-6673 - DSControlledDateTimePicker:: DateInput: auto-advance', () => {
|
|
8
8
|
beforeEach('loading page', async () => {
|
|
9
|
-
const errorOnGo = await DateTimePickerCO.
|
|
9
|
+
const errorOnGo = await DateTimePickerCO.dateShowcase.go();
|
|
10
10
|
if (errorOnGo) throw errorOnGo;
|
|
11
11
|
});
|
|
12
12
|
it('01: should not auto-advance to day input - Enter "1"', async () => {
|
|
@@ -21,7 +21,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
21
21
|
await expect(snapshot).toEqual(0);
|
|
22
22
|
});
|
|
23
23
|
it('03: should display the protected group input with hidden characters and disabled', async () => {
|
|
24
|
-
const hideAddon = await DSControlledInputGroupCO.getRightAddOnByIndex(
|
|
24
|
+
const hideAddon = await DSControlledInputGroupCO.getRightAddOnByIndex(0);
|
|
25
25
|
await hideAddon.click();
|
|
26
26
|
const snapshot = await browser.checkSnapshot(
|
|
27
27
|
DSControlledInputGroupCO.snapshotPath('protectedinput-disabled-hidden'),
|
|
@@ -25,8 +25,9 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
25
25
|
await browser.keys(Key.ArrowDown);
|
|
26
26
|
await browser.keys(Key.ArrowDown);
|
|
27
27
|
await browser.keys(Key.Space);
|
|
28
|
-
const
|
|
29
|
-
await
|
|
28
|
+
const row3 = await RowCO.getRowByIndex(2);
|
|
29
|
+
const firstCellRow3 = await CellCO.getRowCellByIndex(await row3, 1);
|
|
30
|
+
await expect(firstCellRow3).toHaveTextContaining('2');
|
|
30
31
|
});
|
|
31
32
|
it('should drop the fourth row inside the fifth row', async () => {
|
|
32
33
|
await browser.keys(Key.ArrowDown);
|
|
@@ -35,8 +36,8 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
35
36
|
await browser.keys(Key.ArrowDown);
|
|
36
37
|
await browser.keys(Key.Space);
|
|
37
38
|
const fourthRow = await (await RowCO.getRowByIndex(4)).$('div');
|
|
38
|
-
const isFourthChildOfFifth =
|
|
39
|
-
await expect(isFourthChildOfFifth).
|
|
39
|
+
const isFourthChildOfFifth = await CellCO.getRowCellByIndex(fourthRow, 1);
|
|
40
|
+
await expect(isFourthChildOfFifth).toHaveTextContaining('4');
|
|
40
41
|
});
|
|
41
42
|
});
|
|
42
43
|
|
|
@@ -57,10 +58,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
57
58
|
await browser.keys(Key.Space);
|
|
58
59
|
await browser.keys(Key.ArrowRight);
|
|
59
60
|
await browser.keys(Key.Space);
|
|
60
|
-
const headerTitleOne = await HeaderCO.
|
|
61
|
-
const headerTitleTwo = await HeaderCO.
|
|
62
|
-
await expect(headerTitleOne).
|
|
63
|
-
await expect(headerTitleTwo).
|
|
61
|
+
const headerTitleOne = await HeaderCO.getHeaderCellByIndex(4);
|
|
62
|
+
const headerTitleTwo = await HeaderCO.getHeaderCellByIndex(5);
|
|
63
|
+
await expect(headerTitleOne).toHaveTextContaining(['SALARY', 'Salary']);
|
|
64
|
+
await expect(headerTitleTwo).toHaveTextContaining(['COUNTRY', 'Country']);
|
|
64
65
|
});
|
|
65
66
|
it('should drop the date range column (backwards) properly', async () => {
|
|
66
67
|
const countryHeaderCell = (await HeaderCO.getHeaderCellByText('DATE RANGE'))[0];
|
|
@@ -69,10 +70,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
69
70
|
await browser.keys(Key.Space);
|
|
70
71
|
await browser.keys(Key.ArrowLeft);
|
|
71
72
|
await browser.keys(Key.Space);
|
|
72
|
-
const headerTitleOne = await HeaderCO.
|
|
73
|
-
const headerTitleTwo = await HeaderCO.
|
|
74
|
-
await expect(headerTitleOne).
|
|
75
|
-
await expect(headerTitleTwo).
|
|
73
|
+
const headerTitleOne = await HeaderCO.getHeaderCellByIndex(6);
|
|
74
|
+
const headerTitleTwo = await HeaderCO.getHeaderCellByIndex(7);
|
|
75
|
+
await expect(headerTitleOne).toHaveTextContaining(['DATE RANGE', 'Date range']);
|
|
76
|
+
await expect(headerTitleTwo).toHaveTextContaining(['SINGLE DATE', 'Single date']);
|
|
76
77
|
});
|
|
77
78
|
});
|
|
78
79
|
|
|
@@ -93,45 +94,10 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
93
94
|
await browser.keys(Key.Space);
|
|
94
95
|
await browser.keys(Key.ArrowLeft);
|
|
95
96
|
await browser.keys(Key.Space);
|
|
96
|
-
const headerTitleOne = await HeaderCO.
|
|
97
|
-
const headerTitleTwo = await HeaderCO.
|
|
98
|
-
await expect(headerTitleOne).
|
|
99
|
-
await expect(headerTitleTwo).
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
describe('PUI-7157 - DataTable, Dnd, Columns', () => {
|
|
103
|
-
before('loading page', async () => {
|
|
104
|
-
const errorOnGo = await DSDataTableCO.dndColumns.go();
|
|
105
|
-
if (errorOnGo) throw errorOnGo;
|
|
106
|
-
await DSDataTableCO.waitForDataTable();
|
|
107
|
-
});
|
|
108
|
-
it('should focus the country header cell drag handler', async () => {
|
|
109
|
-
const countryHeaderCell = (await HeaderCO.getHeaderCellByText('COUNTRY'))[0];
|
|
110
|
-
await countryHeaderCell.click();
|
|
111
|
-
await browser.keys(Key.Return);
|
|
112
|
-
const headerDragHandler = await HeaderCO.getHeaderCellDragHandler(countryHeaderCell);
|
|
113
|
-
await expect(headerDragHandler).toBeFocused();
|
|
114
|
-
});
|
|
115
|
-
it('should drop the country header cell (forward) properly', async () => {
|
|
116
|
-
await browser.keys(Key.Space);
|
|
117
|
-
await browser.keys(Key.ArrowRight);
|
|
118
|
-
await browser.keys(Key.Space);
|
|
119
|
-
const headerTitleOne = await HeaderCO.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(4));
|
|
120
|
-
const headerTitleTwo = await HeaderCO.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(5));
|
|
121
|
-
await expect(headerTitleOne).toBe('salary');
|
|
122
|
-
await expect(headerTitleTwo).toBe('country');
|
|
123
|
-
});
|
|
124
|
-
it('should drop the date range column (backwards) properly', async () => {
|
|
125
|
-
const countryHeaderCell = (await HeaderCO.getHeaderCellByText('DATE RANGE'))[0];
|
|
126
|
-
await countryHeaderCell.click();
|
|
127
|
-
await browser.keys(Key.Return);
|
|
128
|
-
await browser.keys(Key.Space);
|
|
129
|
-
await browser.keys(Key.ArrowLeft);
|
|
130
|
-
await browser.keys(Key.Space);
|
|
131
|
-
const headerTitleOne = await HeaderCO.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(6));
|
|
132
|
-
const headerTitleTwo = await HeaderCO.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(7));
|
|
133
|
-
await expect(headerTitleOne).toBe('date range');
|
|
134
|
-
await expect(headerTitleTwo).toBe('single date');
|
|
97
|
+
const headerTitleOne = await HeaderCO.getHeaderCellByIndex(0);
|
|
98
|
+
const headerTitleTwo = await HeaderCO.getHeaderCellByIndex(5);
|
|
99
|
+
await expect(headerTitleOne).toHaveTextContaining(['INFO', 'Info']);
|
|
100
|
+
await expect(headerTitleTwo).toHaveTextContaining(['NAME & POSITION', 'Name & Position']);
|
|
135
101
|
});
|
|
136
102
|
});
|
|
137
103
|
|
|
@@ -153,8 +119,8 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
153
119
|
await browser.keys(Key.ArrowRight);
|
|
154
120
|
await browser.keys(Key.ArrowRight);
|
|
155
121
|
await browser.keys(Key.Return);
|
|
156
|
-
const
|
|
157
|
-
await expect(
|
|
122
|
+
const lastHeader = await HeaderCO.getHeaderCellByIndex(8);
|
|
123
|
+
await expect(lastHeader).toHaveTextContaining(['NAME', 'Name']);
|
|
158
124
|
});
|
|
159
125
|
it('02: should drop name column in the first position', async () => {
|
|
160
126
|
await browser.keys(Key.Return);
|
|
@@ -167,8 +133,8 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
167
133
|
await browser.keys(Key.ArrowLeft);
|
|
168
134
|
await browser.keys(Key.ArrowLeft);
|
|
169
135
|
await browser.keys(Key.Return);
|
|
170
|
-
const
|
|
171
|
-
await expect(
|
|
136
|
+
const firstHeader = await HeaderCO.getHeaderCellByIndex(0);
|
|
137
|
+
await expect(firstHeader).toHaveTextContaining(['NAME', 'Name']);
|
|
172
138
|
});
|
|
173
139
|
});
|
|
174
140
|
describe('PUI-9849 - DataTable, Dnd click on DND button', () => {
|
|
@@ -182,40 +148,36 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
182
148
|
await dndBtnRow3.click();
|
|
183
149
|
const row3 = await RowCO.getRowByIndex(2);
|
|
184
150
|
const idCell = await CellCO.getRowCellByIndex(row3, 1);
|
|
185
|
-
const cellContent = await idCell.getText();
|
|
186
151
|
await browser.pause(500);
|
|
152
|
+
await expect(idCell).toHaveTextContaining('3');
|
|
187
153
|
await expect(dndBtnRow3).toBeFocused();
|
|
188
|
-
await expect(cellContent).toBe('3');
|
|
189
154
|
});
|
|
190
155
|
it('02: rows should be expanded and focus should be on "Expand All" button', async () => {
|
|
191
156
|
const headerExpandableBtn = await HeaderCO.getHeaderExpandButton();
|
|
192
157
|
await headerExpandableBtn.click();
|
|
193
158
|
const row3 = await RowCO.getRowByIndex(6);
|
|
194
159
|
const idCell = await CellCO.getRowCellByIndex(row3, 1);
|
|
195
|
-
const cellContent = await idCell.getText();
|
|
196
160
|
await browser.pause(500);
|
|
161
|
+
await expect(idCell).toHaveTextContaining('3');
|
|
197
162
|
await expect(headerExpandableBtn).toBeFocused();
|
|
198
|
-
await expect(cellContent).toBe('3');
|
|
199
163
|
});
|
|
200
164
|
it('03: focus should be on DND button of 4th and the row should be on same position', async () => {
|
|
201
165
|
const dndBtnRow4 = await RowCO.getRowDragHlandlerByIndex(9); // it is expanded
|
|
202
166
|
await dndBtnRow4.click();
|
|
203
167
|
const row4 = await RowCO.getRowByIndex(9);
|
|
204
168
|
const idCell = await CellCO.getRowCellByIndex(row4, 1);
|
|
205
|
-
const cellContent = await idCell.getText();
|
|
206
169
|
await browser.pause(500);
|
|
170
|
+
await expect(idCell).toHaveTextContaining('4');
|
|
207
171
|
await expect(dndBtnRow4).toBeFocused();
|
|
208
|
-
await expect(cellContent).toBe('4');
|
|
209
172
|
});
|
|
210
173
|
it('04: rows should be expanded and focus should be on "Expand All" button', async () => {
|
|
211
174
|
const dndBtn2ndChdRow4 = await RowCO.getRowDragHlandlerByIndex(10);
|
|
212
175
|
await dndBtn2ndChdRow4.click();
|
|
213
176
|
const row4 = await RowCO.getRowByIndex(9);
|
|
214
177
|
const idCell = await CellCO.getRowCellByIndex(row4, 1);
|
|
215
|
-
const cellContent = await idCell.getText();
|
|
216
178
|
await browser.pause(500);
|
|
179
|
+
await expect(idCell).toHaveTextContaining('4');
|
|
217
180
|
await expect(dndBtn2ndChdRow4).toBeFocused();
|
|
218
|
-
await expect(cellContent).toBe('4');
|
|
219
181
|
});
|
|
220
182
|
});
|
|
221
183
|
}
|
|
@@ -43,28 +43,40 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
43
43
|
});
|
|
44
44
|
|
|
45
45
|
describe('PUI-8272 - DataTable, Dnd, Columns - visual', () => {
|
|
46
|
-
|
|
46
|
+
beforeEach('loading page', async () => {
|
|
47
47
|
const errorOnGo = await DSDataTableCO.dndColumns.go();
|
|
48
48
|
if (errorOnGo) throw errorOnGo;
|
|
49
49
|
await DSDataTableCO.waitForDataTable();
|
|
50
50
|
});
|
|
51
51
|
it('should display drag handler correctly', async () => {
|
|
52
|
+
await browser.eyesOpen();
|
|
52
53
|
const countryHeaderCell = (await HeaderCO.getHeaderCellByText('COUNTRY'))[0];
|
|
53
54
|
await countryHeaderCell.click();
|
|
54
55
|
await browser.keys(Key.Return);
|
|
55
56
|
await browser.keys(Key.Space);
|
|
56
|
-
const snapshot = await browser.
|
|
57
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('column-drag-handler'));
|
|
57
58
|
await expect(snapshot).toEqual(0);
|
|
58
59
|
});
|
|
59
60
|
it('should display drag handler - in between position', async () => {
|
|
61
|
+
await browser.eyesOpen();
|
|
62
|
+
const countryHeaderCell = (await HeaderCO.getHeaderCellByText('COUNTRY'))[0];
|
|
63
|
+
await countryHeaderCell.click();
|
|
64
|
+
await browser.keys(Key.Return);
|
|
65
|
+
await browser.keys(Key.Space);
|
|
60
66
|
await browser.keys(Key.ArrowRight);
|
|
61
|
-
const snapshot = await browser.
|
|
67
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('column-in-between-position'));
|
|
62
68
|
await expect(snapshot).toEqual(0);
|
|
63
69
|
});
|
|
64
70
|
it('should drop the columns properly', async () => {
|
|
71
|
+
await browser.eyesOpen();
|
|
72
|
+
const countryHeaderCell = (await HeaderCO.getHeaderCellByText('COUNTRY'))[0];
|
|
73
|
+
await countryHeaderCell.click();
|
|
74
|
+
await browser.keys(Key.Return);
|
|
75
|
+
await browser.keys(Key.Space);
|
|
76
|
+
await browser.keys(Key.ArrowRight);
|
|
65
77
|
await browser.keys(Key.ArrowRight);
|
|
66
78
|
await browser.keys(Key.Space);
|
|
67
|
-
const snapshot = await browser.
|
|
79
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('column-dropped'));
|
|
68
80
|
await expect(snapshot).toEqual(0);
|
|
69
81
|
});
|
|
70
82
|
});
|
|
@@ -76,56 +88,72 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
76
88
|
await DSDataTableCO.waitForDataTable();
|
|
77
89
|
});
|
|
78
90
|
it('should display drag handler correctly', async () => {
|
|
91
|
+
await browser.eyesOpen();
|
|
79
92
|
const infoGroupHeaderCell = (await HeaderCO.getHeaderCellByText('info'))[0];
|
|
80
93
|
await infoGroupHeaderCell.click();
|
|
81
94
|
await browser.keys(Key.Return);
|
|
82
95
|
await browser.keys(Key.Space);
|
|
83
|
-
const snapshot = await browser.
|
|
96
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('column-group-drag-handler'));
|
|
84
97
|
await expect(snapshot).toEqual(0);
|
|
85
98
|
});
|
|
86
99
|
it('should display drag handler - in between position', async () => {
|
|
100
|
+
await browser.eyesOpen();
|
|
87
101
|
const infoGroupHeaderCell = (await HeaderCO.getHeaderCellByText('info'))[0];
|
|
88
102
|
await infoGroupHeaderCell.click();
|
|
89
103
|
await browser.keys(Key.Return);
|
|
90
104
|
await browser.keys(Key.Space);
|
|
91
105
|
await browser.keys(Key.ArrowLeft);
|
|
92
|
-
const snapshot = await browser.
|
|
106
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('column-group-in-between-position'));
|
|
93
107
|
await expect(snapshot).toEqual(0);
|
|
94
108
|
});
|
|
95
109
|
it('should drop the columns properly', async () => {
|
|
110
|
+
await browser.eyesOpen();
|
|
96
111
|
const infoGroupHeaderCell = (await HeaderCO.getHeaderCellByText('info'))[0];
|
|
97
112
|
await infoGroupHeaderCell.click();
|
|
98
113
|
await browser.keys(Key.Return);
|
|
99
114
|
await browser.keys(Key.Space);
|
|
100
115
|
await browser.keys(Key.ArrowLeft);
|
|
101
116
|
await browser.keys(Key.Space);
|
|
102
|
-
const snapshot = await browser.
|
|
117
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('column-group-dropped'));
|
|
103
118
|
await expect(snapshot).toEqual(0);
|
|
104
119
|
});
|
|
105
120
|
});
|
|
106
121
|
describe('PUI-8705 - DataTable inside Tabs, Dnd, Rows - visual', () => {
|
|
107
|
-
|
|
122
|
+
beforeEach('loading page', async () => {
|
|
108
123
|
const errorOnGo = await DSDataTableCO.datatableInsideTabs.go();
|
|
109
124
|
if (errorOnGo) throw errorOnGo;
|
|
110
125
|
await DSDataTableCO.waitForDataTable();
|
|
111
126
|
});
|
|
112
|
-
it('should display drag handler correctly
|
|
127
|
+
it('01: should display drag handler correctly', async () => {
|
|
128
|
+
await browser.eyesOpen();
|
|
113
129
|
await (await RowCO.getRowByIndex(0)).click();
|
|
114
130
|
await browser.keys(Key.Tab);
|
|
115
131
|
await browser.keys(Key.Return);
|
|
116
132
|
await browser.keys(Key.Space);
|
|
117
|
-
const snapshot = await browser.
|
|
133
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('inside-tabs-row-drag-handler'));
|
|
118
134
|
await expect(snapshot).toEqual(0);
|
|
119
135
|
});
|
|
120
|
-
it('should display drag handler -
|
|
136
|
+
it('02: should display drag handler - in between position', async () => {
|
|
137
|
+
await browser.eyesOpen();
|
|
138
|
+
await (await RowCO.getRowByIndex(0)).click();
|
|
139
|
+
await browser.keys(Key.Tab);
|
|
140
|
+
await browser.keys(Key.Return);
|
|
141
|
+
await browser.keys(Key.Space);
|
|
121
142
|
await browser.keys(Key.ArrowDown);
|
|
122
143
|
await browser.keys(Key.ArrowDown);
|
|
123
|
-
const snapshot = await browser.
|
|
144
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('inside-tabs-row-drop-in-betweeen'));
|
|
124
145
|
await expect(snapshot).toEqual(0);
|
|
125
146
|
});
|
|
126
|
-
it('should display row dropped correctly', async () => {
|
|
147
|
+
it('03: should display row dropped correctly', async () => {
|
|
148
|
+
await browser.eyesOpen();
|
|
149
|
+
await (await RowCO.getRowByIndex(0)).click();
|
|
150
|
+
await browser.keys(Key.Tab);
|
|
151
|
+
await browser.keys(Key.Return);
|
|
152
|
+
await browser.keys(Key.Space);
|
|
153
|
+
await browser.keys(Key.ArrowDown);
|
|
154
|
+
await browser.keys(Key.ArrowDown);
|
|
127
155
|
await browser.keys(Key.Space);
|
|
128
|
-
const snapshot = await browser.
|
|
156
|
+
const snapshot = await browser.eyesCheckSnapshot(DSDataTableCO.snapshotPath('inside-tabs-row-dropped'));
|
|
129
157
|
await expect(snapshot).toEqual(0);
|
|
130
158
|
});
|
|
131
159
|
});
|
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
import { Key } from 'webdriverio';
|
|
4
4
|
import DG from './DatagridObject';
|
|
5
5
|
|
|
6
|
-
if (
|
|
6
|
+
if (
|
|
7
|
+
!browser.capabilities['ice:options'].isPhone &&
|
|
8
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
9
|
+
browser.capabilities.browserName !== 'Safari'
|
|
10
|
+
) {
|
|
7
11
|
describe('PUI-2964 - DatePicker - Single-Range, select date from calendar', () => {
|
|
8
12
|
before('loading page', async () => {
|
|
9
13
|
await DG.filterableForDatesURL.go();
|
|
@@ -95,6 +95,8 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
|
|
|
95
95
|
await pillTitle.waitForDisplayed();
|
|
96
96
|
const removablePill0 = await DG.getRemovablePills(0);
|
|
97
97
|
const removablePill1 = await DG.getRemovablePills(1);
|
|
98
|
+
await removablePill0.waitForDisplayed();
|
|
99
|
+
await removablePill1.waitForDisplayed();
|
|
98
100
|
await expect(pillTitle).toHaveTextContaining('Name');
|
|
99
101
|
await expect(removablePill0).toHaveTextContaining('Chris');
|
|
100
102
|
await expect(removablePill1).toHaveTextContaining('Mark');
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import DG from './DatagridObject';
|
|
2
2
|
|
|
3
|
-
if (
|
|
3
|
+
if (
|
|
4
|
+
!browser.capabilities['ice:options'].isPhone &&
|
|
5
|
+
!browser.capabilities['ice:options'].isTablet &&
|
|
6
|
+
browser.capabilities.browserName !== 'Safari'
|
|
7
|
+
) {
|
|
4
8
|
describe('PUI-6228 - DataGrid, on scrolling toolbar should be sticky', () => {
|
|
5
9
|
beforeEach('loading page', async () => {
|
|
6
10
|
const errorOnGo = await DG.performanceURL.go();
|
|
@@ -47,8 +47,8 @@ if (
|
|
|
47
47
|
expect(result.length).toBe(0);
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
|
-
|
|
51
|
-
describe('PUI-11381 - DSDataViz, Within dialog -AxeCore', () => {
|
|
50
|
+
// unskip after PUI-11614 is fixed
|
|
51
|
+
describe.skip('PUI-11381 - DSDataViz, Within dialog -AxeCore', () => {
|
|
52
52
|
before('loading page', async () => {
|
|
53
53
|
const errorOnGo = await DSDataVizCO.dialogTest.go();
|
|
54
54
|
if (errorOnGo) throw errorOnGo;
|