dimsum-e2e-tests 3.60.0-next.3 → 3.60.0-next.31

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 (44) hide show
  1. package/CHANGELOG.md +162 -0
  2. package/ds-apppicker/DSAppPickerCO.js +10 -0
  3. package/ds-apppicker/reflow/DSAppPicker.reflow.visual.spec.js +36 -0
  4. package/ds-apppicker/slots/DSAppPicker.slots.func.spec.js +13 -0
  5. package/ds-chip/DSChip.visual.spec.js +18 -1
  6. package/ds-chip/DSChipCO.js +2 -0
  7. package/ds-chip/slots/DSChip.slots.func.spec.js +25 -0
  8. package/ds-controlled-form/ds-controlled-large-input-text/dialog/DSLargeInputText.dialog.visual.spec.js +1 -2
  9. package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +1 -1
  10. package/ds-form-combobox-multi/DSComboboxMultiCO.js +2 -0
  11. package/ds-form-combobox-multi/aria-multiselectable/DSComboboxMulti.aria-multiselectable.func.spec.js +21 -0
  12. package/ds-form-combobox-multi/slots/DSComboboxMulti.slots.visual.spec.js +1 -4
  13. package/ds-form-date-time-picker/date-time-full/DateTimePicker.func.spec.js +1 -1
  14. package/ds-global-header/GlobalHeaderCO.js +3 -3
  15. package/ds-global-header/slots/GlobalHeader.slots.func.spec.js +39 -39
  16. package/ds-leftnavigation/LeftNavigation.func.spec.js +1 -1
  17. package/ds-leftnavigation/LeftNavigation.slots.func.spec.js +166 -109
  18. package/ds-leftnavigation/LeftNavigation.slots.visual.spec.js +4 -4
  19. package/ds-leftnavigation/LeftNavigationCO.js +20 -0
  20. package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +1 -1
  21. package/ds-notification-badge/DSNotificationBadge.global-attributes.func.spec.js +23 -0
  22. package/ds-notification-badge/DSNotificationBadgeCO.js +10 -4
  23. package/ds-shuttle-v2/DSShuttleV2CO.js +6 -0
  24. package/ds-shuttle-v2/extra/DSShuttleV2.extra.func.spec.js +49 -0
  25. package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +27 -0
  26. package/ds-tab-button/DSTabButton.func.spec.js +24 -0
  27. package/ds-tab-button/DSTabButtonCO.js +16 -0
  28. package/ds-tabs/DSTabs.axe-core.func.spec.js +0 -54
  29. package/ds-tabs/DSTabs.func.spec.js +1 -167
  30. package/ds-tabs/DSTabs.visual.spec.js +13 -69
  31. package/ds-tabs/DSTabsCO.js +2 -36
  32. package/ds-tabs/aria-disabled/DSTabs.aria-disabled.visual.spec.js +2 -2
  33. package/ds-tabs/disabled/DSTabs.disabled.axe-core.func.spec.js +22 -0
  34. package/ds-tabs/disabled/DSTabs.disabled.func.spec.js +28 -0
  35. package/ds-tabs/disabled/DSTabs.disabled.visual.spec.js +58 -0
  36. package/ds-tabs/nested/DSTabs.nested.axe-core.func.spec.js +31 -0
  37. package/ds-tabs/nested/DSTabs.nested.func.spec.js +22 -0
  38. package/ds-tabs/nested/DSTabs.nested.visual.spec.js +30 -0
  39. package/ds-tabs/slots/DSTabs.slots.func.spec.js +47 -15
  40. package/ds-tabs/with-carousel/DSTabs.with-carousel.axe-core.func.spec.js +32 -0
  41. package/ds-tabs/with-carousel/DSTabs.with-carousel.func.spec.js +560 -0
  42. package/ds-tabs/with-carousel/DSTabs.with-carousel.visual.spec.js +212 -28
  43. package/helpers.js +4 -1
  44. package/package.json +189 -190
package/CHANGELOG.md CHANGED
@@ -3,6 +3,168 @@
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.60.0-next.31 (2026-02-25)
7
+
8
+ ### Features
9
+
10
+ - ds-menu-button:: enable playwright tests [PUI-16741](https://jira.elliemae.io/browse/PUI-16741) ([#7898](https://git.elliemae.io/platform-ui/dimsum/issues/7898)) ([580ea18](https://git.elliemae.io/platform-ui/dimsum/commit/580ea18cef699587201ced6444eee73936a85c4c))
11
+
12
+ ## 3.60.0-next.30 (2026-02-24)
13
+
14
+ ### Bug Fixes
15
+
16
+ - ds-codemods:: legacy-deprecation-26dot3 replaceAll for multi match fix ([#7897](https://git.elliemae.io/platform-ui/dimsum/issues/7897)) ([3b27f7e](https://git.elliemae.io/platform-ui/dimsum/commit/3b27f7e04a56ed2b14b12a1523748a1a4828c8a1))
17
+
18
+ ## 3.60.0-next.29 (2026-02-23)
19
+
20
+ ### Bug Fixes
21
+
22
+ - ds-tabs:: add functional test for tabs with scrollbar - keyboard nav [PUI-17883](https://jira.elliemae.io/browse/PUI-17883) ([#7895](https://git.elliemae.io/platform-ui/dimsum/issues/7895)) ([bbd1058](https://git.elliemae.io/platform-ui/dimsum/commit/bbd1058f2f1dac1e3f942bca697b304d28996986))
23
+
24
+ ## 3.60.0-next.28 (2026-02-20)
25
+
26
+ ### Bug Fixes
27
+
28
+ - ds-left-navigation:: add functional test for slots customization [PUI-15560](https://jira.elliemae.io/browse/PUI-15560) ([#7892](https://git.elliemae.io/platform-ui/dimsum/issues/7892)) ([6732509](https://git.elliemae.io/platform-ui/dimsum/commit/6732509aaaafeb3c3cc4f2e8e85986177b782c58))
29
+
30
+ ## 3.60.0-next.27 (2026-02-20)
31
+
32
+ ### Bug Fixes
33
+
34
+ - ds-tabs:: show outline in tabpanel ([b9db99f](https://git.elliemae.io/platform-ui/dimsum/commit/b9db99ff6878f67c06cb1abe0e813a85b3ce8dfe))
35
+
36
+ ## 3.60.0-next.26 (2026-02-19)
37
+
38
+ ### Features
39
+
40
+ - ds-global-header:: search-toggle story improved a11y + improved slots support [PUI-17852](https://jira.elliemae.io/browse/PUI-17852) ([#7891](https://git.elliemae.io/platform-ui/dimsum/issues/7891)) ([bed0e22](https://git.elliemae.io/platform-ui/dimsum/commit/bed0e22851cfa990994790f064a0bf1606928645))
41
+
42
+ ## 3.60.0-next.25 (2026-02-19)
43
+
44
+ ### Bug Fixes
45
+
46
+ - ds-global-header:: fixed unit test + slots to dimsum pattern compliancy ([#7889](https://git.elliemae.io/platform-ui/dimsum/issues/7889)) ([7198f8a](https://git.elliemae.io/platform-ui/dimsum/commit/7198f8afcdaa884886c90ac1e492ff82315837cf))
47
+
48
+ ## 3.60.0-next.24 (2026-02-17)
49
+
50
+ ### Features
51
+
52
+ - ds-ribbon:: role analysis and show example using role=status [PUI-17480](https://jira.elliemae.io/browse/PUI-17480) ([#7880](https://git.elliemae.io/platform-ui/dimsum/issues/7880)) ([034a59a](https://git.elliemae.io/platform-ui/dimsum/commit/034a59a2f1449599310d9788dfce12ba8037eb95))
53
+
54
+ ## 3.60.0-next.23 (2026-02-17)
55
+
56
+ **Note:** Version bump only for package dimsum-e2e-tests
57
+
58
+ ## 3.60.0-next.22 (2026-02-16)
59
+
60
+ ### Features
61
+
62
+ - ds-ribbon:: slots usege example and theming support story [PUI-17442](https://jira.elliemae.io/browse/PUI-17442) ([#7879](https://git.elliemae.io/platform-ui/dimsum/issues/7879)) ([a951520](https://git.elliemae.io/platform-ui/dimsum/commit/a951520b52988b331cb495260326ff5750529873))
63
+
64
+ ## 3.60.0-next.21 (2026-02-16)
65
+
66
+ ### Features
67
+
68
+ - ds-chat-bubble:: implement slots in Chat Bubble [PUI-17908](https://jira.elliemae.io/browse/PUI-17908) ([#7877](https://git.elliemae.io/platform-ui/dimsum/issues/7877)) ([9558f1d](https://git.elliemae.io/platform-ui/dimsum/commit/9558f1d0465417ddfd07500728d49b4cceb12cd8))
69
+
70
+ ## 3.60.0-next.20 (2026-02-13)
71
+
72
+ ### Bug Fixes
73
+
74
+ - ds-chip:: update E2E test selectors and chip XPath queries [PUI-17896](https://jira.elliemae.io/browse/PUI-17896) ([#7875](https://git.elliemae.io/platform-ui/dimsum/issues/7875)) ([f682a0a](https://git.elliemae.io/platform-ui/dimsum/commit/f682a0a99c8b01ed886f13d1f5835f10c9e8ae44))
75
+
76
+ ## 3.60.0-next.19 (2026-02-12)
77
+
78
+ ### Features
79
+
80
+ - ds-ribbon:: typescript fixes by dimsum alignment [PUI-17478](https://jira.elliemae.io/browse/PUI-17478)([#7870](https://git.elliemae.io/platform-ui/dimsum/issues/7870)) ([6dcb730](https://git.elliemae.io/platform-ui/dimsum/commit/6dcb730e31dcb4cfab2e863db38c01de894a7af9))
81
+
82
+ ## 3.60.0-next.18 (2026-02-09)
83
+
84
+ ### Bug Fixes
85
+
86
+ - ds-left-navigation:: e2e story for detected missing slots [PUI-15560](https://jira.elliemae.io/browse/PUI-15560) ([#7864](https://git.elliemae.io/platform-ui/dimsum/issues/7864)) ([37e630b](https://git.elliemae.io/platform-ui/dimsum/commit/37e630be9e1023dee24e17a3e49da1d53d351060))
87
+
88
+ ## 3.60.0-next.17 (2026-02-06)
89
+
90
+ ### Features
91
+
92
+ - ds-global-header:: search toggle example improve [PUI-17487](https://jira.elliemae.io/browse/PUI-17487) ([#7862](https://git.elliemae.io/platform-ui/dimsum/issues/7862)) ([8d268f8](https://git.elliemae.io/platform-ui/dimsum/commit/8d268f8fa3a8e4a065b1897128a866eb2af1c050))
93
+
94
+ ## 3.60.0-next.16 (2026-02-06)
95
+
96
+ ### Features
97
+
98
+ - ds-global-header:: search toggle tests [PUI-17487](https://jira.elliemae.io/browse/PUI-17487) ([#7861](https://git.elliemae.io/platform-ui/dimsum/issues/7861)) ([039b36d](https://git.elliemae.io/platform-ui/dimsum/commit/039b36dd5bf53053cf5d7e636ba0f7dbd17bff11))
99
+
100
+ ## 3.60.0-next.15 (2026-01-29)
101
+
102
+ ### Features
103
+
104
+ - dimsum:: upgraded third party libraries [PUI-17276](https://jira.elliemae.io/browse/PUI-17276) ([#7833](https://git.elliemae.io/platform-ui/dimsum/issues/7833)) ([361aafb](https://git.elliemae.io/platform-ui/dimsum/commit/361aafb523a55187f0951f4a2b338458f8198c97))
105
+
106
+ ## 3.60.0-next.14 (2026-01-26)
107
+
108
+ ### Features
109
+
110
+ - ds-menu-button:: slots and unit tests support [PUI-17708](https://jira.elliemae.io/browse/PUI-17708) ([#7822](https://git.elliemae.io/platform-ui/dimsum/issues/7822)) ([211afa4](https://git.elliemae.io/platform-ui/dimsum/commit/211afa4b48182892a8945e08c69d693021684986))
111
+
112
+ ## 3.60.0-next.13 (2026-01-20)
113
+
114
+ ### Bug Fixes
115
+
116
+ - ds-dialog:: raise condition caused by layout effect [PUI-17804](https://jira.elliemae.io/browse/PUI-17804)([#7826](https://git.elliemae.io/platform-ui/dimsum/issues/7826)) ([c07f693](https://git.elliemae.io/platform-ui/dimsum/commit/c07f69337344e77e0b3bfb0974b171c410972a06))
117
+
118
+ ## 3.60.0-next.12 (2026-01-16)
119
+
120
+ ### Features
121
+
122
+ - dimsum:: fixed dependencies and added knip for reports [PUI-17275](https://jira.elliemae.io/browse/PUI-17275) ([#7824](https://git.elliemae.io/platform-ui/dimsum/issues/7824)) ([65b7cf4](https://git.elliemae.io/platform-ui/dimsum/commit/65b7cf4e3558d20957adc405bd91ea9370b11589))
123
+
124
+ ## 3.60.0-next.11 (2026-01-14)
125
+
126
+ ### Features
127
+
128
+ - ds-tabs:: update carousel to horizontal scroll [PUI-17483](https://jira.elliemae.io/browse/PUI-17483) ([#7821](https://git.elliemae.io/platform-ui/dimsum/issues/7821)) ([9cfe8a5](https://git.elliemae.io/platform-ui/dimsum/commit/9cfe8a56d6277fe4fc9ffcf9c9dfb97dff7adfbf))
129
+
130
+ ## 3.60.0-next.10 (2026-01-14)
131
+
132
+ ### Bug Fixes
133
+
134
+ - ds-app-picker:: support global attributes [PUI-17246](https://jira.elliemae.io/browse/PUI-17246) ([#7820](https://git.elliemae.io/platform-ui/dimsum/issues/7820)) ([1b2a2ea](https://git.elliemae.io/platform-ui/dimsum/commit/1b2a2ea55ca4ea19386e891be939c3615a244468))
135
+
136
+ ## [3.60.0-next.9](https://git.elliemae.io/platform-ui/dimsum/compare/v3.60.0-next.8...v3.60.0-next.9) (2026-01-13)
137
+
138
+ **Note:** Version bump only for package dimsum-e2e-tests
139
+
140
+ ## 3.60.0-next.8 (2026-01-13)
141
+
142
+ **Note:** Version bump only for package dimsum-e2e-tests
143
+
144
+ ## 3.60.0-next.7 (2026-01-12)
145
+
146
+ ### Bug Fixes
147
+
148
+ - ds-chip:: custom attributes and folder organization [PUI-14876] (https://jira.elliemae.io/browse/PUI-14876) ([#7819](https://git.elliemae.io/platform-ui/dimsum/issues/7819)) ([7025b86](https://git.elliemae.io/platform-ui/dimsum/commit/7025b865a1d0ca1cdc02aa07353a79eab3910356))
149
+
150
+ ## 3.60.0-next.6 (2026-01-12)
151
+
152
+ ### Bug Fixes
153
+
154
+ - ds-floating-context:: remove console error when main is not defined [PUI-17776](https://jira.elliemae.io/browse/PUI-17776) ([#7814](https://git.elliemae.io/platform-ui/dimsum/issues/7814)) ([1084971](https://git.elliemae.io/platform-ui/dimsum/commit/1084971375947009d2497e10237d015100543887))
155
+
156
+ ## 3.60.0-next.5 (2026-01-09)
157
+
158
+ ### Features
159
+
160
+ - dimsum:: update percy and pui-e2e-test-sdk dependencies [PUI-17773](https://jira.elliemae.io/browse/PUI-17773) ([#7815](https://git.elliemae.io/platform-ui/dimsum/issues/7815)) ([0aa68b6](https://git.elliemae.io/platform-ui/dimsum/commit/0aa68b6031f7e88526ce0b04581cf0134bc6d216))
161
+
162
+ ## 3.60.0-next.4 (2026-01-09)
163
+
164
+ ### Bug Fixes
165
+
166
+ - ds-chip:: custom attributes and folder organization [PUI-14876] (https://jira.elliemae.io/browse/PUI-14876) ([#7813](https://git.elliemae.io/platform-ui/dimsum/issues/7813)) ([d0b0611](https://git.elliemae.io/platform-ui/dimsum/commit/d0b06110fae419827497f7ef1b66879ba1897ffd))
167
+
6
168
  ## 3.60.0-next.3 (2026-01-08)
7
169
 
8
170
  ### Features
@@ -16,6 +16,8 @@ export default class DSAppPickerCO extends PageObject {
16
16
 
17
17
  static applyAriaDisabledURL = new Urlbuilder(`${PATH_E2E_APP_PICKER}`, 'apply-aria-disabled-test');
18
18
 
19
+ static reflowURL = new Urlbuilder(`${PATH_E2E_APP_PICKER}`, 'reflow-test');
20
+
19
21
  // Snapshots
20
22
  static snapshotPath(example = 'basic') {
21
23
  return PageObject.getSnapshotPathBuilder('AppPicker', example);
@@ -37,6 +39,14 @@ export default class DSAppPickerCO extends PageObject {
37
39
  static getChipByLabel = async (label) =>
38
40
  $(`//button[@data-testid="app-picker__chip"]/div/span[contains(text(),"${label}")]//ancestor::button`);
39
41
 
42
+ static getChipsByLabel = async (label) =>
43
+ $$(`//button[@data-testid="app-picker__chip"]/div/span[contains(text(),"${label}")]//ancestor::button`);
44
+
45
+ static getChipByLabelAndIndex = async (label, index) => {
46
+ const chips = await DSAppPickerCO.getChipsByLabel(label);
47
+ return chips[index];
48
+ };
49
+
40
50
  static async getAppPickerRoot() {
41
51
  return $('[data-testid="ds-apppicker-root"]');
42
52
  }
@@ -0,0 +1,36 @@
1
+ /* eslint-disable wdio/no-pause */
2
+ import DSAppPickerCO from '../DSAppPickerCO';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-17867 - AppPicker:: Reflow test -visual', () => {
6
+ before('loading page', async () => {
7
+ const errorOnGo = await DSAppPickerCO.reflowURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ await browser.maximizeWindow();
10
+ });
11
+
12
+ it('01: should show appPicker open', async () => {
13
+ const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
14
+ await openAppPickerBtn.click();
15
+ const snapshot = await browser.percyCheckScreenshot(DSAppPickerCO.snapshotPath('reflow-appPicker-open'));
16
+ await expect(snapshot).toEqual(0);
17
+ });
18
+
19
+ it('02: should scroll to the 2nd Pipeline chip', async () => {
20
+ const secondPipelineChip = await DSAppPickerCO.getChipByLabelAndIndex('Pipeline', 1);
21
+ await secondPipelineChip.scrollIntoView();
22
+ await browser.pause(300);
23
+ const snapshot = await browser.percyCheckScreenshot(DSAppPickerCO.snapshotPath('reflow-appPicker-scrolled'));
24
+ await expect(snapshot).toEqual(0);
25
+ });
26
+
27
+ it('03: should select the 2nd Pipeline chip', async () => {
28
+ const secondPipelineChip = await DSAppPickerCO.getChipByLabelAndIndex('Pipeline', 1);
29
+ await secondPipelineChip.click();
30
+ const snapshot = await browser.percyCheckScreenshot(
31
+ DSAppPickerCO.snapshotPath('reflow-appPicker-pipeline-selected'),
32
+ );
33
+ await expect(snapshot).toEqual(0);
34
+ });
35
+ });
36
+ }
@@ -39,5 +39,18 @@ if (
39
39
  await expect(titleSlot).toHaveAttribute('aria-label', 'im title aria');
40
40
  await expect(separatorSlot).toHaveAttribute('aria-label', 'im separator aria');
41
41
  });
42
+ it('03: should have custom data-public for each slot', async () => {
43
+ const itemSlot = await DSAppPickerCO.getItemSlotByIndex();
44
+ const rowSlot = await DSAppPickerCO.getRowSlotByIndex();
45
+ const rootSlot = await DSAppPickerCO.getRootSlotByIndex();
46
+ const titleSlot = await DSAppPickerCO.getTitleSlotByIndex();
47
+ const separatorSlot = await DSAppPickerCO.getSeparatorSlotByIndex();
48
+ await rootSlot.waitForDisplayed();
49
+ await expect(itemSlot).toHaveAttribute('data-public', 'item-custom-attribute');
50
+ await expect(rowSlot).toHaveAttribute('data-public', 'row-custom-attribute');
51
+ await expect(rootSlot).toHaveAttribute('data-public', 'root-custom-attribute');
52
+ await expect(titleSlot).toHaveAttribute('data-public', 'title-custom-attribute');
53
+ await expect(separatorSlot).toHaveAttribute('data-public', 'separator-custom-attribute');
54
+ });
42
55
  });
43
56
  }
@@ -33,7 +33,24 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
33
33
  });
34
34
  });
35
35
 
36
- describe('PUI-8928 - Chip, Styles -visual', () => {
36
+ describe('PUI-17879 - Chip, Basic & Labels -Visual', () => {
37
+ before('loading page', async () => {
38
+ const errorOnGo = await DSChipCO.basicURL.go();
39
+ if (errorOnGo) throw errorOnGo;
40
+ });
41
+ it('01: should show basic chips by default', async () => {
42
+ await (await DSChipCO.getChipByIndex(1)).waitForDisplayed();
43
+ const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('dschips-basic-default'));
44
+ await expect(snapshot).toEqual(0);
45
+ });
46
+ it('02: truncated chip should show text on hover', async () => {
47
+ await mouseOver(await DSChipCO.getChipByIndex(3));
48
+ const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('dschips-basic-untruncated'));
49
+ await expect(snapshot).toEqual(0);
50
+ });
51
+ });
52
+
53
+ describe('PUI-17879 - Chip, Styles -visual', () => {
37
54
  before('loading page', async () => {
38
55
  const errorOnGo = await DSChipCO.shapeURL.go();
39
56
  if (errorOnGo) throw errorOnGo;
@@ -16,6 +16,8 @@ export default class DSChipCO extends PageObject {
16
16
 
17
17
  static applyAriaDisabledURL = new Urlbuilder(PATH_E2E_CHIP, 'apply-aria-disabled-test');
18
18
 
19
+ static customAttributesUsageURL = new Urlbuilder(PATH_E2E_CHIP, 'custom-attributes-usage-test');
20
+
19
21
  // Snapshots
20
22
  static snapshotPath(example = 'basic') {
21
23
  return PageObject.getSnapshotPathBuilder('Chip', example);
@@ -1,4 +1,5 @@
1
1
  import DSChipCO from '../DSChipCO';
2
+ import DSAppPickerCO from '../../ds-apppicker/DSAppPickerCO';
2
3
 
3
4
  if (
4
5
  (!browser.capabilities['ice:options'].isPhone &&
@@ -36,4 +37,28 @@ if (
36
37
  await expect(ellipsisSlot).toHaveAttribute('aria-label', 'ellipsis aria');
37
38
  });
38
39
  });
40
+ describe('PUI-17787 - Chip: Custom Attributes Usage -Func', () => {
41
+ before('loading page', async () => {
42
+ const errorOnGo = await DSChipCO.customAttributesUsageURL.go();
43
+ if (errorOnGo) throw errorOnGo;
44
+ });
45
+ it('01: should have custom aria-* for each Chip', async () => {
46
+ const triggerButton = await DSAppPickerCO.getOpenAppPicker();
47
+ await triggerButton.click();
48
+ const chip0 = await DSChipCO.getChipButtonByIndex(0);
49
+ const chip1 = await DSChipCO.getChipButtonByIndex(1);
50
+ const chip2 = await DSChipCO.getChipButtonByIndex(2);
51
+ await expect(chip0).toHaveAttribute('aria-label', 'open dashboard overview');
52
+ await expect(chip1).toHaveAttribute('aria-label', 'navigate to Pipeline app');
53
+ await expect(chip2).toHaveAttribute('aria-label', 'navigate to Calendar app');
54
+ });
55
+ it('02: should have custom lang-* for each Chip', async () => {
56
+ const chip0 = await DSChipCO.getChipButtonByIndex(0);
57
+ const chip1 = await DSChipCO.getChipButtonByIndex(1);
58
+ const chip2 = await DSChipCO.getChipButtonByIndex(2);
59
+ await expect(chip0).toHaveAttribute('lang', 'sp');
60
+ await expect(chip1).toHaveAttribute('lang', 'en');
61
+ await expect(chip2).toHaveAttribute('lang', 'en');
62
+ });
63
+ });
39
64
  }
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable max-len */
2
2
  import DSLargeInputTextCO from '../DSLargeInputTextCO';
3
- import { type } from '../../../helpers';
4
3
 
5
4
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
5
  describe('PUI-10395 - LargeInputText:: Dialog integration - Visual Test', () => {
@@ -13,7 +12,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
13
12
  await dialogTrigger.click();
14
13
  const input = await DSLargeInputTextCO.getInputByIndex(0);
15
14
  await input.click();
16
- await type(
15
+ await input.setValue(
17
16
  'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.',
18
17
  );
19
18
  const snapshot = await browser.checkSnapshot(DSLargeInputTextCO.snapshotPath('large-inputs-dialog'));
@@ -68,7 +68,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
68
68
  const inputValue = await input.getAttribute('aria-label');
69
69
  // eslint-disable-next-line max-len
70
70
  await expect(inputValue).toEqual(
71
- 'month input field, current values: November, twentie second, 3333, 4, 45, ante meridiem',
71
+ 'month input field, current values: November, twenty second, 3333, 4, 45, ante meridiem',
72
72
  );
73
73
  });
74
74
  });
@@ -4,6 +4,8 @@ import { PageObject, Urlbuilder } from '../helpers';
4
4
 
5
5
  export default class DSComboboxMultiCO extends PageObject {
6
6
  // STORIES
7
+ static basicTest = new Urlbuilder(PATH_E2E_COMBOBOX_MULTI, 'basic-test');
8
+
7
9
  static applyAriaDisabled = new Urlbuilder(PATH_E2E_COMBOBOX_MULTI, 'apply-aria-disabled-test');
8
10
 
9
11
  static readOnly = new Urlbuilder(PATH_E2E_COMBOBOX_MULTI, 'read-only-test');
@@ -0,0 +1,21 @@
1
+ import DSComboboxMultiCO from '../DSComboboxMultiCO';
2
+
3
+ if (
4
+ (!browser.capabilities['ice:options'].isPhone &&
5
+ !browser.capabilities['ice:options'].isTablet &&
6
+ browser.capabilities.browserName === 'chrome') ||
7
+ browser.capabilities.browserName === 'Chrome'
8
+ ) {
9
+ describe('PUI-17913 - ComboboxMulti:: aria-multiselectable - Func', () => {
10
+ before('loading page', async () => {
11
+ const errorOnGo = await DSComboboxMultiCO.basicTest.go();
12
+ if (errorOnGo) throw errorOnGo;
13
+ });
14
+
15
+ it('01: should have aria-multiselectable attribute set to true on the listbox', async () => {
16
+ await DSComboboxMultiCO.openMenuListMouse();
17
+ const comboListbox = await DSComboboxMultiCO.getMenuList();
18
+ await expect(comboListbox).toHaveAttribute('aria-multiselectable', 'true');
19
+ });
20
+ });
21
+ }
@@ -1,10 +1,7 @@
1
1
  /* eslint-disable max-lines */
2
2
  import DSComboboxMultiCO from '../DSComboboxMultiCO';
3
3
 
4
- if (
5
- (!browser.capabilities['ice:options'].isPhone &&
6
- !browser.capabilities['ice:options'].isTablet
7
- ) {
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
8
5
  describe('PUI-17269 - ComboboxMulti:: Slots - Controlled Menu and Sections -Visual', () => {
9
6
  before('loading page', async () => {
10
7
  const errorOnGo = await DSComboboxMultiCO.controlledMenuStateWithSectionsSlotsTest.go();
@@ -18,7 +18,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
18
18
  const dayText = await day.getAttribute('aria-label');
19
19
  await expect(dayText).toBe(
20
20
  // eslint-disable-next-line max-len
21
- 'date time picker context menu trigger, current values: December, twentie seventh, 2000, empty hours, empty minutes, empty meriediem',
21
+ 'date time picker context menu trigger, current values: December, twenty seventh, 2000, empty hours, empty minutes, empty meriediem',
22
22
  );
23
23
  });
24
24
  });
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable import/no-relative-packages */
2
- import { PATH_GLOBAL_HEADER_EXAMPLES, PATH_E2E_GLOBAL_HEADER } from '../paths';
2
+ import { PATH_E2E_GLOBAL_HEADER } from '../paths';
3
3
  import { PageObject, Urlbuilder } from '../helpers';
4
4
 
5
5
  export default class GlobalHeader extends PageObject {
@@ -17,7 +17,7 @@ export default class GlobalHeader extends PageObject {
17
17
 
18
18
  static backgroundURL = new Urlbuilder(PATH_E2E_GLOBAL_HEADER, 'background');
19
19
 
20
- static customNavigation = new Urlbuilder(PATH_GLOBAL_HEADER_EXAMPLES, 'custom-breadcrumb');
20
+ static customNavigation = new Urlbuilder(PATH_E2E_GLOBAL_HEADER, 'custom-breadcrumb-test');
21
21
 
22
22
  static sanitizeCss = new Urlbuilder(PATH_E2E_GLOBAL_HEADER, 'sanitize-css');
23
23
 
@@ -87,7 +87,7 @@ export default class GlobalHeader extends PageObject {
87
87
  // Slots
88
88
 
89
89
  static async getGHBreadcrumbChevronlotByIndex(index = 0) {
90
- return $$('[data-dimsum-slot="dsIconSvg"]')[index];
90
+ return $$('[data-dimsum-slot="dsIconRoot"]')[index];
91
91
  }
92
92
 
93
93
  static async getGHBreadcrumbContainerSlotByIndex(index = 0) {
@@ -8,79 +8,79 @@ if (
8
8
  browser.capabilities.browserName === 'Chrome'
9
9
  ) {
10
10
  describe('PUI-15665 - GlobalHeader: Slots Test -Func', () => {
11
- before(async () => {
11
+ beforeEach(async () => {
12
12
  const errorOnGo = await GlobalHeader.slotsTest.go();
13
13
  if (errorOnGo) throw errorOnGo;
14
14
  });
15
15
  it('01: should display basic GlobalHeadercwith customized slots (aria-*)', async () => {
16
- await (await GlobalHeader.getGHToolbarItem(2)).click();
17
- // const chevron = await GlobalHeader.getGHBreadcrumbChevronlotByIndex();
16
+ await (await GlobalHeader.getGHMenubarItemButtonSlotByIndex(1)).click();
17
+ const chevron = await GlobalHeader.getGHBreadcrumbChevronlotByIndex();
18
18
  const container = await GlobalHeader.getGHBreadcrumbContainerSlotByIndex();
19
- // const breadcrumbItem = await GlobalHeader.getGHBreadcrumbItemSlotByIndex();
20
- // const breadcrumbItemLink = await GlobalHeader.getGHBreadcrumbItemLinkSlotByIndex();
21
- // const breadcrumbItemLinkLabel = await GlobalHeader.getGHBreadcrumbItemLinkLabelSlotByIndex();
19
+ const breadcrumbItem = await GlobalHeader.getGHBreadcrumbItemSlotByIndex();
20
+ const breadcrumbItemLink = await GlobalHeader.getGHBreadcrumbItemLinkSlotByIndex();
21
+ const breadcrumbItemLinkLabel = await GlobalHeader.getGHBreadcrumbItemLinkLabelSlotByIndex();
22
22
  const breadcrumbList = await GlobalHeader.getGHBreadcrumbListSlotByIndex();
23
23
  const breadcrumbPipe = await GlobalHeader.getGHBreadcrumbPipeSlotByIndex();
24
24
  const root = await GlobalHeader.getGHRootSlotByIndex();
25
25
  const logoContainer = await GlobalHeader.getGHLogoContainerSlotByIndex();
26
26
  const menubarItem = await GlobalHeader.getGHMenubarItemSlotByIndex();
27
- // const menubarItemButton = await GlobalHeader.getGHMenubarItemButtonSlotByIndex();
27
+ const menubarItemButton = await GlobalHeader.getGHMenubarItemButtonSlotByIndex();
28
28
  const menubarList = await GlobalHeader.getGHMenubarListSlotByIndex();
29
- // const menubarItemPopupItem = await GlobalHeader.getGHMenubarItemPopupmenuItemSlotByIndex();
30
- // const menubarItemPopupItemButton = await GlobalHeader.getGHMenubarItemPopupmenuItemButtonSlotByIndex();
31
- // const popupList = await GlobalHeader.getGHMenubarItemPopupmenuListSlotByIndex();
32
- // const popupSeparator = await GlobalHeader.getGHMenubarItemPopupmenuSeparatorSlotByIndex();
33
- // await expect(chevron).toHaveAttribute('aria-label', 'im breadcrumb chev aria');
29
+ const menubarItemPopupItem = await GlobalHeader.getGHMenubarItemPopupmenuItemSlotByIndex();
30
+ const menubarItemPopupItemButton = await GlobalHeader.getGHMenubarItemPopupmenuItemButtonSlotByIndex();
31
+ const popupList = await GlobalHeader.getGHMenubarItemPopupmenuListSlotByIndex();
32
+ const popupSeparator = await GlobalHeader.getGHMenubarItemPopupmenuSeparatorSlotByIndex();
33
+ await expect(chevron).toHaveAttribute('aria-label', 'im breadcrumb chev aria');
34
34
  await expect(container).toHaveAttribute('aria-label', 'im breadcrumb container aria');
35
- // await expect(breadcrumbItem).toHaveAttribute('aria-label', 'im breadcrumb item aria');
36
- // await expect(breadcrumbItemLink).toHaveAttribute('aria-label', 'im breadcrumb item link aria');
37
- // await expect(breadcrumbItemLinkLabel).toHaveAttribute('aria-label', 'im breadcrumb item linklabel aria');
35
+ await expect(breadcrumbItem).toHaveAttribute('aria-label', 'im breadcrumb item aria');
36
+ await expect(breadcrumbItemLink).toHaveAttribute('aria-label', 'im breadcrumb item link aria');
37
+ await expect(breadcrumbItemLinkLabel).toHaveAttribute('aria-label', 'im breadcrumb item linklabel aria');
38
38
  await expect(breadcrumbList).toHaveAttribute('aria-label', 'im breadcrumb list aria');
39
39
  await expect(breadcrumbPipe).toHaveAttribute('aria-label', 'im breadcrumb pipe aria');
40
40
  await expect(root).toHaveAttribute('aria-label', 'im breadcrumb root aria');
41
41
  await expect(logoContainer).toHaveAttribute('aria-label', 'im logo container aria');
42
42
  await expect(menubarItem).toHaveAttribute('aria-label', 'im menubar item aria');
43
- // await expect(menubarItemButton).toHaveAttribute('aria-label', 'im menubar item button aria');
43
+ await expect(menubarItemButton).toHaveAttribute('aria-label', 'im menubar item button aria');
44
44
  await expect(menubarList).toHaveAttribute('aria-label', 'im menubar list aria');
45
- // await expect(menubarItemPopupItem).toHaveAttribute('aria-label', 'im popup menu item aria');
46
- // await expect(menubarItemPopupItemButton).toHaveAttribute('aria-label', 'im popup item button aria');
47
- // await expect(popupList).toHaveAttribute('aria-label', 'im popup menulist aria');
48
- // await expect(popupSeparator).toHaveAttribute('aria-label', 'im popup separator aria');
45
+ await expect(menubarItemPopupItem).toHaveAttribute('aria-label', 'im popup menu item aria');
46
+ await expect(menubarItemPopupItemButton).toHaveAttribute('aria-label', 'im popup item button aria');
47
+ await expect(popupList).toHaveAttribute('aria-label', 'im popup menulist aria');
48
+ await expect(popupSeparator).toHaveAttribute('aria-label', 'im popup separator aria');
49
49
  });
50
50
  it('02: should display basic GlobalHeadercwith customized slots (data-*)', async () => {
51
- await (await GlobalHeader.getGHToolbarItem(2)).click();
52
- // const chevron = await GlobalHeader.getGHBreadcrumbChevronlotByIndex();
51
+ await (await GlobalHeader.getGHMenubarItemButtonSlotByIndex(1)).click();
52
+ const chevron = await GlobalHeader.getGHBreadcrumbChevronlotByIndex();
53
53
  const container = await GlobalHeader.getGHBreadcrumbContainerSlotByIndex();
54
- // const breadcrumbItem = await GlobalHeader.getGHBreadcrumbItemSlotByIndex();
55
- // const breadcrumbItemLink = await GlobalHeader.getGHBreadcrumbItemLinkSlotByIndex();
56
- // const breadcrumbItemLinkLabel = await GlobalHeader.getGHBreadcrumbItemLinkLabelSlotByIndex();
54
+ const breadcrumbItem = await GlobalHeader.getGHBreadcrumbItemSlotByIndex();
55
+ const breadcrumbItemLink = await GlobalHeader.getGHBreadcrumbItemLinkSlotByIndex();
56
+ const breadcrumbItemLinkLabel = await GlobalHeader.getGHBreadcrumbItemLinkLabelSlotByIndex();
57
57
  const breadcrumbList = await GlobalHeader.getGHBreadcrumbListSlotByIndex();
58
58
  const breadcrumbPipe = await GlobalHeader.getGHBreadcrumbPipeSlotByIndex();
59
59
  const root = await GlobalHeader.getGHRootSlotByIndex();
60
60
  const logoContainer = await GlobalHeader.getGHLogoContainerSlotByIndex();
61
61
  const menubarItem = await GlobalHeader.getGHMenubarItemSlotByIndex();
62
- // const menubarItemButton = await GlobalHeader.getGHMenubarItemButtonSlotByIndex();
62
+ const menubarItemButton = await GlobalHeader.getGHMenubarItemButtonSlotByIndex();
63
63
  const menubarList = await GlobalHeader.getGHMenubarListSlotByIndex();
64
- // const menubarItemPopupItem = await GlobalHeader.getGHMenubarItemPopupmenuItemSlotByIndex();
65
- // const menubarItemPopupItemButton = await GlobalHeader.getGHMenubarItemPopupmenuItemButtonSlotByIndex();
66
- // const popupList = await GlobalHeader.getGHMenubarItemPopupmenuListSlotByIndex();
67
- // const popupSeparator = await GlobalHeader.getGHMenubarItemPopupmenuSeparatorSlotByIndex();
68
- // await expect(chevron).toHaveAttribute('data-testid', 'im breadcrumb chev data');
64
+ const menubarItemPopupItem = await GlobalHeader.getGHMenubarItemPopupmenuItemSlotByIndex();
65
+ const menubarItemPopupItemButton = await GlobalHeader.getGHMenubarItemPopupmenuItemButtonSlotByIndex();
66
+ const popupList = await GlobalHeader.getGHMenubarItemPopupmenuListSlotByIndex();
67
+ const popupSeparator = await GlobalHeader.getGHMenubarItemPopupmenuSeparatorSlotByIndex();
68
+ await expect(chevron).toHaveAttribute('data-testid', 'im breadcrumb chev data');
69
69
  await expect(container).toHaveAttribute('data-testid', 'im breadcrumb container data');
70
- // await expect(breadcrumbItem).toHaveAttribute('data-testid', 'im breadcrumb item data');
71
- // await expect(breadcrumbItemLink).toHaveAttribute('data-testid', 'im breadcrumb item link data');
72
- // await expect(breadcrumbItemLinkLabel).toHaveAttribute('data-testid', 'im breadcrumb item linklabel data');
70
+ await expect(breadcrumbItem).toHaveAttribute('data-testid', 'im breadcrumb item data');
71
+ await expect(breadcrumbItemLink).toHaveAttribute('data-testid', 'im breadcrumb item link data');
72
+ await expect(breadcrumbItemLinkLabel).toHaveAttribute('data-testid', 'im breadcrumb item linklabel data');
73
73
  await expect(breadcrumbList).toHaveAttribute('data-testid', 'im breadcrumb list data');
74
74
  await expect(breadcrumbPipe).toHaveAttribute('data-testid', 'im breadcrumb pipe data');
75
75
  await expect(root).toHaveAttribute('data-testid', 'im breadcrumb root data');
76
76
  await expect(logoContainer).toHaveAttribute('data-testid', 'im logo container data');
77
77
  await expect(menubarItem).toHaveAttribute('data-testid', 'im menubar item data');
78
- // await expect(menubarItemButton).toHaveAttribute('data-testid', 'im menubar item button data');
78
+ await expect(menubarItemButton).toHaveAttribute('data-testid', 'im menubar item button data');
79
79
  await expect(menubarList).toHaveAttribute('data-testid', 'im menubar list data');
80
- // await expect(menubarItemPopupItem).toHaveAttribute('data-testid', 'im popup menu item data');
81
- // await expect(menubarItemPopupItemButton).toHaveAttribute('data-testid', 'im popup item button data');
82
- // await expect(popupList).toHaveAttribute('data-testid', 'im popup menulist data');
83
- // await expect(popupSeparator).toHaveAttribute('data-testid', 'im popup separator data');
80
+ await expect(menubarItemPopupItem).toHaveAttribute('data-testid', 'im popup menu item data');
81
+ await expect(menubarItemPopupItemButton).toHaveAttribute('data-testid', 'im popup item button data');
82
+ await expect(popupList).toHaveAttribute('data-testid', 'im popup menulist data');
83
+ await expect(popupSeparator).toHaveAttribute('data-testid', 'im popup separator data');
84
84
  });
85
85
  });
86
86
  }
@@ -5,7 +5,7 @@ import LeftNavCO from './LeftNavigationCO';
5
5
  import { mouseOver } from '../helpers';
6
6
 
7
7
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
8
- describe('PUI-6120 - LeftNavigation: expand and collapse behaviour', () => {
8
+ describe.only('PUI-6120 - LeftNavigation: expand and collapse behaviour', () => {
9
9
  before('loading page', async () => {
10
10
  const errorOnGo = await LeftNavCO.fullFeatures.go();
11
11
  if (errorOnGo) throw errorOnGo;