dimsum-e2e-tests 3.53.0-alpha.1 → 3.53.0-alpha.3

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 (183) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/ds-accordion/DSAccordionCO.js +15 -11
  3. package/ds-accordion/role/DSAccordion.role-heading.func.spec.js +21 -0
  4. package/ds-accordion/scrollable-content/DSAccordion.scrollable-content.visual.spec.js +42 -0
  5. package/ds-accordion/slots/DSAccordion.slots.func.spec.js +12 -0
  6. package/ds-accordion/wrapLabel/DSAccordion.wrap-label.visual.spec.js +20 -0
  7. package/ds-autocomplete/DSAutocompleteCO.js +18 -0
  8. package/ds-autocomplete/slots/DSAutocomplete.slots.axe-core.func.spec.js +20 -0
  9. package/ds-autocomplete/slots/DSAutocomplete.slots.func.spec.js +45 -0
  10. package/ds-autocomplete/slots/DSAutocomplete.slots.visual.spec.js +21 -0
  11. package/ds-banner/DSBanner.func.spec.js +4 -60
  12. package/ds-banner/DSBanner.text-resize.visual.spec.js +15 -0
  13. package/ds-banner/DSBanner.text-wrapping.visual.spec.js +31 -0
  14. package/ds-banner/DSBanner.visual.spec.js +0 -29
  15. package/ds-banner/DSBannerCO.js +24 -2
  16. package/ds-banner/aria-and-role/DSBanner.aria-and-role.func.spec.js +63 -0
  17. package/ds-banner/slots/DSBanner.slots.func.spec.js +65 -0
  18. package/ds-banner/slots/DSBanner.slots.visual.spec.js +17 -0
  19. package/ds-breadcrumb/DSBreadcrumb.func.spec.js +5 -3
  20. package/ds-button-v3/DSButtonV3.type-submit.func.spec.js +28 -0
  21. package/ds-button-v3/DSButtonV3.visual.spec.js +7 -2
  22. package/ds-button-v3/DSButtonV3CO.js +2 -0
  23. package/ds-card-navigation/CardNavigationCO.js +56 -0
  24. package/ds-card-navigation/DSCardNavigation.func.spec.js +50 -1
  25. package/ds-card-navigation/DSCardNavigation.slots.func.spec.js +127 -0
  26. package/ds-card-navigation/DSCardNavigation.slots.visual.spec.js +26 -0
  27. package/ds-card-navigation/DSCardNavigation.visual.spec.js +16 -0
  28. package/ds-card-v3/DSCardV3CO.js +20 -0
  29. package/ds-card-v3/drag-n-drop/DSCardV3.DnD.visual.spec.js +1 -1
  30. package/ds-card-v3/slots/DSCardV3.slots.axe-core.spec.js +22 -0
  31. package/ds-card-v3/slots/DSCardV3.slots.func.spec.js +36 -0
  32. package/ds-card-v3/slots/DSCardV3.slots.visual.spec.js +18 -0
  33. package/ds-chat/DSChat.func.spec.js +3 -2
  34. package/ds-chat/DSChat.visual.spec.js +3 -2
  35. package/ds-chat/DSChatCO.js +0 -8
  36. package/ds-chat/floatingbutton/DSChat-floating-button.visual.spec.js +1 -1
  37. package/ds-chip/DSChipCO.js +24 -0
  38. package/ds-chip/slots/DSChip.slots.axe-core.spec.js +17 -0
  39. package/ds-chip/slots/DSChip.slots.func.spec.js +39 -0
  40. package/ds-chip/slots/DSChip.slots.visual.spec.js +17 -0
  41. package/ds-circular-indeterminate-indicator/DSCircularIndicator.visual.spec.js +2 -1
  42. package/ds-controlled-form/ds-combobox/creatable/DSCombobox.creatable.visual.spec.js +6 -4
  43. package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +5 -0
  44. package/ds-controlled-form/ds-controlled-large-input-text/aria-disabled/DSLargeInputText.aria-disabled.func.spec.js +19 -0
  45. package/ds-controlled-form/ds-controlled-radio-group/DSControlledRadioGroup.axe-core.func.spec.js +31 -0
  46. package/ds-controlled-form/react-hook-form/ReactHook.visual.spec.js +1 -0
  47. package/ds-data-table-async/DSDataTableCO.js +173 -108
  48. package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +1 -45
  49. package/ds-data-table-async/components/FilterBarCO.js +8 -0
  50. package/ds-data-table-async/components/FiltersCO.js +12 -0
  51. package/ds-data-table-async/components/HeaderCO.js +5 -0
  52. package/ds-data-table-async/components/PaginationNavCO.js +1 -1
  53. package/ds-data-table-async/date-filters/DSDataTable.date-switcher.single.func.spec.js +1 -1
  54. package/ds-data-table-async/date-filters/DSDataTable.date-switcher.visual.spec.js +18 -8
  55. package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +3 -1
  56. package/ds-data-table-async/dnd/DSDataTable.dnd_fixed-width.visual.spec.js +33 -0
  57. package/ds-data-table-async/empty-state/DSDataTable.empty-state.visual.spec.js +13 -0
  58. package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +5 -5
  59. package/ds-data-table-async/filters/DSDataTable.filters-creatable.visual.spec.js +1 -0
  60. package/ds-data-table-async/filters/DSDataTable.filters.visual.spec.js +18 -1
  61. package/ds-data-table-async/filters/DSDataTable.free-text-search.keyboard.func.spec.js +242 -0
  62. package/ds-data-table-async/filters/DSDataTable.free-text-search.visual.spec.js +54 -0
  63. package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +3 -3
  64. package/ds-data-table-async/menubutton/DSDataTable.MenuButton.keyboard.func.spec.js +56 -0
  65. package/ds-data-table-async/menubutton/DSDataTable.MenuButton.mouse.func.spec.js +55 -0
  66. package/ds-data-table-async/menubutton/DSDataTable.MenuButton.visual.spec.js +27 -0
  67. package/ds-data-table-async/more/DSDataTable.headers.visual.spec.js +0 -63
  68. package/ds-data-table-async/select/DSDataTable.select.func.spec.js +1 -1
  69. package/ds-data-table-async/slots/DSDataTable.slots.func.spec.js +40 -0
  70. package/ds-data-table-async/slots/DSDataTable.slots.visual.spec.js +19 -0
  71. package/ds-data-table-async/sorting/DSDataTable.sorting.visual.spec.js +118 -0
  72. package/ds-dataviz/DSDataViz.axis.visual.spec.js +2 -1
  73. package/ds-dataviz/DSDataViz.scroll.visual.spec.js +1 -0
  74. package/ds-dataviz/DSDataViz.ticks.visual.spec.js +2 -1
  75. package/ds-dialog/DSDialog.cases.visual.spec.js +3 -4
  76. package/ds-dialog/DSDialog.visual.spec.js +7 -14
  77. package/ds-dialog/DSDialogCO.js +5 -13
  78. package/ds-dialog/axe-core/DSDialog.error.axe-core.func.spec.js +24 -0
  79. package/ds-dialog/axe-core/DSDialog.info.axe-core.func.spec.js +24 -0
  80. package/ds-dialog/axe-core/DSDialog.scroll-body.axe-core.func.spec.js +24 -0
  81. package/ds-dialog/axe-core/DSDialog.success.axe-core.func.spec.js +24 -0
  82. package/ds-dialog/axe-core/DSDialog.warning.axe-core.spec.func.js +24 -0
  83. package/ds-dropdownmenu-v2/DSDDMenuV2.visual.spec.js +5 -5
  84. package/ds-form-combobox-multi/DSComboboxMultiCO.js +96 -1
  85. package/ds-form-combobox-multi/aria-disabled/DSComboboxMulti.aria-disabled.visual.spec.js +7 -3
  86. package/ds-form-combobox-multi/disabled/DSComboboxMulti.disabled.mouse.func.spec.js +25 -0
  87. package/ds-form-combobox-multi/menu-position/DSComboboxMulti.menu-position.visual.spec.js +42 -0
  88. package/ds-form-combobox-multi/slots/DSComboboxMulti.slots.func.spec.js +100 -0
  89. package/ds-form-combobox-multi/slots/DSComboboxMulti.slots.visual.spec.js +51 -0
  90. package/ds-form-combobox-single/DSComboboxSingleCO.js +97 -1
  91. package/ds-form-combobox-single/disabled/DSComboboxSingle.disabled.mouse.func.spec.js +25 -0
  92. package/ds-form-combobox-single/menu-position/DSComboboxSingle.menu-position.visual.spec.js +93 -0
  93. package/ds-form-combobox-single/slots/DSComboboxSingle.slots.func.spec.js +100 -0
  94. package/ds-form-combobox-single/slots/DSComboboxSingle.slots.visual.spec.js +53 -0
  95. package/ds-form-date-range-picker/aria-disabled/DateRangePicker.applyAriaDisabled.keyboard-nav.func.spec.js +31 -5
  96. package/ds-form-date-time-picker/DSControlledDateTimePickerCO.js +7 -5
  97. package/ds-form-date-time-picker/date-input/DateInput.keyboard-nav.func.spec.js +2 -2
  98. package/ds-form-date-time-picker/date-time-full/DateTimeFull.applyAriaDisabled.axe-core.func.spec.js +1 -1
  99. package/ds-form-date-time-picker/date-time-full/DateTimeFull.axe-core.func.spec.js +25 -0
  100. package/ds-form-date-time-picker/date-time-full/DateTimePicker.applyAriaDisabled.keyboard-nav.func.spec.js +6 -1
  101. package/ds-form-date-time-picker/date-time-full/DateTimePicker.func.spec.js +32 -2
  102. package/ds-form-date-time-picker/date-time-full/DateTimePicker.keyboard-nav.func.spec.js +6 -1
  103. package/ds-form-date-time-picker/date-time-full/DateTimePicker.readOnly.keyboard-nav.func.spec.js +6 -1
  104. package/ds-form-date-time-picker/date-time-input/DateTimeInput.applyAriaDisabled.keyboard-nav.func.spec.js +40 -4
  105. package/ds-form-date-time-picker/showcase/DateTimePicker.applyAriaDisabled-showcase.visual.spec.js +2 -2
  106. package/ds-form-date-time-picker/showcase/DateTimePicker.readOnly-showcase.visual.spec.js +2 -2
  107. package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItem.axe-core.func.spec.js +4 -1
  108. package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +4 -0
  109. package/ds-form-native-select/NativeSelect.axe-core.func.spec.js +57 -0
  110. package/ds-form-native-select/NativeSelectCO.js +35 -0
  111. package/{ds-toggle → ds-form-toggle}/DSToggle.axe-core.func.spec.js +6 -2
  112. package/{ds-toggle → ds-form-toggle}/DSToggle.func.spec.js +13 -8
  113. package/{ds-toggle → ds-form-toggle}/DSToggle.visual.spec.js +2 -2
  114. package/{ds-toggle → ds-form-toggle}/DSToggleCO.js +1 -1
  115. package/ds-global-header/GlobalHeader.axe-core.func.spec.js +13 -0
  116. package/ds-global-header/GlobalHeaderCO.js +2 -0
  117. package/{ds-controlled-form → ds-hooks}/useMask/Number/UseNumberMask.func.spec.js +25 -12
  118. package/{ds-controlled-form → ds-hooks}/useMask/Number/UseNumberMask.visual.spec.js +4 -1
  119. package/{ds-controlled-form → ds-hooks}/useMask/Phone/UsePhoneMask.func.spec.js +1 -1
  120. package/{ds-controlled-form → ds-hooks}/useMask/Phone/UsePhoneMask.visual.spec.js +1 -1
  121. package/{ds-controlled-form → ds-hooks}/useMask/ReackHookFormWithMask/ReactHookFormWithMask.func.spec.js +1 -1
  122. package/{ds-controlled-form → ds-hooks}/useMask/ReackHookFormWithMask/ReactHookFormWithMask.visual.spec.js +1 -1
  123. package/{ds-controlled-form → ds-hooks}/useMask/RegExp/UseRegExpMask.func.spec.js +1 -1
  124. package/{ds-controlled-form → ds-hooks}/useMask/SSN/UseSsnMask.func.spec.js +1 -1
  125. package/{ds-controlled-form → ds-hooks}/useMask/ZipCode/UseZipCodeMask.func.spec.js +1 -1
  126. package/ds-indeterminate-progress-indicator/DSIndetermintateProgressIndicator.axe-core.func.spec.js +31 -0
  127. package/ds-menu-button/DSMenuButtonCO.js +2 -0
  128. package/ds-menu-button/basic/DSMenuButton.basic.func.spec.js +28 -0
  129. package/ds-menu-button/multiselect/DSMenuButton.axe-core.multiselect.func.spec.js +6 -1
  130. package/ds-menu-button/singleSelect/DSMenuButton.axe-core.singleSelect.func.spec.js +6 -1
  131. package/ds-menu-button/submenu/DSMenuButton.axe-core.subMenu.func.spec.js +7 -2
  132. package/ds-menu-item/DSMenuItems.visual.spec.js +8 -32
  133. package/ds-mobile/MobileDatePicker/MobileDatePicker.visual.spec.js +0 -13
  134. package/ds-modal-slide/ModalSlideCO.js +2 -0
  135. package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +1 -1
  136. package/ds-pagination/DSPagination.axe-core.func.spec.js +64 -0
  137. package/ds-pagination/DSPaginationCO.js +12 -0
  138. package/ds-pills-v2/DSPills.visual.spec.js +3 -1
  139. package/ds-pills-v2/selection/DSPills.axe-core.func.spec.js +6 -1
  140. package/ds-pills-v2/selection/DSPills.func.spec.js +32 -30
  141. package/ds-progress-indicator/DSProgressIndicator.axe-core.func.spec.js +31 -0
  142. package/ds-progress-indicator/DSProgressIndicator.func.spec.js +8 -3
  143. package/ds-progress-indicator/DSProgressIndicator.visual.spec.js +12 -2
  144. package/ds-progress-indicator/DSProgressIndicatorCO.js +5 -3
  145. package/ds-query-builder/DSQueryBuilder.visual.spec.js +10 -3
  146. package/ds-read-more/DSReadMore.func.spec.js +0 -58
  147. package/ds-read-more/DSReadMore.keyboard-nav.func.spec.js +66 -0
  148. package/ds-read-more/DSReadMore.slots.func.spec.js +58 -0
  149. package/ds-read-more/DSReadMore.slots.visual.spec.js +23 -0
  150. package/ds-read-more/DSReadMore.visual.spec.js +41 -17
  151. package/ds-read-more/DSReadMore.width-change.visual.spec.js +85 -0
  152. package/ds-read-more/DSReadMore.with-tooltip.func.spec.js +63 -0
  153. package/ds-read-more/DSReadMoreCO.js +20 -0
  154. package/ds-shuttle-v2/Dnd/DSShuttleV2.DnD.visual.spec.js +3 -0
  155. package/ds-shuttle-v2/basic/DSShuttleV2.keyboard.func.spec.js +0 -79
  156. package/ds-shuttle-v2/extra/DSShuttleV2.extra.func.spec.js +6 -2
  157. package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +21 -0
  158. package/ds-shuttle-v2/filtering/DSShuttleV2.filter.func.spec.js +8 -3
  159. package/ds-shuttle-v2/filtering/DSShuttleV2.filter.kb.func.spec.js +43 -0
  160. package/ds-shuttle-v2/items/DSShuttleV2.items.func.spec.js +3 -2
  161. package/ds-shuttle-v2/items/DSShuttleV2.items.kb.func.spec.js +1 -1
  162. package/ds-shuttle-v2/load-more/DSShuttleV2.load-more.keyboard.func.spec.js +61 -0
  163. package/ds-slider-v2/DSSliderV2.extra.func.spec.js +44 -0
  164. package/ds-slider-v2/DSSliderV2.func.spec.js +98 -0
  165. package/ds-slider-v2/DSSliderV2CO.js +8 -0
  166. package/ds-svg/DSSvg.axe-core.func.spec.js +32 -0
  167. package/ds-svg/DSSvgCO.js +2 -3
  168. package/ds-tabs/DSTabs.onTabChange.func.spec.js +33 -0
  169. package/ds-tabs/DSTabsCO.js +29 -1
  170. package/ds-tabs/slots/DSTabs.slots.func.spec.js +77 -0
  171. package/ds-tabs/slots/DSTabs.slots.visual.spec.js +49 -0
  172. package/ds-tabs/with-carousel/DSTabs.with-carousel.visual.spec.js +5 -4
  173. package/ds-tooltip-v3/DSTooltipV3CO.js +6 -2
  174. package/ds-treeview/DSTreeViewCO.js +8 -0
  175. package/ds-treeview/dragAndDrop/TreeView-dnd.func.spec.js +0 -50
  176. package/ds-treeview/dragAndDrop/TreeView-dnd_mouse.func.spec.js +61 -0
  177. package/package.json +188 -187
  178. package/paths.js +17 -1
  179. package/ds-dialog/DSDialog.smoke.spec.js +0 -133
  180. package/ds-slider-v2/DSSliderV2.skipped.js +0 -46
  181. /package/ds-form-combobox-multi/iframe/{DSComboboxMulti.insideIframe.func.spec.js → DSComboboxMulti.insideIframe.visual.spec.js} +0 -0
  182. /package/{ds-controlled-form → ds-hooks}/useMask/useMaskCO.js +0 -0
  183. /package/ds-indeterminate-progress-indicator/{DSIndetermintateProgressIndicator.func.spec.js → DSIndetermintateProgressIndicator.func.spec copy.js} +0 -0
@@ -0,0 +1,65 @@
1
+ import DSBannerCO from '../DSBannerCO';
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-15113 - Banner - Slots -Func', () => {
10
+ before('loading page', async () => {
11
+ const errorOnGo = await DSBannerCO.slotsTest.go();
12
+ if (errorOnGo) throw errorOnGo;
13
+ });
14
+ it('01: should find the expected SLOTS for the component', async () => {
15
+ const bannerTitleSlot = await DSBannerCO.getTitleSlotByIndex();
16
+ const bannerSubtitleSlot = await DSBannerCO.getSubtitleSlotByIndex();
17
+ const bannerContainer = await DSBannerCO.getContainerSlotByIndex();
18
+ const bannerInnerContainer = await DSBannerCO.getInnerContainerSlotByIndex();
19
+ const bannerIconsSlots = await DSBannerCO.getIconContainerSlotByIndex();
20
+ const bannerButtonSlot = await DSBannerCO.getButtonRootSlotByIndex();
21
+ const bannerLayoutSlot = await DSBannerCO.getLayoutSlotByIndex();
22
+ const bannerActionLinkSlot = await DSBannerCO.getActionLinkSlotByIndex();
23
+ await expect(bannerTitleSlot).toBeDisplayed();
24
+ await expect(bannerSubtitleSlot).toBeDisplayed();
25
+ await expect(bannerContainer).toBeDisplayed();
26
+ await expect(bannerInnerContainer).toBeDisplayed();
27
+ await expect(bannerIconsSlots).toBeDisplayed();
28
+ await expect(bannerButtonSlot).toBeDisplayed();
29
+ await expect(bannerLayoutSlot).toBeDisplayed();
30
+ await expect(bannerActionLinkSlot).toBeDisplayed();
31
+ });
32
+ it('02: should find custom aria for each SLOT', async () => {
33
+ const bannerTitleSlot = await DSBannerCO.getTitleSlotByIndex();
34
+ const bannerSubtitleSlot = await DSBannerCO.getSubtitleSlotByIndex();
35
+ const bannerContainer = await DSBannerCO.getContainerSlotByIndex();
36
+ const bannerInnerContainer = await DSBannerCO.getInnerContainerSlotByIndex();
37
+ const bannerIconsSlots = await DSBannerCO.getIconContainerSlotByIndex();
38
+ const bannerButtonSlot = await DSBannerCO.getButtonRootSlotByIndex();
39
+ const bannerActionLinkSlot = await DSBannerCO.getActionLinkSlotByIndex();
40
+ await expect(bannerTitleSlot).toHaveAttribute('aria-label', 'im title aria');
41
+ await expect(bannerSubtitleSlot).toHaveAttribute('aria-label', 'im subtitle aria');
42
+ await expect(bannerContainer).toHaveAttribute('aria-label', 'im container aria');
43
+ await expect(bannerInnerContainer).toHaveAttribute('aria-label', 'im inner container aria');
44
+ await expect(bannerIconsSlots).toHaveAttribute('aria-label', 'im iconcontainer aria');
45
+ await expect(bannerButtonSlot).toHaveAttribute('aria-label', 'im closebutton aria');
46
+ await expect(bannerActionLinkSlot).toHaveAttribute('aria-label', 'im actionlink aria');
47
+ });
48
+ it('03: should find custom data for each SLOT', async () => {
49
+ const bannerTitleSlot = await DSBannerCO.getTitleSlotByIndex();
50
+ const bannerSubtitleSlot = await DSBannerCO.getSubtitleSlotByIndex();
51
+ const bannerContainer = await DSBannerCO.getContainerSlotByIndex();
52
+ const bannerInnerContainer = await DSBannerCO.getInnerContainerSlotByIndex();
53
+ const bannerIconsSlots = await DSBannerCO.getIconContainerSlotByIndex();
54
+ const bannerButtonSlot = await DSBannerCO.getButtonRootSlotByIndex();
55
+ const bannerActionLinkSlot = await DSBannerCO.getActionLinkSlotByIndex();
56
+ await expect(bannerTitleSlot).toHaveAttribute('data-testid', 'im title data');
57
+ await expect(bannerSubtitleSlot).toHaveAttribute('data-testid', 'im subtitle data');
58
+ await expect(bannerContainer).toHaveAttribute('data-testid', 'im container data');
59
+ await expect(bannerInnerContainer).toHaveAttribute('data-testid', 'im inner container data');
60
+ await expect(bannerIconsSlots).toHaveAttribute('data-testid', 'im iconcontainer data');
61
+ await expect(bannerButtonSlot).toHaveAttribute('data-testid', 'im closebutton data');
62
+ await expect(bannerActionLinkSlot).toHaveAttribute('data-testid', 'im actionlink data');
63
+ });
64
+ });
65
+ }
@@ -0,0 +1,17 @@
1
+ import DSBannerCO from '../DSBannerCO';
2
+
3
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
4
+ describe('PUI-15114 - DSBanner, Slots- Visual Test', () => {
5
+ before('loading page', async () => {
6
+ const errorOnGo = await DSBannerCO.slotsTest.go();
7
+ if (errorOnGo) throw errorOnGo;
8
+ });
9
+ it('should display the banners customized using slots', async () => {
10
+ await browser.eyesOpen();
11
+ const banner = await DSBannerCO.getContainerSlotByIndex();
12
+ await banner.waitForDisplayed();
13
+ const snapshot = await browser.eyesCheckSnapshot(DSBannerCO.snapshotPath('banner-slots-test'));
14
+ await expect(snapshot).toEqual(0);
15
+ });
16
+ });
17
+ }
@@ -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
  });
@@ -0,0 +1,28 @@
1
+ import DSButtonV3CO from './DSButtonV3CO';
2
+
3
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
4
+ describe('PUI-17055 - ButtonV3 - Type submit -Func', () => {
5
+ beforeEach('loading page', async () => {
6
+ const errorOnGo = await DSButtonV3CO.submitBtn.go();
7
+ if (errorOnGo) throw errorOnGo;
8
+ });
9
+ it('01: should submit on pressing Enter', async () => {
10
+ await browser.keys('Tab');
11
+ await browser.keys('Enter');
12
+ const didSubmit = await $('[data-testid="did-submit"]');
13
+ await expect(didSubmit).toHaveText('yes');
14
+ });
15
+ it('02: should submit on pressing Space', async () => {
16
+ await browser.keys('Tab');
17
+ await browser.keys('Enter');
18
+ const didSubmit = await $('[data-testid="did-submit"]');
19
+ await expect(didSubmit).toHaveText('yes');
20
+ });
21
+ it('03: should submit on click', async () => {
22
+ const button = await DSButtonV3CO.getButton();
23
+ await button.click();
24
+ const didSubmit = await $('[data-testid="did-submit"]');
25
+ await expect(didSubmit).toHaveText('yes');
26
+ });
27
+ });
28
+ }
@@ -7,17 +7,22 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
7
7
  const errorOnGo = await DSButtonV3CO.longlabelURL.go();
8
8
  if (errorOnGo) throw errorOnGo;
9
9
  });
10
+ beforeEach('maximize window', async () => {
11
+ await browser.maximizeWindow();
12
+ });
10
13
  it('should display default long-labelled buttons showcase correctly', async () => {
14
+ await browser.eyesOpen();
11
15
  const button = await DSButtonV3CO.getButtonByIndex(0);
12
16
  await button.waitForDisplayed({ timeout: 5000 });
13
- const snapshot = await browser.checkSnapshot(DSButtonV3CO.snapshotPath('ds-button-v3-longlabel-default'));
17
+ const snapshot = await browser.eyesCheckSnapshot(DSButtonV3CO.snapshotPath('ds-button-v3-longlabel-default'));
14
18
  await expect(snapshot).toEqual(0);
15
19
  });
16
20
  it('should display default long-labelled buttons showcase after resize', async () => {
21
+ await browser.eyesOpen();
17
22
  const button = await DSButtonV3CO.getButtonByIndex(0);
18
23
  await button.waitForDisplayed({ timeout: 5000 });
19
24
  await setTextSize(32);
20
- const snapshot = await browser.checkSnapshot(DSButtonV3CO.snapshotPath('ds-button-v3-longlabel-resize'));
25
+ const snapshot = await browser.eyesCheckSnapshot(DSButtonV3CO.snapshotPath('ds-button-v3-longlabel-resize'));
21
26
  await expect(snapshot).toEqual(0);
22
27
  });
23
28
  });
@@ -15,6 +15,8 @@ export default class DSButtonV3CO extends PageObject {
15
15
 
16
16
  static slotsTest = new Urlbuilder(PATH_E2E_BUTTON_V3, 'slots-test');
17
17
 
18
+ static submitBtn = new Urlbuilder(PATH_E2E_BUTTON_V3, 'pui-16729-buttons-can-submit-forms');
19
+
18
20
  // selectors
19
21
  static async getButtonByIndex(index) {
20
22
  return $$('[data-testid="ds-button"]')[index];
@@ -6,6 +6,10 @@ export default class CardNavigation extends PageObject {
6
6
 
7
7
  static basicURL = new Urlbuilder(PATH_E2E_CARD_NAVIGATION, 'basic-test');
8
8
 
9
+ static textWrapURL = new Urlbuilder(PATH_E2E_CARD_NAVIGATION, 'wrap-text-test');
10
+
11
+ static slotsTest = new Urlbuilder(PATH_E2E_CARD_NAVIGATION, 'slots-test');
12
+
9
13
  static getDescription() {
10
14
  return $('[data-testid="ds-card-navigation--description"]');
11
15
  }
@@ -14,6 +18,58 @@ export default class CardNavigation extends PageObject {
14
18
  return $$('[role="button"]')[index];
15
19
  }
16
20
 
21
+ static getInnerActions(index = 0) {
22
+ return $$('[data-testid="ds-button"]')[index];
23
+ }
24
+
25
+ static getCardNavigationActionsSlotByIndex(index = 0) {
26
+ return $$('[data-dimsum-slot="dsCardnavigationActions"]')[index];
27
+ }
28
+
29
+ static getCardNavigationActionButtonSlotByIndex(index = 0) {
30
+ return $$('[data-dimsum-parent-slot="dsCardnavigationActionButton"]')[index];
31
+ }
32
+
33
+ static getCardNavigationButtonWrapperSlotByIndex(index = 0) {
34
+ return $$('[data-dimsum-slot="dsCardnavigationButtonWrapper"]')[index];
35
+ }
36
+
37
+ static getCardNavigationCentralContentSlotByIndex(index = 0) {
38
+ return $$('[data-dimsum-slot="dsCardnavigationCentralContent"]')[index];
39
+ }
40
+
41
+ static getCardNavigationContentSlotByIndex(index = 0) {
42
+ return $$('[data-dimsum-slot="dsCardnavigationContent"]')[index];
43
+ }
44
+
45
+ static getCardNavigationDescriptionTextSlotByIndex(index = 0) {
46
+ return $$('[data-dimsum-parent-slot="dsCardnavigationDescriptionText"]')[index];
47
+ }
48
+
49
+ static getCardNavigationInteractiveElementRegionSlotByIndex(index = 0) {
50
+ return $$('[data-dimsum-slot="dsCardnavigationInteractiveElementRegion"]')[index];
51
+ }
52
+
53
+ static getCardNavigationTitleSlotByIndex(index = 0) {
54
+ return $$('[data-dimsum-slot="dsCardnavigationTitle"]')[index];
55
+ }
56
+
57
+ static getCardNavigationRootSlotByIndex(index = 0) {
58
+ return $$('[data-dimsum-slot="dsCardnavigationRoot"]')[index];
59
+ }
60
+
61
+ static getCardNavigationTitleTypographySlotByIndex(index = 0) {
62
+ return $$('[data-dimsum-parent-slot="dsCardnavigationTitleTypography"]')[index];
63
+ }
64
+
65
+ static getCardNavigationTitleWrapperSlotByIndex(index = 0) {
66
+ return $$('[data-dimsum-slot="dsCardnavigationTitleWrapper"]')[index];
67
+ }
68
+
69
+ static getCardNavigationTypeSlotByIndex(index = 0) {
70
+ return $$('[data-dimsum-slot="dsCardnavigationType"]')[index];
71
+ }
72
+
17
73
  // Snapshots
18
74
  static snapshotPath(example = 'truncated-text') {
19
75
  return PageObject.getSnapshotPathBuilder('DSCardNavigation', example, 'ds-card-navigation');
@@ -1,5 +1,8 @@
1
1
  // import { Key } from 'webdriverio';
2
+ import { Key } from 'webdriverio';
2
3
  import CardNavigationCO from './CardNavigationCO';
4
+ import DSTooltipV3CO from '../ds-tooltip-v3/DSTooltipV3CO';
5
+ import { mouseOver } from '../helpers';
3
6
 
4
7
  if (
5
8
  (!browser.capabilities['ice:options'].isPhone &&
@@ -28,5 +31,51 @@ if (
28
31
  await expect(card4type).toEqual('regulatory');
29
32
  });
30
33
  });
31
- // Add keyboard nav and tooltip keyboard after PUI-15574 and PUI-16149
34
+
35
+ describe('PUI-17230: CardNavigation: Keyboard -Func', () => {
36
+ before('loading page', async () => {
37
+ const errorOnGo = await CardNavigationCO.basicURL.go();
38
+ if (errorOnGo) throw errorOnGo;
39
+ });
40
+ it('01: should focus fourth card with KB', async () => {
41
+ const card4 = await CardNavigationCO.getCardByIndex(3);
42
+ await card4.waitForDisplayed();
43
+ await browser.keys(Key.Tab);
44
+ await browser.keys(Key.Tab);
45
+ await browser.keys(Key.Tab);
46
+ await browser.keys(Key.Tab);
47
+ await expect(card4).toBeFocused();
48
+ });
49
+ it('02: should focus inner actions for the fifth card with KB', async () => {
50
+ const secondActionCard5 = await CardNavigationCO.getInnerActions(0);
51
+ await browser.keys(Key.Tab);
52
+ await browser.keys(Key.Tab);
53
+ await expect(secondActionCard5).toBeFocused();
54
+ });
55
+ it('03: should focus sixth card with KB and display tooltip', async () => {
56
+ const card6 = await CardNavigationCO.getCardByIndex(5);
57
+ await browser.keys(Key.Tab);
58
+ const tooltip = await DSTooltipV3CO.getTooltip();
59
+ await expect(tooltip).toBeDisplayed();
60
+ await expect(card6).toBeFocused();
61
+ });
62
+ });
63
+
64
+ describe('PUI-17231: CardNavigation: Tooltip -Func', () => {
65
+ before('loading page', async () => {
66
+ const errorOnGo = await CardNavigationCO.basicURL.go();
67
+ if (errorOnGo) throw errorOnGo;
68
+ });
69
+ it('01: should have a tooltip when hovering the sixth card which is truncated', async () => {
70
+ const card6 = await CardNavigationCO.getCardByIndex(5);
71
+ await card6.waitForDisplayed();
72
+ await mouseOver(card6);
73
+ const tooltip = await DSTooltipV3CO.getTooltip();
74
+ const tooltipContent1 = await (await DSTooltipV3CO.getTooltipContentByIndex(0)).getText();
75
+ const tooltipContent2 = await (await DSTooltipV3CO.getTooltipContentByIndex(1)).getText();
76
+ await expect(tooltip).toBeDisplayed();
77
+ await expect(tooltipContent1).toEqual('Card Title with actions + long description');
78
+ await expect(tooltipContent2).toEqual('Customs actions + long description long description');
79
+ });
80
+ });
32
81
  }
@@ -0,0 +1,127 @@
1
+ /* eslint-disable max-statements */
2
+ /* eslint-disable max-len */
3
+ import CardNavigationCO from './CardNavigationCO';
4
+
5
+ if (
6
+ (!browser.capabilities['ice:options'].isPhone &&
7
+ !browser.capabilities['ice:options'].isTablet &&
8
+ browser.capabilities.browserName === 'chrome') ||
9
+ browser.capabilities.browserName === 'Chrome'
10
+ ) {
11
+ describe('PUI-17279: CardNavigation: Slots -Func', () => {
12
+ before('loading page', async () => {
13
+ const errorOnGo = await CardNavigationCO.slotsTest.go();
14
+ if (errorOnGo) throw errorOnGo;
15
+ });
16
+ it('01: should have a custom aria-* for each slot', async () => {
17
+ const cardNavActions = await (
18
+ await CardNavigationCO.getCardNavigationActionsSlotByIndex()
19
+ ).getAttribute('aria-label');
20
+ const cardNavActionButton = await (
21
+ await CardNavigationCO.getCardNavigationActionButtonSlotByIndex()
22
+ ).getAttribute('aria-label');
23
+ const cardNavButtonWrapper = await (
24
+ await CardNavigationCO.getCardNavigationButtonWrapperSlotByIndex()
25
+ ).getAttribute('aria-label');
26
+ const cardNavCentralContent = await (
27
+ await CardNavigationCO.getCardNavigationCentralContentSlotByIndex()
28
+ ).getAttribute('aria-label');
29
+ const cardNavContent = await (
30
+ await CardNavigationCO.getCardNavigationContentSlotByIndex()
31
+ ).getAttribute('aria-label');
32
+ const cardNavDescText = await (
33
+ await CardNavigationCO.getCardNavigationDescriptionTextSlotByIndex()
34
+ ).getAttribute('aria-label');
35
+ const cardNavInteractElemReg = await (
36
+ await CardNavigationCO.getCardNavigationInteractiveElementRegionSlotByIndex()
37
+ ).getAttribute('aria-label');
38
+ const cardNavTitle = await (
39
+ await CardNavigationCO.getCardNavigationTitleSlotByIndex()
40
+ ).getAttribute('aria-label');
41
+ const cardNavRoot = await (await CardNavigationCO.getCardNavigationRootSlotByIndex()).getAttribute('aria-label');
42
+ const cardNavTitleTypography = await (
43
+ await CardNavigationCO.getCardNavigationTitleTypographySlotByIndex()
44
+ ).getAttribute('aria-label');
45
+ const cardNavTitleWrapper = await (
46
+ await CardNavigationCO.getCardNavigationTitleWrapperSlotByIndex()
47
+ ).getAttribute('aria-label');
48
+ const cardNavType = await (await CardNavigationCO.getCardNavigationTypeSlotByIndex()).getAttribute('aria-label');
49
+ await expect(cardNavActions).toEqual('actions aria');
50
+ await expect(cardNavActionButton).toEqual('actionbutton aria');
51
+ await expect(cardNavButtonWrapper).toEqual('buttonwrapper aria');
52
+ await expect(cardNavCentralContent).toEqual('centralcontent aria');
53
+ await expect(cardNavContent).toEqual('content aria');
54
+ await expect(cardNavDescText).toEqual('descriptiontext aria');
55
+ await expect(cardNavInteractElemReg).toEqual('interactiveelemregion aria');
56
+ await expect(cardNavTitle).toEqual('title aria');
57
+ await expect(cardNavRoot).toEqual('root aria');
58
+ await expect(cardNavTitleTypography).toEqual('titletypography aria');
59
+ await expect(cardNavTitleWrapper).toEqual('titlewrapper aria');
60
+ await expect(cardNavType).toEqual('type aria');
61
+ });
62
+ it('02: should have a custom data-testid for each slot', async () => {
63
+ const cardNavActions = await (
64
+ await CardNavigationCO.getCardNavigationActionsSlotByIndex()
65
+ ).getAttribute('data-testid');
66
+ const cardNavActionButton = await (
67
+ await CardNavigationCO.getCardNavigationActionButtonSlotByIndex()
68
+ ).getAttribute('data-testid');
69
+ const cardNavButtonWrapper = await (
70
+ await CardNavigationCO.getCardNavigationButtonWrapperSlotByIndex()
71
+ ).getAttribute('data-testid');
72
+ const cardNavCentralContent = await (
73
+ await CardNavigationCO.getCardNavigationCentralContentSlotByIndex()
74
+ ).getAttribute('data-testid');
75
+ const cardNavContent = await (
76
+ await CardNavigationCO.getCardNavigationContentSlotByIndex()
77
+ ).getAttribute('data-testid');
78
+ const cardNavDescText = await (
79
+ await CardNavigationCO.getCardNavigationDescriptionTextSlotByIndex()
80
+ ).getAttribute('data-testid');
81
+ const cardNavInteractElemReg = await (
82
+ await CardNavigationCO.getCardNavigationInteractiveElementRegionSlotByIndex()
83
+ ).getAttribute('data-testid');
84
+ const cardNavTitle = await (
85
+ await CardNavigationCO.getCardNavigationTitleSlotByIndex()
86
+ ).getAttribute('data-testid');
87
+ const cardNavRoot = await (await CardNavigationCO.getCardNavigationRootSlotByIndex()).getAttribute('data-testid');
88
+ const cardNavTitleTypography = await (
89
+ await CardNavigationCO.getCardNavigationTitleTypographySlotByIndex()
90
+ ).getAttribute('data-testid');
91
+ const cardNavTitleWrapper = await (
92
+ await CardNavigationCO.getCardNavigationTitleWrapperSlotByIndex()
93
+ ).getAttribute('data-testid');
94
+ const cardNavType = await (await CardNavigationCO.getCardNavigationTypeSlotByIndex()).getAttribute('data-testid');
95
+ await expect(cardNavActions).toEqual('actions data');
96
+ await expect(cardNavActionButton).toEqual('actionbutton data');
97
+ await expect(cardNavButtonWrapper).toEqual('buttonwrapper data');
98
+ await expect(cardNavCentralContent).toEqual('centralcontent data');
99
+ await expect(cardNavContent).toEqual('content data');
100
+ await expect(cardNavDescText).toEqual('descriptiontext data');
101
+ await expect(cardNavInteractElemReg).toEqual('interactiveelemregion data');
102
+ await expect(cardNavTitle).toEqual('title data');
103
+ await expect(cardNavRoot).toEqual('root data');
104
+ await expect(cardNavTitleTypography).toEqual('titletypography data');
105
+ await expect(cardNavTitleWrapper).toEqual('titlewrapper data');
106
+ await expect(cardNavType).toEqual('type data');
107
+ });
108
+ it('03: should have a custom lang for each text-containing slot', async () => {
109
+ const cardNavCentralContent = await (
110
+ await CardNavigationCO.getCardNavigationCentralContentSlotByIndex()
111
+ ).getAttribute('lang');
112
+ const cardNavContent = await (await CardNavigationCO.getCardNavigationContentSlotByIndex()).getAttribute('lang');
113
+ const cardNavDescText = await (
114
+ await CardNavigationCO.getCardNavigationDescriptionTextSlotByIndex()
115
+ ).getAttribute('lang');
116
+ const cardNavTitle = await (await CardNavigationCO.getCardNavigationTitleSlotByIndex()).getAttribute('lang');
117
+ const cardNavTitleTypography = await (
118
+ await CardNavigationCO.getCardNavigationTitleTypographySlotByIndex()
119
+ ).getAttribute('lang');
120
+ await expect(cardNavCentralContent).toEqual('es');
121
+ await expect(cardNavContent).toEqual('es');
122
+ await expect(cardNavDescText).toEqual('es');
123
+ await expect(cardNavTitle).toEqual('es');
124
+ await expect(cardNavTitleTypography).toEqual('es');
125
+ });
126
+ });
127
+ }
@@ -0,0 +1,26 @@
1
+ /* eslint-disable max-statements */
2
+ /* eslint-disable prettier/prettier */
3
+ /* eslint-disable max-len */
4
+ // import { Key } from 'webdriverio';
5
+ import CardNavigationCO from './CardNavigationCO';
6
+
7
+ if (
8
+ (!browser.capabilities['ice:options'].isPhone &&
9
+ !browser.capabilities['ice:options'].isTablet &&
10
+ browser.capabilities.browserName === 'chrome') ||
11
+ browser.capabilities.browserName === 'Chrome'
12
+ ) {
13
+ describe('PUI-17283: CardNavigation: Slots -Visual', () => {
14
+ before('loading page', async () => {
15
+ const errorOnGo = await CardNavigationCO.slotsTest.go();
16
+ if (errorOnGo) throw errorOnGo;
17
+ });
18
+ it('01: should have a custom aria-* for each slot', async () => {
19
+ await browser.eyesOpen();
20
+ const cardNavRoot = await CardNavigationCO.getCardNavigationRootSlotByIndex();
21
+ await cardNavRoot.waitForDisplayed();
22
+ const snapshot = await browser.eyesCheckSnapshot(CardNavigationCO.snapshotPath('cardnav-slots-test'));
23
+ await expect(snapshot).toEqual(0);
24
+ });
25
+ });
26
+ }
@@ -1,3 +1,4 @@
1
+ import { Key } from 'webdriverio';
1
2
  import CardNavigationCO from './CardNavigationCO';
2
3
  import { mouseOver } from '../helpers';
3
4
 
@@ -36,4 +37,19 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
36
37
  await expect(snapshot).toEqual(0);
37
38
  });
38
39
  });
40
+
41
+ describe('PUI-17229: CardNavigation: Text Wrap -Func', () => {
42
+ before('loading page', async () => {
43
+ const errorOnGo = await CardNavigationCO.textWrapURL.go();
44
+ if (errorOnGo) throw errorOnGo;
45
+ });
46
+ it('01: should display card navigation with text wrap', async () => {
47
+ await browser.eyesOpen();
48
+ await browser.keys(Key.Tab);
49
+ const card = await CardNavigationCO.getCardByIndex(1);
50
+ await card.waitForDisplayed();
51
+ const snapshot = await browser.eyesCheckSnapshot(CardNavigationCO.snapshotPath('cardnav-wrap-text'));
52
+ await expect(snapshot).toEqual(0);
53
+ });
54
+ });
39
55
  }
@@ -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);
@@ -30,7 +30,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
30
30
  const snapshot = await browser.eyesCheckSnapshot(DSCardV3CO.snapshotPath('card-v3-dnd-drop-last-position'));
31
31
  await expect(snapshot).toEqual(0);
32
32
  });
33
-
33
+ // https://jira.elliemae.io/browse/PUI-15649
34
34
  it('04: should move an item to the the first position', async () => {
35
35
  await browser.eyesOpen();
36
36
  await tabStops(12);
@@ -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
+ }
@@ -2,6 +2,7 @@
2
2
  import { Key } from 'webdriverio';
3
3
  import { ChatCO, ComposerCO, HeaderCO, StoryBtnsCO, BubbleCO, TileCO } from './components';
4
4
  import { type } from '../helpers';
5
+ import DSBannerCO from '../ds-banner/DSBannerCO';
5
6
 
6
7
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
7
8
  describe('PUI-9250 - Chat, Keyboard Navigation', () => {
@@ -85,7 +86,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
85
86
  await triggerChat.click();
86
87
  const openBannerTop = await ChatCO.getToggleBtnByIndex(0);
87
88
  await openBannerTop.click();
88
- const topBanner = await ChatCO.getBanner();
89
+ const topBanner = await DSBannerCO.getBannerContainer();
89
90
  const bannerType = await topBanner.getAttribute('data-type');
90
91
  await expect(bannerType).toEqual('danger');
91
92
  await expect(topBanner).toBeFocused();
@@ -93,7 +94,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
93
94
  it('should focus the bottom banner', async () => {
94
95
  const openBannerTop = await ChatCO.getToggleBtnByIndex(1);
95
96
  await openBannerTop.click();
96
- const bottomBanner = await ChatCO.getBanner();
97
+ const bottomBanner = await DSBannerCO.getBannerContainer();
97
98
  const bannerType = await bottomBanner.getAttribute('data-type');
98
99
  await expect(bannerType).toEqual('warning');
99
100
  await expect(bottomBanner).toBeFocused();