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.
Files changed (50) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/ds-button-v3/DSButtonV3.visual.spec.js +56 -0
  3. package/ds-button-v3/DSButtonV3CO.js +19 -0
  4. package/ds-chat/DSChat-loadmore.func.spec.js +4 -1
  5. package/ds-circular-indeterminate-indicator/DSCircularIndicator.axe-core.func.spec.js +10 -3
  6. package/ds-comments-card/DSComments.axe-core.func.spec.js +4 -2
  7. package/ds-controlled-form/ds-combobox/DSComboboxCO.js +1 -1
  8. package/ds-controlled-form/ds-combobox/DSComboboxbox.func.spec.js +19 -0
  9. package/ds-controlled-form/ds-combobox/error-state/DSComboboxbox.with-form-item-block.visual.spec.js +14 -12
  10. package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.auto-advance.func.spec.js +1 -1
  11. package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.visual.spec.js +1 -1
  12. package/ds-data-table-async/dnd/DSDataTable.dnd.func.spec.js +25 -63
  13. package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +42 -14
  14. package/ds-datagrids/DSDatagrids-filterable-dates.func.spec.js +5 -1
  15. package/ds-datagrids/DSDatagrids-filterable.func.spec.js +2 -0
  16. package/ds-datagrids/DSDatagrids-toolbar.visual.spec.js +5 -1
  17. package/ds-dataviz/axecore/DSDataViz.extra.axe-core.func.spec.js +2 -2
  18. package/ds-date-picker/DSDatePicker.func.spec.js +3 -5
  19. package/ds-dialog/DSDialog.visual.spec.js +45 -0
  20. package/ds-dialog/DSDialogCO.js +8 -2
  21. package/ds-drag-and-drop/DSDragAndDrop.axe-core.func.spec.js +0 -1
  22. package/ds-dropdownmenu/DSDropddownMenu-loading.visual.spec.js +14 -11
  23. package/ds-dropdownmenu/DropdownMenuCO.js +4 -0
  24. package/ds-form/InputMask/DSInputMask.visual.spec.js +1 -1
  25. package/ds-global-header/GlobalHeader.func.spec.js +49 -0
  26. package/ds-global-header/GlobalHeaderCO.js +8 -0
  27. package/ds-leftnavigation/LeftNavigation.axe-core.func.spec.js +1 -2
  28. package/ds-modal-slide/ModalSlide.visual.spec.js +28 -0
  29. package/ds-modal-slide/ModalSlideCO.js +4 -0
  30. package/ds-pills/DSPills.func.spec.js +1 -0
  31. package/ds-shuttle/DSShuttle-infinite-scroll.visual.spec.js +1 -3
  32. package/ds-shuttle/DSShuttle.func.spec.js +17 -16
  33. package/ds-shuttle-v2/basic/DSShuttleV2.visual.spec.js +6 -36
  34. package/ds-shuttle-v2/disabled/DSShuttleV2.disabled.visual.spec.js +22 -0
  35. package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.axe-core.func.spec.js +2 -1
  36. package/ds-shuttle-v2/responsive/DSShuttleV2.responsive.visual.spec.js +15 -0
  37. package/ds-squareindicator/DSSquareIndicatorCO.js +2 -2
  38. package/ds-tabs/DSTabs.axe-core.func.spec.js +1 -1
  39. package/ds-treeview/TreeView-dnd.visual.spec.js +10 -1
  40. package/ds-wizard/DSWizard.axe-core.func.spec.js +6 -1
  41. package/package.json +119 -119
  42. package/{ds-button-v1 → zzz-eol/ds-button-v1}/DSButton.func.spec.js +1 -1
  43. package/{ds-button-v1 → zzz-eol/ds-button-v1}/DSButtonCO.js +2 -2
  44. package/{ds-button-v2 → zzz-eol/ds-button-v2}/DSButtonV2.axe-core.func.spec.js +1 -1
  45. package/{ds-button-v2 → zzz-eol/ds-button-v2}/DSButtonV2.func.spec.js +1 -1
  46. package/{ds-button-v2 → zzz-eol/ds-button-v2}/DSButtonV2.visual.spec.js +1 -1
  47. package/{ds-button-v2 → zzz-eol/ds-button-v2}/DSButtonV2CO.js +2 -2
  48. package/zzz-eol/ds-group-box/DSGroupBox.axe-core.func.spec.js +6 -4
  49. package/zzz-eol/ds-group-box/DSGroupBox.visual.spec.js +1 -1
  50. /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 (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
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
- describe('PUI-11277 - Circular Indeterminate Indicator, full-screen - Axe-Core', () => {
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
- describe('PUI-11276 - Circular Indeterminate Indicator, Dialog - Axe-Core', () => {
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 && browser.capabilities.browserName === 'chrome') ||
6
- browser.capabilities.browserName === 'Chrome'
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 () => {
@@ -102,7 +102,7 @@ export default class DSComboboxCO extends PageObject {
102
102
  }
103
103
 
104
104
  static async getComboListbox() {
105
- return $('#combo-listbox');
105
+ return $('[id^="combo-listbox"]');
106
106
  }
107
107
 
108
108
  // PILLS
@@ -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
  }
@@ -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 closePill = await DSComboboxCO.getPillCloseBtn();
55
- await closePill.click();
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
- const combobox = await DSComboboxCO.getCombobox();
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.dateInput.go();
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(1);
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 cellText = await (await CellCO.getRowCellByIndex(await RowCO.getRowByIndex(2), 1)).getText();
29
- await expect(cellText).toBe('2');
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 = (await (await CellCO.getRowCellByIndex(fourthRow, 1)).getText()) === '4';
39
- await expect(isFourthChildOfFifth).toBeTruthy();
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.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(4));
61
- const headerTitleTwo = await HeaderCO.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(5));
62
- await expect(headerTitleOne).toBe('salary');
63
- await expect(headerTitleTwo).toBe('country');
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.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(6));
73
- const headerTitleTwo = await HeaderCO.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(7));
74
- await expect(headerTitleOne).toBe('date range');
75
- await expect(headerTitleTwo).toBe('single date');
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.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(0));
97
- const headerTitleTwo = await HeaderCO.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(5));
98
- await expect(headerTitleOne).toBe('info');
99
- await expect(headerTitleTwo).toBe('name & position');
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 lastHeaderTitle = await HeaderCO.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(8));
157
- await expect(lastHeaderTitle).toBe('name');
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 lastHeaderTitle = await HeaderCO.getHeaderCellTitle(await HeaderCO.getHeaderCellByIndex(0));
171
- await expect(lastHeaderTitle).toBe('name');
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
- before('loading page', async () => {
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.checkSnapshot(DSDataTableCO.snapshotPath('column-drag-handler'));
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.checkSnapshot(DSDataTableCO.snapshotPath('column-in-between-position'));
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.checkSnapshot(DSDataTableCO.snapshotPath('column-dropped'));
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.checkSnapshot(DSDataTableCO.snapshotPath('column-group-drag-handler'));
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.checkSnapshot(DSDataTableCO.snapshotPath('column-group-in-between-position'));
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.checkSnapshot(DSDataTableCO.snapshotPath('column-group-dropped'));
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
- before('loading page', async () => {
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 - in between position', async () => {
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.checkSnapshot(DSDataTableCO.snapshotPath('row-drag-handler'));
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 - inside position', async () => {
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.checkSnapshot(DSDataTableCO.snapshotPath('row-drop-inside-position'));
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.checkSnapshot(DSDataTableCO.snapshotPath('row-dropped'));
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 (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
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 (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
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;