dimsum-e2e-tests 3.57.0-next.4 → 3.57.0-next.41

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 (55) hide show
  1. package/CHANGELOG.md +206 -0
  2. package/ds-accordion/DSAccordionCO.js +1 -2
  3. package/ds-accordion/slots/DSAccordion.slots.func.spec.js +12 -0
  4. package/ds-breadcrumb/DSBreadcrumb.func.spec.js +5 -3
  5. package/ds-card-v3/DSCardV3CO.js +20 -0
  6. package/ds-card-v3/slots/DSCardV3.slots.axe-core.spec.js +22 -0
  7. package/ds-card-v3/slots/DSCardV3.slots.func.spec.js +36 -0
  8. package/ds-card-v3/slots/DSCardV3.slots.visual.spec.js +18 -0
  9. package/ds-chip/DSChipCO.js +24 -0
  10. package/ds-chip/slots/DSChip.slots.axe-core.spec.js +17 -0
  11. package/ds-chip/slots/DSChip.slots.func.spec.js +39 -0
  12. package/ds-chip/slots/DSChip.slots.visual.spec.js +17 -0
  13. package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +5 -0
  14. package/ds-controlled-form/ds-controlled-large-input-text/aria-disabled/DSLargeInputText.aria-disabled.func.spec.js +19 -0
  15. package/ds-data-table-async/DSDataTableCO.js +6 -1
  16. package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +1 -45
  17. package/ds-data-table-async/components/FilterBarCO.js +8 -0
  18. package/ds-data-table-async/components/FiltersCO.js +8 -0
  19. package/ds-data-table-async/components/HeaderCO.js +5 -0
  20. package/ds-data-table-async/empty-state/DSDataTable.empty-state.visual.spec.js +1 -1
  21. package/ds-data-table-async/filters/DSDataTable.free-text-search.keyboard.func.spec.js +70 -5
  22. package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +3 -3
  23. package/ds-data-table-async/more/DSDataTable.headers.visual.spec.js +0 -63
  24. package/ds-data-table-async/select/DSDataTable.select.func.spec.js +1 -1
  25. package/ds-data-table-async/slots/DSDataTable.slots.func.spec.js +40 -0
  26. package/ds-data-table-async/slots/DSDataTable.slots.visual.spec.js +19 -0
  27. package/ds-data-table-async/sorting/DSDataTable.sorting.visual.spec.js +118 -0
  28. package/ds-dialog/DSDialog.cases.visual.spec.js +0 -1
  29. package/ds-dialog/DSDialog.visual.spec.js +1 -1
  30. package/ds-dialog/DSDialogCO.js +5 -13
  31. package/ds-dialog/axe-core/DSDialog.error.axe-core.func.spec.js +24 -0
  32. package/ds-dialog/axe-core/DSDialog.info.axe-core.func.spec.js +24 -0
  33. package/ds-dialog/axe-core/DSDialog.scroll-body.axe-core.func.spec.js +24 -0
  34. package/ds-dialog/axe-core/DSDialog.success.axe-core.func.spec.js +24 -0
  35. package/ds-dialog/axe-core/DSDialog.warning.axe-core.spec.func.js +24 -0
  36. package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItem.axe-core.func.spec.js +1 -1
  37. package/{ds-toggle → ds-form-toggle}/DSToggle.axe-core.func.spec.js +6 -2
  38. package/{ds-toggle → ds-form-toggle}/DSToggle.func.spec.js +13 -8
  39. package/{ds-toggle → ds-form-toggle}/DSToggle.visual.spec.js +2 -2
  40. package/{ds-toggle → ds-form-toggle}/DSToggleCO.js +1 -1
  41. package/ds-menu-button/DSMenuButtonCO.js +2 -0
  42. package/ds-menu-button/basic/DSMenuButton.basic.func.spec.js +28 -0
  43. package/ds-menu-button/submenu/DSMenuButton.axe-core.subMenu.func.spec.js +1 -2
  44. package/ds-pagination/DSPagination.axe-core.func.spec.js +64 -0
  45. package/ds-pagination/DSPaginationCO.js +12 -0
  46. package/ds-read-more/DSReadMore.width-change.visual.spec.js +85 -0
  47. package/ds-shuttle-v2/basic/DSShuttleV2.keyboard.func.spec.js +0 -95
  48. package/ds-shuttle-v2/filtering/DSShuttleV2.filter.func.spec.js +8 -3
  49. package/ds-shuttle-v2/filtering/DSShuttleV2.filter.kb.func.spec.js +43 -0
  50. package/ds-shuttle-v2/items/DSShuttleV2.items.func.spec.js +1 -1
  51. package/ds-shuttle-v2/items/DSShuttleV2.items.kb.func.spec.js +1 -1
  52. package/ds-shuttle-v2/load-more/DSShuttleV2.load-more.keyboard.func.spec.js +61 -0
  53. package/package.json +193 -189
  54. package/paths.js +1 -0
  55. package/ds-dialog/DSDialog.smoke.spec.js +0 -133
package/CHANGELOG.md CHANGED
@@ -3,6 +3,212 @@
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.57.0-next.41 (2025-12-09)
7
+
8
+ ### Bug Fixes
9
+
10
+ - ds-shuttle-v2:: fixed e2e tests for ghost items [PUI-17476](https://jira.elliemae.io/browse/PUI-17476) ([#7783](https://git.elliemae.io/platform-ui/dimsum/issues/7783)) ([b3f8831](https://git.elliemae.io/platform-ui/dimsum/commit/b3f88310454694d4bd31609e32e6d5d33e3b46b3))
11
+
12
+ ## 3.57.0-next.40 (2025-12-02)
13
+
14
+ ### Bug Fixes
15
+
16
+ - ds-basic:: post refactor css import fixes ([#7780](https://git.elliemae.io/platform-ui/dimsum/issues/7780)) ([2f24485](https://git.elliemae.io/platform-ui/dimsum/commit/2f24485abcb87480dd3e82106746bc357b7e4a35))
17
+
18
+ ## 3.57.0-next.39 (2025-12-01)
19
+
20
+ ### Features
21
+
22
+ - dimsum:: preparing for legacy packages final removal by fixing some mess [PUI-17248](https://jira.elliemae.io/browse/PUI-17248) ([#7726](https://git.elliemae.io/platform-ui/dimsum/issues/7726)) ([c2520db](https://git.elliemae.io/platform-ui/dimsum/commit/c2520dbd91cbd777c77f540f4181b94d3a882798))
23
+
24
+ ## 3.57.0-next.38 (2025-11-27)
25
+
26
+ ### Bug Fixes
27
+
28
+ - ds-breadcrumb:: fix e2e test cases ([#7775](https://git.elliemae.io/platform-ui/dimsum/issues/7775)) ([426062a](https://git.elliemae.io/platform-ui/dimsum/commit/426062afa569542bd3c63814c47992e409f0a72c))
29
+
30
+ ## 3.57.0-next.37 (2025-11-27)
31
+
32
+ ### Bug Fixes
33
+
34
+ - ds-menu-button:: flaky playwright test ([#7774](https://git.elliemae.io/platform-ui/dimsum/issues/7774)) ([3d226a8](https://git.elliemae.io/platform-ui/dimsum/commit/3d226a8d2f846adb8336df766aaba1668980ca3a))
35
+
36
+ ## 3.57.0-next.36 (2025-11-26)
37
+
38
+ ### Features
39
+
40
+ - ds-shuttle-v2:: aria live component [PUI-15526](https://jira.elliemae.io/browse/PUI-15526) ([#7769](https://git.elliemae.io/platform-ui/dimsum/issues/7769)) ([fc02f10](https://git.elliemae.io/platform-ui/dimsum/commit/fc02f10e12badd934d072ee138017def6e8acd64))
41
+
42
+ ## 3.57.0-next.35 (2025-11-24)
43
+
44
+ ### Features
45
+
46
+ - ds-pagination:: AxeCore + TS + Slots + DS Compliance [PUI-16510](https://jira.elliemae.io/browse/PUI-16510)e ([#7765](https://git.elliemae.io/platform-ui/dimsum/issues/7765)) ([fdb44cf](https://git.elliemae.io/platform-ui/dimsum/commit/fdb44cff2115567ac8a0ae2123e2cbc4c8fc0c54))
47
+
48
+ ## 3.57.0-next.34 (2025-11-19)
49
+
50
+ ### Features
51
+
52
+ - ds-shuttle-v2:: dnd unit tests [PUI-15518](https://jira.elliemae.io/browse/PUI-15518) ([#7753](https://git.elliemae.io/platform-ui/dimsum/issues/7753)) ([963468a](https://git.elliemae.io/platform-ui/dimsum/commit/963468a39d9ecfaf8019ae4ea5d1faf10fda4687))
53
+
54
+ ## 3.57.0-next.33 (2025-11-18)
55
+
56
+ **Note:** Version bump only for package dimsum-e2e-tests
57
+
58
+ ## 3.57.0-next.32 (2025-11-15)
59
+
60
+ **Note:** Version bump only for package dimsum-e2e-tests
61
+
62
+ ## 3.57.0-next.31 (2025-11-13)
63
+
64
+ ### Bug Fixes
65
+
66
+ - ds-banner:: update spec URL ([feea8ec](https://git.elliemae.io/platform-ui/dimsum/commit/feea8ecc9cfe736eb9262a8709f535f68924ba76))
67
+
68
+ ## 3.57.0-next.30 (2025-11-12)
69
+
70
+ ### Features
71
+
72
+ - ds-dialog:: link spec v2 [PUI-17407](https://jira.elliemae.io/browse/PUI-17407) ([#7751](https://git.elliemae.io/platform-ui/dimsum/issues/7751)) ([8946d44](https://git.elliemae.io/platform-ui/dimsum/commit/8946d44ddaf24d0428d64a8b876bde34d583fbdf))
73
+
74
+ ## 3.57.0-next.29 (2025-11-12)
75
+
76
+ ### Features
77
+
78
+ - ds-read-more:: link spec v2 [PUI-17369](https://jira.elliemae.io/browse/PUI-17369) ([#7750](https://git.elliemae.io/platform-ui/dimsum/issues/7750)) ([ad504a9](https://git.elliemae.io/platform-ui/dimsum/commit/ad504a96343bbc9c64dfffc19c00df4af51e35d5))
79
+
80
+ ## 3.57.0-next.28 (2025-11-12)
81
+
82
+ ### Bug Fixes
83
+
84
+ - ds-menu-button:: added e2e test for next tabstop when expanded [PUI-17414](https://jira.elliemae.io/browse/PUI-17414) ([#7749](https://git.elliemae.io/platform-ui/dimsum/issues/7749)) ([26b5283](https://git.elliemae.io/platform-ui/dimsum/commit/26b5283d53f622e4eef15bad1375f517e975ee81))
85
+
86
+ ## 3.57.0-next.27 (2025-11-10)
87
+
88
+ ### Bug Fixes
89
+
90
+ - ds-card-v3:: added e2e for slots [PUI-17361](https://jira.elliemae.io/browse/PUI-17361) ([#7746](https://git.elliemae.io/platform-ui/dimsum/issues/7746)) ([f2d7e78](https://git.elliemae.io/platform-ui/dimsum/commit/f2d7e789671973d1a567e19a3e2daab38f187635))
91
+
92
+ ## 3.57.0-next.26 (2025-11-06)
93
+
94
+ ### Bug Fixes
95
+
96
+ - dimsum:: fix e2e test cases for Dialog, ShuttleV2 and DataTable [PUI-16930](https://jira.elliemae.io/browse/PUI-16930) ([#7742](https://git.elliemae.io/platform-ui/dimsum/issues/7742)) ([7c96ffb](https://git.elliemae.io/platform-ui/dimsum/commit/7c96ffb31af8c153ab907ae4a3ea64c2fb9ca58b))
97
+
98
+ ## 3.57.0-next.25 (2025-11-05)
99
+
100
+ ### Bug Fixes
101
+
102
+ - ds-data-table:: sort click when filter menu is open [PUI-15155](https://jira.elliemae.io/browse/PUI-15155) ([#7740](https://git.elliemae.io/platform-ui/dimsum/issues/7740)) ([d87b64c](https://git.elliemae.io/platform-ui/dimsum/commit/d87b64cde933453499e4d0182ea5b40c99744574))
103
+
104
+ ## 3.57.0-next.24 (2025-11-04)
105
+
106
+ ### Bug Fixes
107
+
108
+ - ds-form:: spec publication cdn [PUI-16198](https://jira.elliemae.io/browse/PUI-16198) ([#7722](https://git.elliemae.io/platform-ui/dimsum/issues/7722)) ([706e79c](https://git.elliemae.io/platform-ui/dimsum/commit/706e79ccf868f681d89ef68df0864b8773c172e1))
109
+
110
+ ## 3.57.0-next.23 (2025-11-04)
111
+
112
+ ### Bug Fixes
113
+
114
+ - ds-shuttle-v2:: fixed e2e tests afeter autofocus was removed [PUI-15526](https://jira.elliemae.io/browse/PUI-15526) ([#7732](https://git.elliemae.io/platform-ui/dimsum/issues/7732)) ([86849cb](https://git.elliemae.io/platform-ui/dimsum/commit/86849cbf6e03ce8356ee4b53763d8bd08cc86a3c))
115
+
116
+ ## 3.57.0-next.22 (2025-11-04)
117
+
118
+ ### Bug Fixes
119
+
120
+ - ds-read-more:: add visual test for 1 line use case [PUI-17309](https://jira.elliemae.io/browse/PUI-17309) ([#7730](https://git.elliemae.io/platform-ui/dimsum/issues/7730)) ([7033077](https://git.elliemae.io/platform-ui/dimsum/commit/703307710918421df948e8272a3e07f95340785a))
121
+
122
+ ## [3.57.0-next.21](https://git.elliemae.io/platform-ui/dimsum/compare/v3.57.0-next.20...v3.57.0-next.21) (2025-10-31)
123
+
124
+ **Note:** Version bump only for package dimsum-e2e-tests
125
+
126
+ ## 3.57.0-next.20 (2025-10-31)
127
+
128
+ ### Bug Fixes
129
+
130
+ - ds-form-combobox:: tabindex -1 for menue items restored ([#7733](https://git.elliemae.io/platform-ui/dimsum/issues/7733)) ([4509365](https://git.elliemae.io/platform-ui/dimsum/commit/4509365665582440236798bc57504ff7128d13e0))
131
+
132
+ ## [3.57.0-next.19](https://git.elliemae.io/platform-ui/dimsum/compare/v3.57.0-next.18...v3.57.0-next.19) (2025-10-31)
133
+
134
+ **Note:** Version bump only for package dimsum-e2e-tests
135
+
136
+ ## [3.57.0-next.18](https://git.elliemae.io/platform-ui/dimsum/compare/v3.57.0-next.17...v3.57.0-next.18) (2025-10-30)
137
+
138
+ **Note:** Version bump only for package dimsum-e2e-tests
139
+
140
+ ## 3.57.0-next.17 (2025-10-30)
141
+
142
+ **Note:** Version bump only for package dimsum-e2e-tests
143
+
144
+ ## [3.57.0-next.16](https://git.elliemae.io/platform-ui/dimsum/compare/v3.57.0-next.15...v3.57.0-next.16) (2025-10-30)
145
+
146
+ **Note:** Version bump only for package dimsum-e2e-tests
147
+
148
+ ## 3.57.0-next.15 (2025-10-29)
149
+
150
+ ### Bug Fixes
151
+
152
+ - ds-form-input-text:: restored focus tracking logic per regression [PUI-17351](https://jira.elliemae.io/browse/PUI-17351) ([#7728](https://git.elliemae.io/platform-ui/dimsum/issues/7728)) ([b08d9c8](https://git.elliemae.io/platform-ui/dimsum/commit/b08d9c8b21fa3de563c041067d3d83950d11eac4))
153
+
154
+ ## 3.57.0-next.14 (2025-10-29)
155
+
156
+ ### Bug Fixes
157
+
158
+ - ds-data-table:: fixed axe-core unit test ([#7727](https://git.elliemae.io/platform-ui/dimsum/issues/7727)) ([93a1929](https://git.elliemae.io/platform-ui/dimsum/commit/93a19293301bd564cc75b27e8c7367c554b6c123))
159
+
160
+ ## 3.57.0-next.13 (2025-10-29)
161
+
162
+ ### Bug Fixes
163
+
164
+ - ds-form-input-text:: fixed unit tests ([#7721](https://git.elliemae.io/platform-ui/dimsum/issues/7721)) ([66970ab](https://git.elliemae.io/platform-ui/dimsum/commit/66970abea2be7aba90c7231c9feb7b873b8c819a))
165
+
166
+ ## 3.57.0-next.12 (2025-10-23)
167
+
168
+ ### Bug Fixes
169
+
170
+ - ds-mobile:: mobile card update ([#7702](https://git.elliemae.io/platform-ui/dimsum/issues/7702)) ([3c718ae](https://git.elliemae.io/platform-ui/dimsum/commit/3c718ae2b97b77f9eefbd262eb093f22cc21a4fd))
171
+
172
+ ## 3.57.0-next.11 (2025-10-23)
173
+
174
+ **Note:** Version bump only for package dimsum-e2e-tests
175
+
176
+ ## 3.57.0-next.10 (2025-10-21)
177
+
178
+ ### Bug Fixes
179
+
180
+ - ds-data-table:: adding a slot for the popover wrapper [PUI-17259](https://jira.elliemae.io/browse/PUI-17259) ([#7700](https://git.elliemae.io/platform-ui/dimsum/issues/7700)) ([e841c77](https://git.elliemae.io/platform-ui/dimsum/commit/e841c776c9c1c203056bbdf7dcd8196175184007))
181
+
182
+ ## 3.57.0-next.9 (2025-10-21)
183
+
184
+ ### Features
185
+
186
+ - dimsum:: third parties from catalog + mobile removed polished [PUI-17293](https://jira.elliemae.io/browse/PUI-17293) ([#7696](https://git.elliemae.io/platform-ui/dimsum/issues/7696)) ([8b060f7](https://git.elliemae.io/platform-ui/dimsum/commit/8b060f75541a9ed33f686636f0830d7a47299367))
187
+
188
+ ## 3.57.0-next.8 (2025-10-21)
189
+
190
+ ### Bug Fixes
191
+
192
+ - ds-floating-context:: removed default role complementary [PUI-16416](https://jira.elliemae.io/browse/PUI-16416) ([#7691](https://git.elliemae.io/platform-ui/dimsum/issues/7691)) ([fa86dbc](https://git.elliemae.io/platform-ui/dimsum/commit/fa86dbc94423f829e19fc7f3c01b83fa99d067f6))
193
+
194
+ ## 3.57.0-next.7 (2025-10-20)
195
+
196
+ ### Features
197
+
198
+ - ds-shuttle-v2:: ts testing [PUI-16342](https://jira.elliemae.io/browse/PUI-16342) ([#7695](https://git.elliemae.io/platform-ui/dimsum/issues/7695)) ([2213170](https://git.elliemae.io/platform-ui/dimsum/commit/22131708777560dc3342270a036dcb7ee91dfff7))
199
+
200
+ ## 3.57.0-next.6 (2025-10-16)
201
+
202
+ ### Features
203
+
204
+ - ds-shuttle-v2:: dimsum compliace constant relocation [PUI-16342](https://jira.elliemae.io/browse/PUI-16342) ([#7694](https://git.elliemae.io/platform-ui/dimsum/issues/7694)) ([a2ae67f](https://git.elliemae.io/platform-ui/dimsum/commit/a2ae67fc72eece35752ff2cc83d0e65d1e127c06))
205
+
206
+ ## 3.57.0-next.5 (2025-10-15)
207
+
208
+ ### Bug Fixes
209
+
210
+ - ds-accordion:: add functional tests for lang attribute customization [PUI-14885](https://jira.elliemae.io/browse/PUI-14885) ([#7692](https://git.elliemae.io/platform-ui/dimsum/issues/7692)) ([777e42e](https://git.elliemae.io/platform-ui/dimsum/commit/777e42ee9bdefb3e2b91eaa1fb51633dd8853d3b))
211
+
6
212
  ## 3.57.0-next.4 (2025-10-13)
7
213
 
8
214
  ### Features
@@ -139,8 +139,7 @@ export default class DSAccordionCO extends PageObject {
139
139
  return $$('[data-dimsum-slot="dsAccordionItemContentContainer"]')[index];
140
140
  }
141
141
 
142
- static async getAccordionItemHeaderSecodnaryTitleSlotByIndex(index = 0) {
143
- // not used on example
142
+ static async getAccordionItemHeaderSecondaryTitleSlotByIndex(index = 0) {
144
143
  return $$('[data-dimsum-slot="dsAccordionItemHeaderSecondaryTitle"]')[index];
145
144
  }
146
145
 
@@ -19,6 +19,7 @@ if (
19
19
  const itemHeaderAddon = await DSAccordionCO.getAccordionItemHeaderAddonSlotByIndex();
20
20
  const itemHeaderContainer = await DSAccordionCO.getAccordionItemHeaderContainerSlotByIndex();
21
21
  const headerPrimaryTitle = await DSAccordionCO.getAccordionItemHeaderPrimaryTitleSlotByIndex();
22
+ const headerSecondaryTitle = await DSAccordionCO.getAccordionItemHeaderSecondaryTitleSlotByIndex();
22
23
  const headerTitlesContainer = await DSAccordionCO.getAccordionItemHeaderTitlesContainerSlotByIndex();
23
24
  await itemHeader.click();
24
25
  const itemContentContainer = await DSAccordionCO.getAccordionItemContentContainerSlotByIndex();
@@ -30,6 +31,7 @@ if (
30
31
  await expect(itemHeaderContainer).toHaveAttribute('aria-label', 'im itemheadercontainer aria');
31
32
  await expect(itemContentContainer).toHaveAttribute('aria-label', 'im itemcontentcontainer aria');
32
33
  await expect(headerPrimaryTitle).toHaveAttribute('aria-label', 'im itemheaderprimarytitle aria');
34
+ await expect(headerSecondaryTitle).toHaveAttribute('aria-label', 'im itemheadersecondarytitle aria');
33
35
  await expect(headerTitlesContainer).toHaveAttribute('aria-label', 'im itemheadertitlecontainer aria');
34
36
  });
35
37
  it('02: should have a custom data-testid for each slot', async () => {
@@ -39,6 +41,7 @@ if (
39
41
  const itemHeaderAddon = await DSAccordionCO.getAccordionItemHeaderAddonSlotByIndex();
40
42
  const itemHeaderContainer = await DSAccordionCO.getAccordionItemHeaderContainerSlotByIndex();
41
43
  const headerPrimaryTitle = await DSAccordionCO.getAccordionItemHeaderPrimaryTitleSlotByIndex();
44
+ const headerSecondaryTitle = await DSAccordionCO.getAccordionItemHeaderSecondaryTitleSlotByIndex();
42
45
  const headerTitlesContainer = await DSAccordionCO.getAccordionItemHeaderTitlesContainerSlotByIndex();
43
46
  const itemContentContainer = await DSAccordionCO.getAccordionItemContentContainerSlotByIndex();
44
47
  await itemContentContainer.waitForDisplayed();
@@ -49,7 +52,16 @@ if (
49
52
  await expect(itemHeaderContainer).toHaveAttribute('data-testid', 'im itemheadercontainer data');
50
53
  await expect(itemContentContainer).toHaveAttribute('data-testid', 'im itemcontentcontainer data');
51
54
  await expect(headerPrimaryTitle).toHaveAttribute('data-testid', 'im itemheaderprimarytitle data');
55
+ await expect(headerSecondaryTitle).toHaveAttribute('data-testid', 'im itemheadersecondarytitle data');
52
56
  await expect(headerTitlesContainer).toHaveAttribute('data-testid', 'im itemheadertitlecontainer data');
53
57
  });
58
+ it('03: should have a custom lang attribute for header, primary and secondary titles', async () => {
59
+ const headerPrimaryTitle = await DSAccordionCO.getAccordionItemHeaderPrimaryTitleSlotByIndex();
60
+ const headerSecondaryTitle = await DSAccordionCO.getAccordionItemHeaderSecondaryTitleSlotByIndex();
61
+ const itemHeader = await DSAccordionCO.getAccordionItemHeaderSlotByIndex();
62
+ await expect(headerPrimaryTitle).toHaveAttribute('lang', 'en-US');
63
+ await expect(headerSecondaryTitle).toHaveAttribute('lang', 'es-ES');
64
+ await expect(itemHeader).toHaveAttribute('lang', 'en-US');
65
+ });
54
66
  });
55
67
  }
@@ -62,15 +62,17 @@ if (
62
62
  const breadcrumb = await DSBreadcrumbCO.getBreadcrumbsByIndex(0);
63
63
  const currentItem = await DSBreadcrumbCO.getBreadcrumbItems(6);
64
64
  await currentItem.click();
65
- await expect(currentItem).toHaveAttribute('aria-current', 'page');
65
+ const NavItem = await DSBreadcrumbCO.getBreadcrumbNavItems(6);
66
+ await expect(NavItem).toHaveAttribute('aria-current', 'page');
66
67
  await expect(breadcrumb).toHaveAttribute('id', 'my-custom-id');
67
68
  });
68
69
  // eslint-disable-next-line max-len
69
70
  it('02: should have with-buttons breadcrumb with correct aria-current and custom container aria-label', async () => {
70
71
  const breadcrumb = await DSBreadcrumbCO.getBreadcrumbsByIndex(1);
71
- const currentItem = await DSBreadcrumbCO.getBreadcrumbItems(12);
72
+ const currentItem = await DSBreadcrumbCO.getBreadcrumbItems(6);
72
73
  await currentItem.click();
73
- await expect(currentItem).toHaveAttribute('aria-current', 'step');
74
+ const buttonItem = await DSBreadcrumbCO.getBreadcrumbButtonItems(6);
75
+ await expect(buttonItem).toHaveAttribute('aria-current', 'step');
74
76
  await expect(breadcrumb).toHaveAttribute('aria-label', 'my-custom-aria-label');
75
77
  });
76
78
  });
@@ -23,6 +23,8 @@ export default class DSCardV3CO extends PageObject {
23
23
 
24
24
  static singleSelectURL = new Urlbuilder(PATH_E2E_CARD_V3, 'single-select-test');
25
25
 
26
+ static slotsURL = new Urlbuilder(PATH_E2E_CARD_V3, 'slots-test');
27
+
26
28
  static reflowURL = new Urlbuilder(PATH_E2E_CARD_V3, 'reflow-test');
27
29
 
28
30
  static globalAttributesURL = new Urlbuilder(PATH_E2E_CARD_V3, 'global-attributes-test');
@@ -92,6 +94,24 @@ export default class DSCardV3CO extends PageObject {
92
94
  return $$('button[aria-label="drag and drop gripper"]')[index];
93
95
  }
94
96
 
97
+ // Slots
98
+
99
+ static async getRootSlotByIndex(index = 0) {
100
+ return $$('[data-dimsum-slot="dsCardv3Root"]')[index];
101
+ }
102
+
103
+ static async getBodySlotByIndex(index = 0) {
104
+ return $$('[data-dimsum-slot="dsCardv3Body"]')[index];
105
+ }
106
+
107
+ static async getHeaderSlotByIndex(index = 0) {
108
+ return $$('[data-dimsum-slot="dsCardv3Header"]')[index];
109
+ }
110
+
111
+ static async getFooterSlotByIndex(index = 0) {
112
+ return $$('[data-dimsum-slot="dsCardv3Footer"]')[index];
113
+ }
114
+
95
115
  // Snapshot
96
116
  static snapshotPath(example = 'basic') {
97
117
  return PageObject.getSnapshotPathBuilder('card-v3', example);
@@ -0,0 +1,22 @@
1
+ import { axeCoreCheck } from '../../helpers';
2
+ import DSCardV3CO from '../DSCardV3CO';
3
+
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
+ ) {
10
+ describe('PUI-17399 - CardV3: Slots - Visual Test', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.slotsURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: should display CardV3 with customized slots', async () => {
16
+ const root = await DSCardV3CO.getRootSlotByIndex();
17
+ await root.waitForDisplayed();
18
+ const result = await axeCoreCheck();
19
+ expect(result.length).toBe(0);
20
+ });
21
+ });
22
+ }
@@ -0,0 +1,36 @@
1
+ /* eslint-disable max-lines */
2
+ import DSCardV3CO from '../DSCardV3CO';
3
+
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
+ ) {
10
+ describe('PUI-17397 - CardV3: Slots - Func Test', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await DSCardV3CO.slotsURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+ it('01: each CardV3 slot to have custom aria-* attribute', async () => {
16
+ const root = await DSCardV3CO.getRootSlotByIndex();
17
+ const body = await DSCardV3CO.getBodySlotByIndex();
18
+ const header = await DSCardV3CO.getHeaderSlotByIndex();
19
+ const footer = await DSCardV3CO.getFooterSlotByIndex();
20
+ await expect(root).toHaveAttribute('aria-label', 'root aria');
21
+ await expect(body).toHaveAttribute('aria-label', 'body aria');
22
+ await expect(header).toHaveAttribute('aria-label', 'header aria');
23
+ await expect(footer).toHaveAttribute('aria-label', 'footer aria');
24
+ });
25
+ it('02: each CardV3 slot to have custom data-* attribute', async () => {
26
+ const root = await DSCardV3CO.getRootSlotByIndex();
27
+ const body = await DSCardV3CO.getBodySlotByIndex();
28
+ const header = await DSCardV3CO.getHeaderSlotByIndex();
29
+ const footer = await DSCardV3CO.getFooterSlotByIndex();
30
+ await expect(root).toHaveAttribute('data-testid', 'root data');
31
+ await expect(body).toHaveAttribute('data-testid', 'body data');
32
+ await expect(header).toHaveAttribute('data-testid', 'header data');
33
+ await expect(footer).toHaveAttribute('data-testid', 'footer data');
34
+ });
35
+ });
36
+ }
@@ -0,0 +1,18 @@
1
+ /* eslint-disable max-lines */
2
+ import DSCardV3CO from '../DSCardV3CO';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-17398 - CardV3: Slots - Visual Test', () => {
6
+ before('loading page', async () => {
7
+ const errorOnGo = await DSCardV3CO.slotsURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+ it('01: should display CardV3 with customized slots', async () => {
11
+ await browser.eyesOpen();
12
+ const root = await DSCardV3CO.getRootSlotByIndex();
13
+ await root.waitForDisplayed();
14
+ const snapshot = await browser.eyesCheckSnapshot(DSCardV3CO.snapshotPath('card-v3-slots'));
15
+ await expect(snapshot).toEqual(0);
16
+ });
17
+ });
18
+ }
@@ -8,6 +8,8 @@ export default class DSChipCO extends PageObject {
8
8
 
9
9
  static popperURL = new Urlbuilder(PATH_E2E_CHIP, 'inside-popper-test');
10
10
 
11
+ static slotsURL = new Urlbuilder(PATH_E2E_CHIP, 'slots-test');
12
+
11
13
  static mobileURL = new Urlbuilder(PATH_E2E_CHIP, 'mobile-test');
12
14
 
13
15
  static shapeURL = new Urlbuilder(PATH_E2E_CHIP, 'shape-test');
@@ -45,4 +47,26 @@ export default class DSChipCO extends PageObject {
45
47
  static async getMobileContextMenu() {
46
48
  return $('[data-testid="ds-mobile-context-menu"]');
47
49
  }
50
+
51
+ // Slots
52
+
53
+ static async getButtonSlotByIndex(index = 0) {
54
+ return $$('[data-dimsum-slot="dsChipButton"]')[index];
55
+ }
56
+
57
+ static async getEllipsisSlotByIndex(index = 0) {
58
+ return $$('[data-dimsum-slot="dsChipEllipsis"]')[index];
59
+ }
60
+
61
+ static async getLabelSlotByIndex(index = 0) {
62
+ return $$('[data-dimsum-slot="dsChipLabel"]')[index];
63
+ }
64
+
65
+ static async getRoundShapeSlotByIndex(index = 0) {
66
+ return $$('[data-dimsum-slot="dsChipRoundShape"]')[index];
67
+ }
68
+
69
+ static async getRootSlotByIndex(index = 0) {
70
+ return $$('[data-dimsum-slot="dsChipRoot"]')[index];
71
+ }
48
72
  }
@@ -0,0 +1,17 @@
1
+ import DSChipCO from '../DSChipCO';
2
+ import { axeCoreCheck } from '../../helpers';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-17380 - Chip: Slots Test -AxeCore', () => {
6
+ before('loading page', async () => {
7
+ const errorOnGo = await DSChipCO.slotsURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+ it('01: should have customized slots chips and pass axe-core scan', async () => {
11
+ const popperTrigger = await DSChipCO.getRootSlotByIndex();
12
+ await popperTrigger.waitForDisplayed();
13
+ const result = await axeCoreCheck();
14
+ expect(result.length).toBe(0);
15
+ });
16
+ });
17
+ }
@@ -0,0 +1,39 @@
1
+ import DSChipCO from '../DSChipCO';
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-17378 - Chip: Slots Test -Func', () => {
10
+ before('loading page', async () => {
11
+ const errorOnGo = await DSChipCO.slotsURL.go();
12
+ if (errorOnGo) throw errorOnGo;
13
+ });
14
+ it('01: should have custom data-* for each slot', async () => {
15
+ const buttonSlot = await DSChipCO.getButtonSlotByIndex(0);
16
+ const labelSlot = await DSChipCO.getLabelSlotByIndex(0);
17
+ const roundShapeSlot = await DSChipCO.getRoundShapeSlotByIndex(0);
18
+ const rootSlot = await DSChipCO.getRootSlotByIndex(0);
19
+ const ellipsisSlot = await DSChipCO.getEllipsisSlotByIndex(0);
20
+ await expect(buttonSlot).toHaveAttribute('data-testid', 'button data');
21
+ await expect(labelSlot).toHaveAttribute('data-testid', 'label data');
22
+ await expect(roundShapeSlot).toHaveAttribute('data-testid', 'roundshape data');
23
+ await expect(rootSlot).toHaveAttribute('data-testid', 'root data');
24
+ await expect(ellipsisSlot).toHaveAttribute('data-testid', 'ellipsis data');
25
+ });
26
+ it('02: should have custom aria-* for each slot', async () => {
27
+ const buttonSlot = await DSChipCO.getButtonSlotByIndex(0);
28
+ const labelSlot = await DSChipCO.getLabelSlotByIndex(0);
29
+ const roundShapeSlot = await DSChipCO.getRoundShapeSlotByIndex(0);
30
+ const rootSlot = await DSChipCO.getRootSlotByIndex(0);
31
+ const ellipsisSlot = await DSChipCO.getEllipsisSlotByIndex(0);
32
+ await expect(buttonSlot).toHaveAttribute('aria-label', 'button aria');
33
+ await expect(labelSlot).toHaveAttribute('aria-label', 'label aria');
34
+ await expect(roundShapeSlot).toHaveAttribute('aria-label', 'roundshape aria');
35
+ await expect(rootSlot).toHaveAttribute('aria-label', 'root aria');
36
+ await expect(ellipsisSlot).toHaveAttribute('aria-label', 'ellipsis aria');
37
+ });
38
+ });
39
+ }
@@ -0,0 +1,17 @@
1
+ import DSChipCO from '../DSChipCO';
2
+
3
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
4
+ describe('PUI-17379 - Chip: Slots Test -Visual', () => {
5
+ before('loading page', async () => {
6
+ const errorOnGo = await DSChipCO.slotsURL.go();
7
+ if (errorOnGo) throw errorOnGo;
8
+ });
9
+ it('01: should display chips with custom colors for each slot', async () => {
10
+ await browser.eyesOpen();
11
+ const popperTrigger = await DSChipCO.getRootSlotByIndex();
12
+ await popperTrigger.waitForDisplayed();
13
+ const snapshot = await browser.eyesCheckSnapshot(DSChipCO.snapshotPath('chips-slots'));
14
+ await expect(snapshot).toEqual(0);
15
+ });
16
+ });
17
+ }
@@ -23,6 +23,11 @@ export default class DSLargeInputTextCO extends PageObject {
23
23
 
24
24
  static applyAriaDisabled = new Urlbuilder(PATH_E2E_CONTROLLEDLARGEINPUT, 'apply-aria-disabled-test');
25
25
 
26
+ static applyAriaDisabledUndefined = new Urlbuilder(
27
+ PATH_E2E_CONTROLLEDLARGEINPUT,
28
+ 'pui-17313-value-undefined-apply-aria-disabled',
29
+ );
30
+
26
31
  static async getInputs() {
27
32
  return $$('[data-testid="ds-controlledlargetextinput-input"]');
28
33
  }
@@ -0,0 +1,19 @@
1
+ import { Key } from 'webdriverio';
2
+ import DSLargeInputTextCO from '../DSLargeInputTextCO';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-17391 - LargeInputText:: Aria-Disabled value Undefined', () => {
6
+ before('loading page', async () => {
7
+ const errorOnGo = await DSLargeInputTextCO.applyAriaDisabledUndefined.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+ it('01: should not be able to change the value when aria-disabled is true and value is undefined', async () => {
11
+ const input = await DSLargeInputTextCO.getInputByIndex(0);
12
+ await input.waitForDisplayed();
13
+ await browser.keys(Key.Tab);
14
+ await browser.keys('Test Value');
15
+ await expect(input).toBeFocused();
16
+ await expect(input).toHaveValue('');
17
+ });
18
+ });
19
+ }
@@ -14,6 +14,7 @@ import {
14
14
  PATH_E2E_DATATABLE_STATES,
15
15
  PATH_E2E_DATATABLE_CELL,
16
16
  PATH_E2E_DATATABLE_USE_CASES,
17
+ PATH_E2E_DATATABLE_SLOTS,
17
18
  } from '../paths';
18
19
  import { PageObject, Urlbuilder } from '../helpers';
19
20
  import { CellCO } from './components';
@@ -206,6 +207,10 @@ export default class DataTableCO extends PageObject {
206
207
 
207
208
  static integratedExampleWithFilters = new Urlbuilder(PATH_E2E_DATATABLE_USE_CASES, 'integrated-example-with-filters');
208
209
 
210
+ // Slots
211
+
212
+ static slotsFilters = new Urlbuilder(PATH_E2E_DATATABLE_SLOTS, 'slots-filters');
213
+
209
214
  // E2E FOLDER -- TO BE MOVED TO ITS OWN FOLDER
210
215
 
211
216
  static basic = new Urlbuilder(PATH_E2E_DATATABLE, 'basic');
@@ -218,7 +223,7 @@ export default class DataTableCO extends PageObject {
218
223
 
219
224
  static controlledWidthTest = new Urlbuilder(PATH_E2E_DATATABLE, 'controlled-width-test');
220
225
 
221
- static customWithDate = new Urlbuilder(PATH_E2E_DATATABLE, 'custom-render-w-date');
226
+ static customWithDate = new Urlbuilder(PATH_E2E_DATATABLE, 'custom-render-w-date-test');
222
227
 
223
228
  static withCombobox = new Urlbuilder(PATH_E2E_DATATABLE, 'with-combobox');
224
229
 
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable prettier/prettier */
4
4
  import { Key } from 'webdriverio';
5
5
  import DSDataTableCO from '../DSDataTableCO';
6
- import { RowCO, HeaderCO } from '../components';
6
+ import { RowCO } from '../components';
7
7
  import { asyncMouseOver } from '../../helpers';
8
8
 
9
9
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
@@ -64,50 +64,6 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
64
64
  await expect(snapshot).toEqual(0);
65
65
  });
66
66
  });
67
- describe('PUI-6983 - DataTable, Column header when sorting -visual', async () => {
68
- before('loading page', async () => {
69
- const errorOnGo = await DSDataTableCO.sortByColumn.go();
70
- if (errorOnGo) throw errorOnGo;
71
- await DSDataTableCO.waitForDataTable();
72
- });
73
- it('01: should hover on position header and show the unsorted icon for the column', async () => {
74
- const positionHeader = await HeaderCO.getHeaderCellByIndex(2);
75
- await asyncMouseOver(positionHeader);
76
- const snapshot = await browser.checkSnapshot(DSDataTableCO.snapshotPath('datatable-column-header-unsorted'));
77
- await expect(snapshot).toEqual(0);
78
- });
79
- it('02: should click on position header and sort the rows descending by this column changing the headers icon', async () => {
80
- await browser.keys(Key.Tab);
81
- await browser.keys(Key.Tab);
82
- await browser.keys(Key.Tab);
83
- await browser.keys(Key.ArrowDown);
84
- const snapshot = await browser.checkSnapshot(DSDataTableCO.snapshotPath('datatable-column-header-descending'));
85
- await expect(snapshot).toEqual(0);
86
- });
87
- it('03: should click on position header and sort the rows ascending by this column changing the headers icon', async () => {
88
- await browser.keys(Key.ArrowUp);
89
- const snapshot = await browser.checkSnapshot(DSDataTableCO.snapshotPath('datatable-column-header-ascending'));
90
- await expect(snapshot).toEqual(0);
91
- });
92
- });
93
- describe('PUI-7041 - DataTable, Column header truncated -visual', async () => {
94
- before('loading page', async () => {
95
- const errorOnGo = await DSDataTableCO.sortByColumn.go();
96
- if (errorOnGo) throw errorOnGo;
97
- await DSDataTableCO.waitForDataTable();
98
- });
99
- it('Should click on name header and sort the rows ascending by this column changing the headers icon', async () => {
100
- const countryHeader = await HeaderCO.getHeaderCellByIndex(1);
101
- await countryHeader.click();
102
- await asyncMouseOver(countryHeader);
103
- // eslint-disable-next-line wdio/no-pause
104
- await browser.pause(1000);
105
- const snapshot = await browser.checkSnapshot(
106
- DSDataTableCO.snapshotPath('datatable-column-header-truncated-wtooltip'),
107
- );
108
- await expect(snapshot).toEqual(0);
109
- });
110
- });
111
67
  describe('PUI-7039 - DataTable, Multi select empty -visual', async () => {
112
68
  before('loading page', async () => {
113
69
  const errorOnGo = await DSDataTableCO.multiSelectEmpty.go();
@@ -13,6 +13,14 @@ export default class FilterBarCO extends PageObject {
13
13
  return $('[data-testid="popper-container"]');
14
14
  }
15
15
 
16
+ static getFilterBarMenuWrapper() {
17
+ return $('[data-testid="ds-flyoutmenu-root"]');
18
+ }
19
+
20
+ static getFilterBarMenuListBox() {
21
+ return $('[data-testid="ds-flyoutmenu-list-wrapper"]');
22
+ }
23
+
16
24
  static getClearFilters() {
17
25
  return $('//li[@role="menuitem"]//span[contains(text(), "Clear Filters")]/ancestor::li');
18
26
  }