dimsum-e2e-tests 3.70.0-next.13 → 3.70.0-next.15

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 (29) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/ds-chat/DSChat.axe-core.func.spec.js +2 -2
  3. package/ds-chat/DSChat.visual.spec.js +3 -3
  4. package/ds-chat/DSChatCO.js +0 -6
  5. package/ds-chat/bubbles/slots/DSChatBubble.slots.axe-core.func.spec.js +24 -0
  6. package/ds-chat/bubbles/slots/DSChatBubble.slots.func.spec.js +49 -0
  7. package/ds-chat/bubbles/slots/DSChatBubble.slots.visual.spec.js +25 -0
  8. package/ds-chat/card/slots/DSChatCard.slots.axe-core.func.spec.js +24 -0
  9. package/ds-chat/card/slots/DSChatCard.slots.func.spec.js +47 -0
  10. package/ds-chat/card/slots/DSChatCard.slots.visual.spec.js +18 -0
  11. package/ds-chat/card/truncated-text/DSChatCard.truncated-text.func.spec.js +32 -0
  12. package/ds-chat/card/truncated-text/DSChatCard.truncated-text.visual.spec.js +26 -0
  13. package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.axe-core.func.spec.js +23 -0
  14. package/ds-chat/card/with-notification-badges/DSChatCard.with-notification-badges.visual.spec.js +17 -0
  15. package/ds-chat/components/BubbleCO.js +46 -3
  16. package/ds-chat/components/CardCO.js +77 -0
  17. package/ds-chat/components/TileCO.js +82 -0
  18. package/ds-chat/components/index.js +3 -2
  19. package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.axe-core.func.spec.js +2 -2
  20. package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.func.spec.js +1 -1
  21. package/{ds-chat-tile → ds-chat/tile}/DSChat-tile.visual.spec.js +2 -2
  22. package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.axe-core.func.spec.js +2 -2
  23. package/{ds-chat-tile → ds-chat/tile}/aria-disabled/DSChat-tile.aria-disabled.visual.spec.js +1 -1
  24. package/ds-chat/tile/slots/DSChatTile.slots.func.spec.js +53 -0
  25. package/ds-chat/tile/slots/DSChatTile.slots.visual.spec.js +18 -0
  26. package/ds-page-layout/PageLayoutCO.js +4 -4
  27. package/package.json +149 -149
  28. package/paths.js +5 -1
  29. package/ds-chat-tile/TileCO.js +0 -35
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
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.70.0-next.15 (2026-05-22)
7
+
8
+ ### Features
9
+
10
+ - dimsum:: created open-spec dimsum wrapper for monorepo operation [PUI-18489](https://jira.elliemae.io/browse/PUI-18489) ([#8045](https://git.elliemae.io/platform-ui/dimsum/issues/8045)) ([0c8e422](https://git.elliemae.io/platform-ui/dimsum/commit/0c8e422cb87de489439faa38eab4129a6ebf8299))
11
+
12
+ ## 3.70.0-next.14 (2026-05-21)
13
+
14
+ ### Features
15
+
16
+ - ds-chat:: add visual and functional tests for slot support [PUI-17908](https://jira.elliemae.io/browse/PUI-17908) ([#8042](https://git.elliemae.io/platform-ui/dimsum/issues/8042)) ([e1fe993](https://git.elliemae.io/platform-ui/dimsum/commit/e1fe993dca1b73f003daa87558fd75097d2bb79a))
17
+
6
18
  ## 3.70.0-next.13 (2026-05-19)
7
19
 
8
20
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable no-plusplus */
2
2
  /* eslint-disable max-lines */
3
- import { ChatCO, BubbleCO, TileCO } from './components';
3
+ import { ChatCO, CardCO, BubbleCO, TileCO } from './components';
4
4
  import { axeCoreCheck } from '../helpers';
5
5
 
6
6
  if (
@@ -41,7 +41,7 @@ if (
41
41
 
42
42
  describe('PUI-12504 - Chat, Chat Card -AxeCore', () => {
43
43
  before('loading page', async () => {
44
- const errorOnGo = await ChatCO.chatCardURL.go();
44
+ const errorOnGo = await CardCO.cardBasicURL.go();
45
45
  if (errorOnGo) throw errorOnGo;
46
46
  });
47
47
  it('01: should have a chat card and pass axe-core scan', async () => {
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable no-plusplus */
2
2
  /* eslint-disable max-lines */
3
3
  import { Key } from 'webdriverio';
4
- import { ChatCO, BubbleCO, FloatingButtonCO, ComposerCO, TileCO } from './components';
4
+ import { ChatCO, CardCO, BubbleCO, FloatingButtonCO, ComposerCO, TileCO } from './components';
5
5
  import { type } from '../helpers';
6
6
  import DSBannerCO from '../ds-banner/DSBannerCO';
7
7
 
@@ -76,7 +76,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
76
76
 
77
77
  describe('PUI-6712 - Chat, Chat Card, Visual Tests', () => {
78
78
  before('loading page', async () => {
79
- const errorOnGo = await ChatCO.chatCardURL.go();
79
+ const errorOnGo = await CardCO.cardBasicURL.go();
80
80
  if (errorOnGo) throw errorOnGo;
81
81
  });
82
82
  it('should display the chat card properly', async () => {
@@ -268,7 +268,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
268
268
  });
269
269
  });
270
270
 
271
- describe('PUI-9333 - Chat, Scroll on send and not on enter, Func. Tests', () => {
271
+ describe('PUI-9333 - Chat, Scroll on send and not on enter - Visual Tests', () => {
272
272
  before('loading page', async () => {
273
273
  const errorOnGo = await ChatCO.sidePanelIntegrationURL.go();
274
274
  if (errorOnGo) throw errorOnGo;
@@ -25,8 +25,6 @@ export default class DSChatCO extends PageObject {
25
25
 
26
26
  static sidePanelIntegrationURL = new Urlbuilder(PATH_E2E_CHAT, 'side-panel-integration-test');
27
27
 
28
- static chatCardURL = new Urlbuilder(PATH_CHAT_PARTS, 'chat-card');
29
-
30
28
  static tooltipPosition = new Urlbuilder(PATH_CHAT_EXAMPLES, 'tooltip-position');
31
29
 
32
30
  static focuseableBanners = new Urlbuilder(PATH_CHAT_EXAMPLES, 'focus-on-banner');
@@ -72,10 +70,6 @@ export default class DSChatCO extends PageObject {
72
70
  return $('[data-testid="chat-thread-container"]');
73
71
  }
74
72
 
75
- static async getCards() {
76
- return $$('[data-testid="chat-card-wrapper"]');
77
- }
78
-
79
73
  static async getSidebarFooterButton() {
80
74
  return $('[data-testid="sidebar-button-sidebar_footer"]');
81
75
  }
@@ -0,0 +1,24 @@
1
+ // Tests for PUI-17908 (ds-chat-bubble slots implementation)
2
+ import { BubbleCO } from '../../components';
3
+ import { axeCoreCheck } from '../../../helpers';
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-18460 - DSChatBubble:: axe-core - Axe-Core', () => {
12
+ before(async () => {
13
+ const errorOnGo = await BubbleCO.bubbleSlotsURL.go();
14
+ if (errorOnGo) throw errorOnGo;
15
+ });
16
+
17
+ it('01: should pass axe-core on sender and recipient bubble variants', async () => {
18
+ const senderWrapper = await BubbleCO.getWrapperSlot();
19
+ await senderWrapper.waitForDisplayed();
20
+ const result = await axeCoreCheck();
21
+ expect(result.length).toBe(0);
22
+ });
23
+ });
24
+ }
@@ -0,0 +1,49 @@
1
+ // Tests for PUI-17908 (ds-chat-bubble slots implementation)
2
+ import { BubbleCO } from '../../components';
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-18459 - DSChatBubble:: slot wiring - Func', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await BubbleCO.bubbleSlotsURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: should have custom aria-* for each slot', async () => {
17
+ await (await BubbleCO.getWrapperSlot()).waitForDisplayed();
18
+ await expect(await BubbleCO.getWrapperSlot()).toHaveAttribute('aria-label', 'wrapper aria');
19
+ await expect(await BubbleCO.getColoredBubbleSlot()).toHaveAttribute('aria-label', 'colored-bubble aria');
20
+ await expect(await BubbleCO.getHeaderSlot()).toHaveAttribute('aria-label', 'header aria');
21
+ await expect(await BubbleCO.getHeaderLeftSlot()).toHaveAttribute('aria-label', 'header-left aria');
22
+ await expect(await BubbleCO.getHeaderRightSlot()).toHaveAttribute('aria-label', 'header-right aria');
23
+ await expect(await BubbleCO.getBodyWrapperSlot()).toHaveAttribute('aria-label', 'body-wrapper aria');
24
+ await expect(await BubbleCO.getErrorMessageSlot()).toHaveAttribute('aria-label', 'error-message aria');
25
+ await expect(await BubbleCO.getHelpMessageSlot()).toHaveAttribute('aria-label', 'help-message aria');
26
+ });
27
+
28
+ it('02: should have custom data-testid for each slot', async () => {
29
+ await expect(await BubbleCO.getWrapperSlot()).toHaveAttribute('data-testid', 'wrapper data');
30
+ await expect(await BubbleCO.getColoredBubbleSlot()).toHaveAttribute('data-testid', 'colored-bubble data');
31
+ await expect(await BubbleCO.getHeaderSlot()).toHaveAttribute('data-testid', 'header data');
32
+ await expect(await BubbleCO.getHeaderLeftSlot()).toHaveAttribute('data-testid', 'header-left data');
33
+ await expect(await BubbleCO.getHeaderRightSlot()).toHaveAttribute('data-testid', 'header-right data');
34
+ await expect(await BubbleCO.getBodyWrapperSlot()).toHaveAttribute('data-testid', 'body-wrapper data');
35
+ await expect(await BubbleCO.getErrorMessageSlot()).toHaveAttribute('data-testid', 'error-message data');
36
+ await expect(await BubbleCO.getHelpMessageSlot()).toHaveAttribute('data-testid', 'help-message data');
37
+ });
38
+
39
+ it('03: should have custom lang for each slot', async () => {
40
+ await expect(await BubbleCO.getWrapperSlot()).toHaveAttribute('lang', 'pt');
41
+ await expect(await BubbleCO.getHeaderSlot()).toHaveAttribute('lang', 'de');
42
+ await expect(await BubbleCO.getHeaderLeftSlot()).toHaveAttribute('lang', 'en');
43
+ await expect(await BubbleCO.getHeaderRightSlot()).toHaveAttribute('lang', 'fr');
44
+ await expect(await BubbleCO.getBodyWrapperSlot()).toHaveAttribute('lang', 'it');
45
+ await expect(await BubbleCO.getErrorMessageSlot()).toHaveAttribute('lang', 'sv');
46
+ await expect(await BubbleCO.getHelpMessageSlot()).toHaveAttribute('lang', 'ja');
47
+ });
48
+ });
49
+ }
@@ -0,0 +1,25 @@
1
+ // Tests for PUI-17908 (ds-chat-bubble slots implementation)
2
+ import { BubbleCO } from '../../components';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-18458 - DSChatBubble:: bubble slot variants - Visual', () => {
6
+ before(async () => {
7
+ const errorOnGo = await BubbleCO.bubbleSlotsURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+
11
+ it('01: should display sender and recipient bubble variants', async () => {
12
+ const senderWrapper = await BubbleCO.getWrapperSlot();
13
+ await senderWrapper.waitForDisplayed();
14
+ const snapshot = await browser.percyCheckScreenshot(BubbleCO.snapshotPath('bubble-slots-sender-recipient'));
15
+ await expect(snapshot).toEqual(0);
16
+ });
17
+
18
+ it('02: should display bubble with errorMessage and helpMessage', async () => {
19
+ const errorBubble = await BubbleCO.getErrorMessageSlot();
20
+ await errorBubble.waitForDisplayed();
21
+ const snapshot = await browser.percyCheckScreenshot(BubbleCO.snapshotPath('bubble-slots-error-help'));
22
+ await expect(snapshot).toEqual(0);
23
+ });
24
+ });
25
+ }
@@ -0,0 +1,24 @@
1
+ // Tests for PUI-17908 (ds-chat-card slots implementation)
2
+ import { CardCO } from '../../components';
3
+ import { axeCoreCheck } from '../../../helpers';
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-18463 - DSChatCard:: axe-core - Axe-Core', () => {
12
+ before(async () => {
13
+ const errorOnGo = await CardCO.cardSlotsURL.go();
14
+ if (errorOnGo) throw errorOnGo;
15
+ });
16
+
17
+ it('01: should pass axe-core on all card variants', async () => {
18
+ const titleCard = await CardCO.getRootSlot();
19
+ await titleCard.waitForDisplayed();
20
+ const result = await axeCoreCheck();
21
+ expect(result.length).toBe(0);
22
+ });
23
+ });
24
+ }
@@ -0,0 +1,47 @@
1
+ // Tests for PUI-17908 (ds-chat-card slots implementation)
2
+ import { CardCO } from '../../components';
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-18462 - DSChatCard:: slot wiring - Func', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await CardCO.cardSlotsURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: should have custom aria-* for each slot', async () => {
17
+ await (await CardCO.getRootSlot()).waitForDisplayed();
18
+ await expect(await CardCO.getRootSlot()).toHaveAttribute('aria-label', 'root aria');
19
+ await expect(await CardCO.getMainContentSlot()).toHaveAttribute('aria-label', 'main-content aria');
20
+ await expect(await CardCO.getTitleSlot()).toHaveAttribute('aria-label', 'title aria');
21
+ await expect(await CardCO.getContentSlot()).toHaveAttribute('aria-label', 'content aria');
22
+ await expect(await CardCO.getTimeSlot()).toHaveAttribute('aria-label', 'time aria');
23
+ await expect(await CardCO.getRightAddonSlot()).toHaveAttribute('aria-label', 'right-addon aria');
24
+ await expect(await CardCO.getTruncatedSpanSlot()).toHaveAttribute('aria-label', 'truncated-span aria');
25
+ });
26
+
27
+ it('02: should have custom data-testid for each slot', async () => {
28
+ await expect(await CardCO.getRootSlot()).toHaveAttribute('data-testid', 'root data');
29
+ await expect(await CardCO.getMainContentSlot()).toHaveAttribute('data-testid', 'main-content data');
30
+ await expect(await CardCO.getTitleSlot()).toHaveAttribute('data-testid', 'title data');
31
+ await expect(await CardCO.getContentSlot()).toHaveAttribute('data-testid', 'content data');
32
+ await expect(await CardCO.getTimeSlot()).toHaveAttribute('data-testid', 'time data');
33
+ await expect(await CardCO.getRightAddonSlot()).toHaveAttribute('data-testid', 'right-addon data');
34
+ await expect(await CardCO.getTruncatedSpanSlot()).toHaveAttribute('data-testid', 'truncated-span data');
35
+ });
36
+
37
+ it('03: should have custom lang for each slot', async () => {
38
+ await expect(await CardCO.getRootSlot()).toHaveAttribute('lang', 'pt');
39
+ await expect(await CardCO.getMainContentSlot()).toHaveAttribute('lang', 'es');
40
+ await expect(await CardCO.getTitleSlot()).toHaveAttribute('lang', 'de');
41
+ await expect(await CardCO.getContentSlot()).toHaveAttribute('lang', 'en');
42
+ await expect(await CardCO.getTimeSlot()).toHaveAttribute('lang', 'fr');
43
+ await expect(await CardCO.getRightAddonSlot()).toHaveAttribute('lang', 'it');
44
+ await expect(await CardCO.getTruncatedSpanSlot()).toHaveAttribute('lang', 'nl');
45
+ });
46
+ });
47
+ }
@@ -0,0 +1,18 @@
1
+ // Tests for PUI-17908 (ds-chat-card slots implementation)
2
+ import { CardCO } from '../../components';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-18461 - DSChatCard:: card slot variants - Visual', () => {
6
+ before(async () => {
7
+ const errorOnGo = await CardCO.cardSlotsURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+
11
+ it('01: should display card with all slot props and style customization', async () => {
12
+ const root = await CardCO.getRootSlot();
13
+ await root.waitForDisplayed();
14
+ const snapshot = await browser.percyCheckScreenshot(CardCO.snapshotPath('card-slot-variants'));
15
+ await expect(snapshot).toEqual(0);
16
+ });
17
+ });
18
+ }
@@ -0,0 +1,32 @@
1
+ import { CardCO } from '../../components';
2
+ import { mouseOver } from '../../../helpers';
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-18484 - DSChatCard:: truncated text - Func', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await CardCO.cardTruncatedURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: should render TruncatedSpan for each card with long content', async () => {
17
+ const span = await CardCO.getTruncatedSpan(0);
18
+ await span.waitForDisplayed();
19
+ await expect(span).toBeDisplayed();
20
+ await expect(await CardCO.getTruncatedSpan(1)).toBeDisplayed();
21
+ await expect(await CardCO.getTruncatedSpan(2)).toBeDisplayed();
22
+ });
23
+
24
+ it('02: should show tooltip on hover when content overflows', async () => {
25
+ const span = await CardCO.getTruncatedSpan(0);
26
+ await mouseOver(span);
27
+ const tooltip = await CardCO.getTooltipContainer();
28
+ await tooltip.waitForDisplayed({ timeout: 3000 });
29
+ await expect(tooltip).toBeDisplayed();
30
+ });
31
+ });
32
+ }
@@ -0,0 +1,26 @@
1
+ import { CardCO } from '../../components';
2
+
3
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
4
+ describe('PUI-18483 - DSChatCard:: truncated text - Visual', () => {
5
+ before('loading page', async () => {
6
+ const errorOnGo = await CardCO.cardTruncatedURL.go();
7
+ if (errorOnGo) throw errorOnGo;
8
+ });
9
+
10
+ it('01: should display cards with truncated content at rest', async () => {
11
+ const span = await CardCO.getTruncatedSpan(0);
12
+ await span.waitForDisplayed();
13
+ const snapshot = await browser.percyCheckScreenshot(CardCO.snapshotPath('truncated-text'));
14
+ await expect(snapshot).toEqual(0);
15
+ });
16
+
17
+ it('02: should display tooltip on hover over truncated content', async () => {
18
+ const span = await CardCO.getTruncatedSpan(0);
19
+ await span.moveTo();
20
+ const tooltip = await CardCO.getTooltipContainer();
21
+ await tooltip.waitForDisplayed({ timeout: 3000 });
22
+ const snapshot = await browser.percyCheckScreenshot(CardCO.snapshotPath('truncated-text-tooltip'));
23
+ await expect(snapshot).toEqual(0);
24
+ });
25
+ });
26
+ }
@@ -0,0 +1,23 @@
1
+ import { CardCO } from '../../components';
2
+ import { axeCoreCheck } from '../../../helpers';
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-18486 - DSChatCard:: with notification badges - Axe-Core', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await CardCO.cardWithNotificationBadgesURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: should pass axe-core with notification badge variants', async () => {
17
+ const cards = await CardCO.getCards();
18
+ await cards[0].waitForDisplayed();
19
+ const result = await axeCoreCheck();
20
+ expect(result.length).toBe(0);
21
+ });
22
+ });
23
+ }
@@ -0,0 +1,17 @@
1
+ import { CardCO } from '../../components';
2
+
3
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
4
+ describe('PUI-18485 - DSChatCard:: with notification badges - Visual', () => {
5
+ before('loading page', async () => {
6
+ const errorOnGo = await CardCO.cardWithNotificationBadgesURL.go();
7
+ if (errorOnGo) throw errorOnGo;
8
+ });
9
+
10
+ it('01: should display cards with notification badges', async () => {
11
+ const cards = await CardCO.getCards();
12
+ await cards[0].waitForDisplayed();
13
+ const snapshot = await browser.percyCheckScreenshot(CardCO.snapshotPath('with-notification-badges'));
14
+ await expect(snapshot).toEqual(0);
15
+ });
16
+ });
17
+ }
@@ -1,13 +1,15 @@
1
- import { PATH_E2E_CHAT } from '../../paths';
1
+ import { PATH_E2E_CHAT, PATH_E2E_CHAT_BUBBLE } from '../../paths';
2
2
  import { PageObject, Urlbuilder } from '../../helpers';
3
3
 
4
4
  export default class BubbleCO extends PageObject {
5
- static bubbleURL = new Urlbuilder(PATH_E2E_CHAT, 'bubble-test');
5
+ static bubbleURL = new Urlbuilder(PATH_E2E_CHAT_BUBBLE, 'bubble-test');
6
6
 
7
- static bubbleWrapping = new Urlbuilder(PATH_E2E_CHAT, 'bubble-wrapping-test');
7
+ static bubbleWrapping = new Urlbuilder(PATH_E2E_CHAT_BUBBLE, 'bubble-wrapping-test');
8
8
 
9
9
  static systemMessageInContainerUCURL = new Urlbuilder(PATH_E2E_CHAT, 'system-message-in-container');
10
10
 
11
+ static bubbleSlotsURL = new Urlbuilder(PATH_E2E_CHAT_BUBBLE, 'slots-test');
12
+
11
13
  // selectors
12
14
  static async getErrorMessage(bubbleId) {
13
15
  return $(`[data-testid="chat-bubble-error-message-${bubbleId}"]`);
@@ -56,6 +58,47 @@ export default class BubbleCO extends PageObject {
56
58
  }, bubbleId);
57
59
  }
58
60
 
61
+ static async getBubbleWrapper(bubbleId) {
62
+ return $(`[data-testid="ds-chat-bubble-${bubbleId}"]`);
63
+ }
64
+
65
+ // Slot selectors (used by slots func spec — one bubble per story)
66
+ static async getWrapperSlot() {
67
+ return $('[data-dimsum-slot="dsBubbleWrapper"]');
68
+ }
69
+
70
+ static async getColoredBubbleSlot() {
71
+ return $('[data-dimsum-slot="dsBubbleColoredBubble"]');
72
+ }
73
+
74
+ static async getHeaderSlot() {
75
+ return $('[data-dimsum-slot="dsBubbleHeader"]');
76
+ }
77
+
78
+ static async getHeaderLeftSlot() {
79
+ return $('[data-dimsum-slot="dsBubbleHeaderLeft"]');
80
+ }
81
+
82
+ static async getHeaderRightSlot() {
83
+ return $('[data-dimsum-slot="dsBubbleHeaderRight"]');
84
+ }
85
+
86
+ static async getBodyWrapperSlot() {
87
+ return $('[data-dimsum-slot="dsBubbleBodyWrapper"]');
88
+ }
89
+
90
+ static async getArrowSlot() {
91
+ return $('[data-dimsum-slot="dsBubbleArrow"]');
92
+ }
93
+
94
+ static async getErrorMessageSlot() {
95
+ return $('[data-dimsum-slot="dsBubbleErrorMessage"]');
96
+ }
97
+
98
+ static async getHelpMessageSlot() {
99
+ return $('[data-dimsum-slot="dsBubbleHelpMessage"]');
100
+ }
101
+
59
102
  // Snapshots
60
103
  static snapshotPath(example = 'basic') {
61
104
  return PageObject.getSnapshotPathBuilder('Bubble', example, 'ds-chat');
@@ -0,0 +1,77 @@
1
+ import { PATH_CHAT_PARTS, PATH_E2E_CHAT_CARD } from '../../paths';
2
+ import { PageObject, Urlbuilder } from '../../helpers';
3
+
4
+ export default class CardCO extends PageObject {
5
+ static chatCardURL = new Urlbuilder(PATH_CHAT_PARTS, 'chat-card');
6
+
7
+ static cardBasicURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'basic-test');
8
+
9
+ static cardWithNotificationBadgesURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'with-notification-badges-test');
10
+
11
+ static cardTruncatedURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'truncated-text-test');
12
+
13
+ static cardSlotsURL = new Urlbuilder(PATH_E2E_CHAT_CARD, 'slots-test');
14
+
15
+ static async getCards() {
16
+ return $$('[data-testid="chat-card-wrapper"]');
17
+ }
18
+
19
+ static async getCardRoot(cardId) {
20
+ return $(`[data-testid="chat-card-wrapper-${cardId}"]`);
21
+ }
22
+
23
+ static async getCardTitle(cardId) {
24
+ return $(`[data-testid="chat-card-title-${cardId}"]`);
25
+ }
26
+
27
+ static async getCardContent(cardId) {
28
+ return $(`[data-testid="chat-card-content-${cardId}"]`);
29
+ }
30
+
31
+ static async getCardTime(cardId) {
32
+ return $(`[data-testid="chat-card-time-${cardId}"]`);
33
+ }
34
+
35
+ // Truncated text selectors
36
+ static async getTruncatedSpan(index = 0) {
37
+ return $$('[data-dimsum-slot="dsChatcardTruncatedSpan"]')[index];
38
+ }
39
+
40
+ static async getTooltipContainer() {
41
+ return $('[data-dimsum-slot="dsChatcardTooltipContainer"]');
42
+ }
43
+
44
+ // Slot selectors (used by slots func spec — one card per story)
45
+ static async getRootSlot() {
46
+ return $('[data-dimsum-slot="dsChatcardRoot"]');
47
+ }
48
+
49
+ static async getMainContentSlot() {
50
+ return $('[data-dimsum-slot="dsChatcardMainContent"]');
51
+ }
52
+
53
+ static async getTitleSlot() {
54
+ return $('[data-dimsum-slot="dsChatcardTitle"]');
55
+ }
56
+
57
+ static async getContentSlot() {
58
+ return $('[data-dimsum-slot="dsChatcardContent"]');
59
+ }
60
+
61
+ static async getTimeSlot() {
62
+ return $('[data-dimsum-slot="dsChatcardTime"]');
63
+ }
64
+
65
+ static async getRightAddonSlot() {
66
+ return $('[data-dimsum-slot="dsChatcardRightAddon"]');
67
+ }
68
+
69
+ static async getTruncatedSpanSlot() {
70
+ return $('[data-dimsum-slot="dsChatcardTruncatedSpan"]');
71
+ }
72
+
73
+ // Snapshots
74
+ static snapshotPath(example = 'basic') {
75
+ return PageObject.getSnapshotPathBuilder('Card', example, 'ds-chat');
76
+ }
77
+ }
@@ -0,0 +1,82 @@
1
+ import { PATH_CHAT_PARTS, PATH_E2E_CHAT_TILE } from '../../paths';
2
+ import { PageObject, Urlbuilder } from '../../helpers';
3
+
4
+ export default class TileCO extends PageObject {
5
+ static tilesURL = new Urlbuilder(PATH_CHAT_PARTS, 'tile');
6
+
7
+ static sidebarURL = new Urlbuilder(PATH_CHAT_PARTS, 'sidebar');
8
+
9
+ static applyAriaDisabledURL = new Urlbuilder(PATH_E2E_CHAT_TILE, 'apply-aria-disabled-test');
10
+
11
+ static slotsTestURL = new Urlbuilder(PATH_E2E_CHAT_TILE, 'slots-test');
12
+
13
+ static async getChatTile(tileId) {
14
+ return $(`[data-testid="tile-button-${tileId}"]`);
15
+ }
16
+
17
+ static async getChatTileButtonItem(tileId) {
18
+ return $(`[data-testid="tile-button-item-id-${tileId}"]`);
19
+ }
20
+
21
+ static async getSideBarSelectedTile() {
22
+ return $(`[data-testid="selected-tile"]`).getText();
23
+ }
24
+
25
+ static async getTileTooltip(id) {
26
+ return $(`[data-testid="ds-tooltip-v3-trigger-wrapper_ds-chat-tile-tooltip-button-item-id-${id}"]`);
27
+ }
28
+
29
+ static async getCounter() {
30
+ return $('[data-testid="counter"]');
31
+ }
32
+
33
+ static async getTileBadge(tileId) {
34
+ return $(`[data-testid="tile-badge-${tileId}"]`);
35
+ }
36
+
37
+ static async getTileCloseButton(tileId) {
38
+ return $(`[data-testid="tile-close-btn-${tileId}"]`);
39
+ }
40
+
41
+ // Slot selectors (used by slots func spec — one tile per story)
42
+ static async getRootSlot() {
43
+ return $('[data-dimsum-slot="dsChattilebuttonRoot"]');
44
+ }
45
+
46
+ static async getTooltipWrapperSlot() {
47
+ return $('[data-dimsum-slot="dsChattilebuttonTooltipWrapper"]');
48
+ }
49
+
50
+ static async getWrapperSlot() {
51
+ return $('[data-dimsum-slot="dsChattilebuttonWrapper"]');
52
+ }
53
+
54
+ static async getLeftBorderSlot() {
55
+ return $('[data-dimsum-slot="dsChattilebuttonLeftBorder"]');
56
+ }
57
+
58
+ static async getCentralContentSlot() {
59
+ return $('[data-dimsum-slot="dsChattilebuttonCentralContent"]');
60
+ }
61
+
62
+ static async getIconSlot() {
63
+ return $('[data-dimsum-slot="dsChattilebuttonIcon"]');
64
+ }
65
+
66
+ static async getLabelSlot() {
67
+ return $('[data-dimsum-slot="dsChattilebuttonLabel"]');
68
+ }
69
+
70
+ static async getBadgeSlot() {
71
+ return $('[data-dimsum-slot="dsChattilebuttonBadge"]');
72
+ }
73
+
74
+ static async getCloseButtonSlot() {
75
+ return $('[data-dimsum-slot="dsChattilebuttonCloseButton"]');
76
+ }
77
+
78
+ // Snapshots
79
+ static snapshotPath(example = 'basic') {
80
+ return PageObject.getSnapshotPathBuilder('Tile', example, 'ds-chat');
81
+ }
82
+ }
@@ -1,8 +1,9 @@
1
1
  import BubbleCO from './BubbleCO';
2
+ import CardCO from './CardCO';
2
3
  import FloatingButtonCO from './FloatingButtonCO';
3
- import TileCO from '../../ds-chat-tile/TileCO';
4
+ import TileCO from './TileCO';
4
5
  import HeaderCO from './HeaderCO';
5
6
  import ComposerCO from './ComposerCO';
6
7
  import ChatCO from '../DSChatCO';
7
8
  import StoryBtnsCO from './StoryBtnsCO';
8
- export { BubbleCO, FloatingButtonCO, TileCO, HeaderCO, ComposerCO, ChatCO, StoryBtnsCO };
9
+ export { BubbleCO, CardCO, FloatingButtonCO, TileCO, HeaderCO, ComposerCO, ChatCO, StoryBtnsCO };
@@ -1,6 +1,6 @@
1
1
  import { Key } from 'webdriverio';
2
- import { axeCoreCheck } from '../helpers';
3
- import TileCO from './TileCO';
2
+ import { axeCoreCheck } from '../../helpers';
3
+ import { TileCO } from '../components';
4
4
 
5
5
  if (
6
6
  (!browser.capabilities['ice:options'].isPhone &&
@@ -1,5 +1,5 @@
1
1
  import { Key } from 'webdriverio';
2
- import TileCO from './TileCO';
2
+ import { TileCO } from '../components';
3
3
 
4
4
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
5
  describe('PUI-6684 - Chat, Tile, Keyboard Navigation', () => {
@@ -1,6 +1,6 @@
1
1
  import { Key } from 'webdriverio';
2
- import TileCO from './TileCO';
3
- import { mouseOver, keyboardActions, tickActions, performKeyboardAction } from '../helpers';
2
+ import { TileCO } from '../components';
3
+ import { mouseOver, keyboardActions, tickActions, performKeyboardAction } from '../../helpers';
4
4
 
5
5
  if (!browser.capabilities['ice:options'].isPhone) {
6
6
  describe('PUI-6674 - Chat, Tile, Visual Tests', () => {
@@ -1,5 +1,5 @@
1
- import { axeCoreCheck } from '../../helpers';
2
- import TileCO from '../TileCO';
1
+ import { axeCoreCheck } from '../../../helpers';
2
+ import { TileCO } from '../../components';
3
3
 
4
4
  if (
5
5
  (!browser.capabilities['ice:options'].isPhone &&
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable max-len */
2
2
  import { Key } from 'webdriverio';
3
- import TileCO from '../TileCO';
3
+ import { TileCO } from '../../components';
4
4
 
5
5
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
6
  describe('PUI-14368 - [Tile] applyAriaDisabled prop - visual Test', () => {
@@ -0,0 +1,53 @@
1
+ // Tests for PUI-17908 (ds-chat-tile slots implementation)
2
+ import { TileCO } from '../../components';
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-18465 - DSChatTile:: slot wiring - Func', () => {
11
+ before('loading page', async () => {
12
+ const errorOnGo = await TileCO.slotsTestURL.go();
13
+ if (errorOnGo) throw errorOnGo;
14
+ });
15
+
16
+ it('01: should have custom aria-* for each slot', async () => {
17
+ await (await TileCO.getRootSlot()).waitForDisplayed();
18
+ await expect(await TileCO.getRootSlot()).toHaveAttribute('aria-label', 'root aria');
19
+ await expect(await TileCO.getTooltipWrapperSlot()).toHaveAttribute('aria-label', 'tooltip-wrapper aria');
20
+ await expect(await TileCO.getWrapperSlot()).toHaveAttribute('aria-label', 'wrapper aria');
21
+ await expect(await TileCO.getLeftBorderSlot()).toHaveAttribute('aria-label', 'left-border aria');
22
+ await expect(await TileCO.getCentralContentSlot()).toHaveAttribute('aria-label', 'central-content aria');
23
+ await expect(await TileCO.getIconSlot()).toHaveAttribute('aria-label', 'icon aria');
24
+ await expect(await TileCO.getLabelSlot()).toHaveAttribute('aria-label', 'label aria');
25
+ await expect(await TileCO.getBadgeSlot()).toHaveAttribute('aria-label', 'badge aria');
26
+ await expect(await TileCO.getCloseButtonSlot()).toHaveAttribute('aria-label', 'close-button aria');
27
+ });
28
+
29
+ it('02: should have custom data-testid for each slot', async () => {
30
+ await expect(await TileCO.getRootSlot()).toHaveAttribute('data-testid', 'root data');
31
+ await expect(await TileCO.getTooltipWrapperSlot()).toHaveAttribute('data-testid', 'tooltip-wrapper data');
32
+ await expect(await TileCO.getWrapperSlot()).toHaveAttribute('data-testid', 'wrapper data');
33
+ await expect(await TileCO.getLeftBorderSlot()).toHaveAttribute('data-testid', 'left-border data');
34
+ await expect(await TileCO.getCentralContentSlot()).toHaveAttribute('data-testid', 'central-content data');
35
+ await expect(await TileCO.getIconSlot()).toHaveAttribute('data-testid', 'icon data');
36
+ await expect(await TileCO.getLabelSlot()).toHaveAttribute('data-testid', 'label data');
37
+ await expect(await TileCO.getBadgeSlot()).toHaveAttribute('data-testid', 'badge data');
38
+ await expect(await TileCO.getCloseButtonSlot()).toHaveAttribute('data-testid', 'close-button data');
39
+ });
40
+
41
+ it('03: should have custom lang for each slot', async () => {
42
+ await expect(await TileCO.getRootSlot()).toHaveAttribute('lang', 'pt');
43
+ await expect(await TileCO.getTooltipWrapperSlot()).toHaveAttribute('lang', 'es');
44
+ await expect(await TileCO.getWrapperSlot()).toHaveAttribute('lang', 'de');
45
+ await expect(await TileCO.getLeftBorderSlot()).toHaveAttribute('lang', 'en');
46
+ await expect(await TileCO.getCentralContentSlot()).toHaveAttribute('lang', 'fr');
47
+ await expect(await TileCO.getIconSlot()).toHaveAttribute('lang', 'it');
48
+ await expect(await TileCO.getLabelSlot()).toHaveAttribute('lang', 'nl');
49
+ await expect(await TileCO.getBadgeSlot()).toHaveAttribute('lang', 'sv');
50
+ await expect(await TileCO.getCloseButtonSlot()).toHaveAttribute('lang', 'ja');
51
+ });
52
+ });
53
+ }
@@ -0,0 +1,18 @@
1
+ // Tests for PUI-17908 (ds-chat-tile slots implementation)
2
+ import { TileCO } from '../../components';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-18464 - DSChatTile:: slot variants - Visual', () => {
6
+ before(async () => {
7
+ const errorOnGo = await TileCO.slotsTestURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ });
10
+
11
+ it('01: should display all tile slot variants', async () => {
12
+ const firstTile = await TileCO.getRootSlot();
13
+ await firstTile.waitForDisplayed();
14
+ const snapshot = await browser.percyCheckScreenshot(TileCO.snapshotPath('tile-slot-variants'));
15
+ await expect(snapshot).toEqual(0);
16
+ });
17
+ });
18
+ }
@@ -1,12 +1,12 @@
1
- import { PATH_PAGE_LAYOUT_TEMPLATE } from '../paths';
1
+ import { PATH_E2E_PAGE_LAYOUT } from '../paths';
2
2
  import { PageObject, Urlbuilder } from '../helpers';
3
3
 
4
4
  export default class PageLayoutCO extends PageObject {
5
- static basicURL = new Urlbuilder(PATH_PAGE_LAYOUT_TEMPLATE, 'basic');
5
+ static basicURL = new Urlbuilder(PATH_E2E_PAGE_LAYOUT, 'basic-test');
6
6
 
7
- static complexURL = new Urlbuilder(PATH_PAGE_LAYOUT_TEMPLATE, 'complex-page');
7
+ static complexURL = new Urlbuilder(PATH_E2E_PAGE_LAYOUT, 'complex-page-test');
8
8
 
9
- static integratedURL = new Urlbuilder(PATH_PAGE_LAYOUT_TEMPLATE, 'integrated-example');
9
+ static integratedURL = new Urlbuilder(PATH_E2E_PAGE_LAYOUT, 'integrated-example-test');
10
10
 
11
11
  // Snapshots
12
12
  static snapshotPath(example = 'basic') {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "dimsum-e2e-tests",
4
- "version": "3.70.0-next.13",
4
+ "version": "3.70.0-next.15",
5
5
  "description": "End-to-end tests for dimsum library",
6
6
  "dependencies": {
7
7
  "@elliemae/ds-legacy-button": "1.0.16",
@@ -41,154 +41,154 @@
41
41
  "@elliemae/ds-legacy-wysiwygeditor": "1.0.16",
42
42
  "@elliemae/ds-legacy-zipcode-search": "1.0.16",
43
43
  "@elliemae/ds-legacy-zoom": "1.0.16",
44
- "@elliemae/ds-accessibility": "3.70.0-next.13",
45
- "@elliemae/ds-app-picker": "3.70.0-next.13",
46
- "@elliemae/ds-backdrop": "3.70.0-next.13",
47
- "@elliemae/ds-accordion": "3.70.0-next.13",
48
- "@elliemae/ds-banner": "3.70.0-next.13",
49
- "@elliemae/ds-basic": "3.70.0-next.13",
50
- "@elliemae/ds-breadcrumb": "3.70.0-next.13",
51
- "@elliemae/ds-button-v2": "3.70.0-next.13",
52
- "@elliemae/ds-card": "3.70.0-next.13",
53
- "@elliemae/ds-card-v1": "3.70.0-next.13",
54
- "@elliemae/ds-card-navigation": "3.70.0-next.13",
55
- "@elliemae/ds-card-v1-detail": "3.70.0-next.13",
56
- "@elliemae/ds-card-v2": "3.70.0-next.13",
57
- "@elliemae/ds-card-v2-action-addon": "3.70.0-next.13",
58
- "@elliemae/ds-card-v2-group": "3.70.0-next.13",
59
- "@elliemae/ds-card-v3-poc": "3.70.0-next.13",
60
- "@elliemae/ds-card-v3": "3.70.0-next.13",
61
- "@elliemae/ds-chat-card": "3.70.0-next.13",
62
- "@elliemae/ds-chat-bubble": "3.70.0-next.13",
63
- "@elliemae/ds-chat": "3.70.0-next.13",
64
- "@elliemae/ds-chat-container": "3.70.0-next.13",
65
- "@elliemae/ds-chat-container-header": "3.70.0-next.13",
66
- "@elliemae/ds-chat-empty-state": "3.70.0-next.13",
67
- "@elliemae/ds-chat-floating-button": "3.70.0-next.13",
68
- "@elliemae/ds-chat-message-delimeter": "3.70.0-next.13",
69
- "@elliemae/ds-chat-system-message": "3.70.0-next.13",
70
- "@elliemae/ds-chat-sidebar": "3.70.0-next.13",
71
- "@elliemae/ds-chat-tile": "3.70.0-next.13",
72
- "@elliemae/ds-chip": "3.70.0-next.13",
73
- "@elliemae/ds-circular-progress-indicator": "3.70.0-next.13",
74
- "@elliemae/ds-classnames": "3.70.0-next.13",
75
- "@elliemae/ds-codeeditor": "3.70.0-next.13",
76
- "@elliemae/ds-controlled-form": "3.70.0-next.13",
77
- "@elliemae/ds-csv-converter": "3.70.0-next.13",
78
- "@elliemae/ds-comments": "3.70.0-next.13",
79
- "@elliemae/ds-data-table-action-cell": "3.70.0-next.13",
80
- "@elliemae/ds-data-table-cell": "3.70.0-next.13",
81
- "@elliemae/ds-data-table-cell-header": "3.70.0-next.13",
82
- "@elliemae/ds-data-table": "3.70.0-next.13",
83
- "@elliemae/ds-data-table-expand-cell": "3.70.0-next.13",
84
- "@elliemae/ds-data-table-filters": "3.70.0-next.13",
85
- "@elliemae/ds-data-table-drag-and-drop-cell": "3.70.0-next.13",
86
- "@elliemae/ds-data-table-multi-select-cell": "3.70.0-next.13",
87
- "@elliemae/ds-dataviz": "3.70.0-next.13",
88
- "@elliemae/ds-data-table-single-select-cell": "3.70.0-next.13",
89
- "@elliemae/ds-dataviz-pie": "3.70.0-next.13",
90
- "@elliemae/ds-decision-graph": "3.70.0-next.13",
91
- "@elliemae/ds-drag-and-drop": "3.70.0-next.13",
92
- "@elliemae/ds-dropdownmenu-v2": "3.70.0-next.13",
93
- "@elliemae/ds-date-time-picker": "3.70.0-next.13",
94
- "@elliemae/ds-dropzone": "3.70.0-next.13",
95
- "@elliemae/ds-filter-bar": "3.70.0-next.13",
96
- "@elliemae/ds-floating-context": "3.70.0-next.13",
97
- "@elliemae/ds-dialog": "3.70.0-next.13",
98
- "@elliemae/ds-fast-list": "3.70.0-next.13",
99
- "@elliemae/ds-form-checkbox": "3.70.0-next.13",
100
- "@elliemae/ds-form-combobox": "3.70.0-next.13",
101
- "@elliemae/ds-form-date-time-picker": "3.70.0-next.13",
102
- "@elliemae/ds-form-helpers-mask-hooks": "3.70.0-next.13",
103
- "@elliemae/ds-form-date-range-picker": "3.70.0-next.13",
104
- "@elliemae/ds-form-input-textarea": "3.70.0-next.13",
105
- "@elliemae/ds-form-input-text": "3.70.0-next.13",
106
- "@elliemae/ds-form-layout-autocomplete": "3.70.0-next.13",
107
- "@elliemae/ds-form-layout-blocks": "3.70.0-next.13",
108
- "@elliemae/ds-form-layout-input-group": "3.70.0-next.13",
109
- "@elliemae/ds-form-layout-label": "3.70.0-next.13",
110
- "@elliemae/ds-form-multi-combobox": "3.70.0-next.13",
111
- "@elliemae/ds-form-native-select": "3.70.0-next.13",
112
- "@elliemae/ds-form-radio": "3.70.0-next.13",
113
- "@elliemae/ds-form-single-combobox": "3.70.0-next.13",
114
- "@elliemae/ds-form-toggle": "3.70.0-next.13",
115
- "@elliemae/ds-global-header": "3.70.0-next.13",
116
- "@elliemae/ds-form-select": "3.70.0-next.13",
117
- "@elliemae/ds-hooks-focus-stack": "3.70.0-next.13",
118
- "@elliemae/ds-hooks-focus-trap": "3.70.0-next.13",
119
- "@elliemae/ds-hooks-fontsize-detector": "3.70.0-next.13",
120
- "@elliemae/ds-grid": "3.70.0-next.13",
121
- "@elliemae/ds-hooks-fontsize-media": "3.70.0-next.13",
122
- "@elliemae/ds-hooks-headless-tooltip": "3.70.0-next.13",
123
- "@elliemae/ds-hooks-is-mobile": "3.70.0-next.13",
124
- "@elliemae/ds-hooks-keyboard-navigation": "3.70.0-next.13",
125
- "@elliemae/ds-hooks-is-showing-ellipsis": "3.70.0-next.13",
126
- "@elliemae/ds-hooks-on-first-focus-in": "3.70.0-next.13",
127
- "@elliemae/ds-image": "3.70.0-next.13",
128
- "@elliemae/ds-icon": "3.70.0-next.13",
129
- "@elliemae/ds-hooks-on-blur-out": "3.70.0-next.13",
130
- "@elliemae/ds-imagelibrarymodal": "3.70.0-next.13",
131
- "@elliemae/ds-icons": "3.70.0-next.13",
132
- "@elliemae/ds-indeterminate-progress-indicator": "3.70.0-next.13",
133
- "@elliemae/ds-layout-provider": "3.70.0-next.13",
134
- "@elliemae/ds-left-navigation": "3.70.0-next.13",
135
- "@elliemae/ds-loading-indicator": "3.70.0-next.13",
136
- "@elliemae/ds-menu-button": "3.70.0-next.13",
137
- "@elliemae/ds-menu-items": "3.70.0-next.13",
138
- "@elliemae/ds-menu-items-action": "3.70.0-next.13",
139
- "@elliemae/ds-menu-items-commons": "3.70.0-next.13",
140
- "@elliemae/ds-menu-items-section": "3.70.0-next.13",
141
- "@elliemae/ds-menu-items-multi": "3.70.0-next.13",
142
- "@elliemae/ds-menu-items-separator": "3.70.0-next.13",
143
- "@elliemae/ds-menu-items-single-with-submenu": "3.70.0-next.13",
144
- "@elliemae/ds-menu-items-submenu": "3.70.0-next.13",
145
- "@elliemae/ds-menu-items-single": "3.70.0-next.13",
146
- "@elliemae/ds-menu-items-skeleton": "3.70.0-next.13",
147
- "@elliemae/ds-menu-tree-item": "3.70.0-next.13",
148
- "@elliemae/ds-mobile": "3.70.0-next.13",
149
- "@elliemae/ds-modal-slide": "3.70.0-next.13",
150
- "@elliemae/ds-notification-badge": "3.70.0-next.13",
151
- "@elliemae/ds-overlay": "3.70.0-next.13",
152
- "@elliemae/ds-page-header": "3.70.0-next.13",
153
- "@elliemae/ds-page-header-v1": "3.70.0-next.13",
154
- "@elliemae/ds-page-header-v2": "3.70.0-next.13",
155
- "@elliemae/ds-pagination": "3.70.0-next.13",
156
- "@elliemae/ds-pills-v2": "3.70.0-next.13",
157
- "@elliemae/ds-page-layout": "3.70.0-next.13",
158
- "@elliemae/ds-portal": "3.70.0-next.13",
159
- "@elliemae/ds-props-helpers": "3.70.0-next.13",
160
- "@elliemae/ds-progress-indicator": "3.70.0-next.13",
161
- "@elliemae/ds-query-builder": "3.70.0-next.13",
162
- "@elliemae/ds-read-more": "3.70.0-next.13",
163
- "@elliemae/ds-resizeable-container": "3.70.0-next.13",
164
- "@elliemae/ds-ribbon": "3.70.0-next.13",
165
- "@elliemae/ds-scrollable-container": "3.70.0-next.13",
166
- "@elliemae/ds-separator": "3.70.0-next.13",
167
- "@elliemae/ds-shuttle-v2": "3.70.0-next.13",
168
- "@elliemae/ds-side-panel": "3.70.0-next.13",
169
- "@elliemae/ds-side-panel-header": "3.70.0-next.13",
170
- "@elliemae/ds-shared": "3.70.0-next.13",
171
- "@elliemae/ds-skeleton": "3.70.0-next.13",
172
- "@elliemae/ds-square-indicator": "3.70.0-next.13",
173
- "@elliemae/ds-slider-v2": "3.70.0-next.13",
174
- "@elliemae/ds-stepper": "3.70.0-next.13",
175
- "@elliemae/ds-svg": "3.70.0-next.13",
176
- "@elliemae/ds-system": "3.70.0-next.13",
177
- "@elliemae/ds-tabs": "3.70.0-next.13",
178
- "@elliemae/ds-test-utils": "3.70.0-next.13",
179
- "@elliemae/ds-toast": "3.70.0-next.13",
180
- "@elliemae/ds-toolbar-v2": "3.70.0-next.13",
181
- "@elliemae/ds-toolbar-v1": "3.70.0-next.13",
182
- "@elliemae/ds-tooltip-v3": "3.70.0-next.13",
183
- "@elliemae/ds-transition": "3.70.0-next.13",
184
- "@elliemae/ds-tree-model": "3.70.0-next.13",
185
- "@elliemae/ds-truncated-expandable-text": "3.70.0-next.13",
186
- "@elliemae/ds-typescript-helpers": "3.70.0-next.13",
187
- "@elliemae/ds-typography": "3.70.0-next.13",
188
- "@elliemae/ds-treeview": "3.70.0-next.13",
189
- "@elliemae/ds-virtual-list": "3.70.0-next.13",
190
- "@elliemae/ds-wizard": "3.70.0-next.13",
191
- "@elliemae/ds-zustand-helpers": "3.70.0-next.13"
44
+ "@elliemae/ds-accessibility": "3.70.0-next.15",
45
+ "@elliemae/ds-accordion": "3.70.0-next.15",
46
+ "@elliemae/ds-app-picker": "3.70.0-next.15",
47
+ "@elliemae/ds-backdrop": "3.70.0-next.15",
48
+ "@elliemae/ds-banner": "3.70.0-next.15",
49
+ "@elliemae/ds-basic": "3.70.0-next.15",
50
+ "@elliemae/ds-breadcrumb": "3.70.0-next.15",
51
+ "@elliemae/ds-card": "3.70.0-next.15",
52
+ "@elliemae/ds-button-v2": "3.70.0-next.15",
53
+ "@elliemae/ds-card-navigation": "3.70.0-next.15",
54
+ "@elliemae/ds-card-v1": "3.70.0-next.15",
55
+ "@elliemae/ds-card-v2": "3.70.0-next.15",
56
+ "@elliemae/ds-card-v1-detail": "3.70.0-next.15",
57
+ "@elliemae/ds-card-v2-action-addon": "3.70.0-next.15",
58
+ "@elliemae/ds-card-v2-group": "3.70.0-next.15",
59
+ "@elliemae/ds-card-v3-poc": "3.70.0-next.15",
60
+ "@elliemae/ds-chat-bubble": "3.70.0-next.15",
61
+ "@elliemae/ds-card-v3": "3.70.0-next.15",
62
+ "@elliemae/ds-chat-card": "3.70.0-next.15",
63
+ "@elliemae/ds-chat": "3.70.0-next.15",
64
+ "@elliemae/ds-chat-container-header": "3.70.0-next.15",
65
+ "@elliemae/ds-chat-container": "3.70.0-next.15",
66
+ "@elliemae/ds-chat-empty-state": "3.70.0-next.15",
67
+ "@elliemae/ds-chat-floating-button": "3.70.0-next.15",
68
+ "@elliemae/ds-chat-message-delimeter": "3.70.0-next.15",
69
+ "@elliemae/ds-chat-sidebar": "3.70.0-next.15",
70
+ "@elliemae/ds-chat-system-message": "3.70.0-next.15",
71
+ "@elliemae/ds-chat-tile": "3.70.0-next.15",
72
+ "@elliemae/ds-chip": "3.70.0-next.15",
73
+ "@elliemae/ds-circular-progress-indicator": "3.70.0-next.15",
74
+ "@elliemae/ds-classnames": "3.70.0-next.15",
75
+ "@elliemae/ds-codeeditor": "3.70.0-next.15",
76
+ "@elliemae/ds-comments": "3.70.0-next.15",
77
+ "@elliemae/ds-controlled-form": "3.70.0-next.15",
78
+ "@elliemae/ds-data-table": "3.70.0-next.15",
79
+ "@elliemae/ds-csv-converter": "3.70.0-next.15",
80
+ "@elliemae/ds-data-table-cell": "3.70.0-next.15",
81
+ "@elliemae/ds-data-table-action-cell": "3.70.0-next.15",
82
+ "@elliemae/ds-data-table-drag-and-drop-cell": "3.70.0-next.15",
83
+ "@elliemae/ds-data-table-cell-header": "3.70.0-next.15",
84
+ "@elliemae/ds-data-table-expand-cell": "3.70.0-next.15",
85
+ "@elliemae/ds-data-table-filters": "3.70.0-next.15",
86
+ "@elliemae/ds-data-table-multi-select-cell": "3.70.0-next.15",
87
+ "@elliemae/ds-data-table-single-select-cell": "3.70.0-next.15",
88
+ "@elliemae/ds-dataviz": "3.70.0-next.15",
89
+ "@elliemae/ds-dataviz-pie": "3.70.0-next.15",
90
+ "@elliemae/ds-date-time-picker": "3.70.0-next.15",
91
+ "@elliemae/ds-decision-graph": "3.70.0-next.15",
92
+ "@elliemae/ds-dialog": "3.70.0-next.15",
93
+ "@elliemae/ds-drag-and-drop": "3.70.0-next.15",
94
+ "@elliemae/ds-dropdownmenu-v2": "3.70.0-next.15",
95
+ "@elliemae/ds-dropzone": "3.70.0-next.15",
96
+ "@elliemae/ds-fast-list": "3.70.0-next.15",
97
+ "@elliemae/ds-filter-bar": "3.70.0-next.15",
98
+ "@elliemae/ds-floating-context": "3.70.0-next.15",
99
+ "@elliemae/ds-form-checkbox": "3.70.0-next.15",
100
+ "@elliemae/ds-form-combobox": "3.70.0-next.15",
101
+ "@elliemae/ds-form-input-text": "3.70.0-next.15",
102
+ "@elliemae/ds-form-date-range-picker": "3.70.0-next.15",
103
+ "@elliemae/ds-form-date-time-picker": "3.70.0-next.15",
104
+ "@elliemae/ds-form-helpers-mask-hooks": "3.70.0-next.15",
105
+ "@elliemae/ds-form-input-textarea": "3.70.0-next.15",
106
+ "@elliemae/ds-form-layout-autocomplete": "3.70.0-next.15",
107
+ "@elliemae/ds-form-layout-blocks": "3.70.0-next.15",
108
+ "@elliemae/ds-form-layout-input-group": "3.70.0-next.15",
109
+ "@elliemae/ds-form-layout-label": "3.70.0-next.15",
110
+ "@elliemae/ds-form-multi-combobox": "3.70.0-next.15",
111
+ "@elliemae/ds-form-native-select": "3.70.0-next.15",
112
+ "@elliemae/ds-form-radio": "3.70.0-next.15",
113
+ "@elliemae/ds-form-single-combobox": "3.70.0-next.15",
114
+ "@elliemae/ds-form-select": "3.70.0-next.15",
115
+ "@elliemae/ds-form-toggle": "3.70.0-next.15",
116
+ "@elliemae/ds-global-header": "3.70.0-next.15",
117
+ "@elliemae/ds-grid": "3.70.0-next.15",
118
+ "@elliemae/ds-hooks-focus-trap": "3.70.0-next.15",
119
+ "@elliemae/ds-hooks-focus-stack": "3.70.0-next.15",
120
+ "@elliemae/ds-hooks-fontsize-detector": "3.70.0-next.15",
121
+ "@elliemae/ds-hooks-fontsize-media": "3.70.0-next.15",
122
+ "@elliemae/ds-hooks-headless-tooltip": "3.70.0-next.15",
123
+ "@elliemae/ds-hooks-is-mobile": "3.70.0-next.15",
124
+ "@elliemae/ds-hooks-is-showing-ellipsis": "3.70.0-next.15",
125
+ "@elliemae/ds-hooks-keyboard-navigation": "3.70.0-next.15",
126
+ "@elliemae/ds-hooks-on-first-focus-in": "3.70.0-next.15",
127
+ "@elliemae/ds-icon": "3.70.0-next.15",
128
+ "@elliemae/ds-hooks-on-blur-out": "3.70.0-next.15",
129
+ "@elliemae/ds-image": "3.70.0-next.15",
130
+ "@elliemae/ds-icons": "3.70.0-next.15",
131
+ "@elliemae/ds-imagelibrarymodal": "3.70.0-next.15",
132
+ "@elliemae/ds-layout-provider": "3.70.0-next.15",
133
+ "@elliemae/ds-left-navigation": "3.70.0-next.15",
134
+ "@elliemae/ds-indeterminate-progress-indicator": "3.70.0-next.15",
135
+ "@elliemae/ds-loading-indicator": "3.70.0-next.15",
136
+ "@elliemae/ds-menu-button": "3.70.0-next.15",
137
+ "@elliemae/ds-menu-items": "3.70.0-next.15",
138
+ "@elliemae/ds-menu-items-action": "3.70.0-next.15",
139
+ "@elliemae/ds-menu-items-commons": "3.70.0-next.15",
140
+ "@elliemae/ds-menu-items-multi": "3.70.0-next.15",
141
+ "@elliemae/ds-menu-items-section": "3.70.0-next.15",
142
+ "@elliemae/ds-menu-items-separator": "3.70.0-next.15",
143
+ "@elliemae/ds-menu-items-single": "3.70.0-next.15",
144
+ "@elliemae/ds-menu-items-single-with-submenu": "3.70.0-next.15",
145
+ "@elliemae/ds-menu-items-skeleton": "3.70.0-next.15",
146
+ "@elliemae/ds-menu-tree-item": "3.70.0-next.15",
147
+ "@elliemae/ds-menu-items-submenu": "3.70.0-next.15",
148
+ "@elliemae/ds-mobile": "3.70.0-next.15",
149
+ "@elliemae/ds-modal-slide": "3.70.0-next.15",
150
+ "@elliemae/ds-notification-badge": "3.70.0-next.15",
151
+ "@elliemae/ds-overlay": "3.70.0-next.15",
152
+ "@elliemae/ds-page-header": "3.70.0-next.15",
153
+ "@elliemae/ds-page-header-v1": "3.70.0-next.15",
154
+ "@elliemae/ds-page-header-v2": "3.70.0-next.15",
155
+ "@elliemae/ds-page-layout": "3.70.0-next.15",
156
+ "@elliemae/ds-pagination": "3.70.0-next.15",
157
+ "@elliemae/ds-pills-v2": "3.70.0-next.15",
158
+ "@elliemae/ds-portal": "3.70.0-next.15",
159
+ "@elliemae/ds-progress-indicator": "3.70.0-next.15",
160
+ "@elliemae/ds-props-helpers": "3.70.0-next.15",
161
+ "@elliemae/ds-query-builder": "3.70.0-next.15",
162
+ "@elliemae/ds-ribbon": "3.70.0-next.15",
163
+ "@elliemae/ds-resizeable-container": "3.70.0-next.15",
164
+ "@elliemae/ds-scrollable-container": "3.70.0-next.15",
165
+ "@elliemae/ds-read-more": "3.70.0-next.15",
166
+ "@elliemae/ds-separator": "3.70.0-next.15",
167
+ "@elliemae/ds-shared": "3.70.0-next.15",
168
+ "@elliemae/ds-side-panel": "3.70.0-next.15",
169
+ "@elliemae/ds-shuttle-v2": "3.70.0-next.15",
170
+ "@elliemae/ds-slider-v2": "3.70.0-next.15",
171
+ "@elliemae/ds-side-panel-header": "3.70.0-next.15",
172
+ "@elliemae/ds-skeleton": "3.70.0-next.15",
173
+ "@elliemae/ds-square-indicator": "3.70.0-next.15",
174
+ "@elliemae/ds-stepper": "3.70.0-next.15",
175
+ "@elliemae/ds-svg": "3.70.0-next.15",
176
+ "@elliemae/ds-system": "3.70.0-next.15",
177
+ "@elliemae/ds-tabs": "3.70.0-next.15",
178
+ "@elliemae/ds-toast": "3.70.0-next.15",
179
+ "@elliemae/ds-test-utils": "3.70.0-next.15",
180
+ "@elliemae/ds-toolbar-v1": "3.70.0-next.15",
181
+ "@elliemae/ds-tooltip-v3": "3.70.0-next.15",
182
+ "@elliemae/ds-transition": "3.70.0-next.15",
183
+ "@elliemae/ds-toolbar-v2": "3.70.0-next.15",
184
+ "@elliemae/ds-tree-model": "3.70.0-next.15",
185
+ "@elliemae/ds-treeview": "3.70.0-next.15",
186
+ "@elliemae/ds-truncated-expandable-text": "3.70.0-next.15",
187
+ "@elliemae/ds-typescript-helpers": "3.70.0-next.15",
188
+ "@elliemae/ds-typography": "3.70.0-next.15",
189
+ "@elliemae/ds-virtual-list": "3.70.0-next.15",
190
+ "@elliemae/ds-wizard": "3.70.0-next.15",
191
+ "@elliemae/ds-zustand-helpers": "3.70.0-next.15"
192
192
  },
193
193
  "publishConfig": {
194
194
  "access": "public"
package/paths.js CHANGED
@@ -304,7 +304,9 @@ export const PATH_E2E_BREADCRUMB = `${PATH_E2E}/Breadcrumb`;
304
304
  export const PATH_E2E_FORM_ITEM_LAYOUT = `${PATH_E2E}/FormItemLayout`;
305
305
  export const PATH_E2E_BANNER = `${PATH_E2E}/Banner`;
306
306
  export const PATH_E2E_CHAT = `${PATH_E2E}/Chat`;
307
- export const PATH_E2E_CHAT_TILE = `${PATH_E2E}/ChatTile`;
307
+ export const PATH_E2E_CHAT_BUBBLE = `${PATH_E2E_CHAT}/Bubble`;
308
+ export const PATH_E2E_CHAT_CARD = `${PATH_E2E_CHAT}/Card`;
309
+ export const PATH_E2E_CHAT_TILE = `${PATH_E2E_CHAT}/Tile`;
308
310
  export const PATH_E2E_DIALOG = `${PATH_E2E}/Dialog`;
309
311
  export const PATH_E2E_TOAST = `${PATH_E2E}/Toast`;
310
312
  export const PATH_E2E_GLOBAL_HEADER = `${PATH_E2E}/Global-Header`;
@@ -398,6 +400,8 @@ export const PATH_E2E_RIBBON = `${PATH_E2E}/Ribbon`;
398
400
  export const PATH_E2E_MENU_BUTTON = `${PATH_E2E}/MenuButton/Features`;
399
401
  export const PATH_E2E_PROGRESS_INDICATOR = `${PATH_E2E}/ProgressIndicator`;
400
402
 
403
+ export const PATH_E2E_PAGE_LAYOUT = `${PATH_E2E}/PageLayout`;
404
+
401
405
  // atom components (e2e)
402
406
  export const PATH_E2E_TOOLTIP_V3 = `${PATH_E2E}/TooltipV3`;
403
407
  export const PATH_E2E_BUTTON = `${PATH_E2E}/Button`;
@@ -1,35 +0,0 @@
1
- import { PATH_CHAT_PARTS, PATH_E2E_CHAT_TILE } from '../paths';
2
- import { PageObject, Urlbuilder } from '../helpers';
3
-
4
- export default class TileCO extends PageObject {
5
- static tilesURL = new Urlbuilder(PATH_CHAT_PARTS, 'tile');
6
-
7
- static sidebarURL = new Urlbuilder(PATH_CHAT_PARTS, 'sidebar');
8
-
9
- static applyAriaDisabledURL = new Urlbuilder(PATH_E2E_CHAT_TILE, 'apply-aria-disabled-test');
10
-
11
- static async getChatTile(tileId) {
12
- return $(`[data-testid="tile-button-${tileId}"]`);
13
- }
14
-
15
- static async getChatTileButtonItem(tileId) {
16
- return $(`[data-testid="tile-button-item-id-${tileId}"]`);
17
- }
18
-
19
- static async getSideBarSelectedTile() {
20
- return $(`[data-testid="selected-tile"]`).getText();
21
- }
22
-
23
- static async getTileTooltip(id) {
24
- return $(`[data-testid="ds-tooltip-v3-trigger-wrapper_ds-chat-tile-tooltip-button-item-id-${id}"]`);
25
- }
26
-
27
- static async getCounter() {
28
- return $('[data-testid="counter"]');
29
- }
30
-
31
- // Snapshots
32
- static snapshotPath(example = 'basic') {
33
- return PageObject.getSnapshotPathBuilder('Tile', example, 'ds-chat');
34
- }
35
- }