@servicetitan/titan-chatbot-ui-cypress 3.0.1 → 3.1.1

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 (178) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +3 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/mocks/chatbot-api-client.mock.d.ts +0 -1
  7. package/dist/mocks/chatbot-api-client.mock.d.ts.map +1 -1
  8. package/dist/mocks/chatbot-api-client.mock.js +0 -6
  9. package/dist/mocks/chatbot-api-client.mock.js.map +1 -1
  10. package/dist/tests/index.d.ts +30 -0
  11. package/dist/tests/index.d.ts.map +1 -0
  12. package/dist/tests/index.js +30 -0
  13. package/dist/tests/index.js.map +1 -0
  14. package/dist/tests/titan-chat-ui/chat-error.shared-tests.d.ts +3 -0
  15. package/dist/tests/titan-chat-ui/chat-error.shared-tests.d.ts.map +1 -0
  16. package/dist/tests/titan-chat-ui/chat-error.shared-tests.js +138 -0
  17. package/dist/tests/titan-chat-ui/chat-error.shared-tests.js.map +1 -0
  18. package/dist/tests/titan-chat-ui/chat-input-file.shared-tests.d.ts +7 -0
  19. package/dist/tests/titan-chat-ui/chat-input-file.shared-tests.d.ts.map +1 -0
  20. package/dist/tests/titan-chat-ui/chat-input-file.shared-tests.js +123 -0
  21. package/dist/tests/titan-chat-ui/chat-input-file.shared-tests.js.map +1 -0
  22. package/dist/tests/titan-chat-ui/chat-input.shared-tests.d.ts +3 -0
  23. package/dist/tests/titan-chat-ui/chat-input.shared-tests.d.ts.map +1 -0
  24. package/dist/tests/titan-chat-ui/chat-input.shared-tests.js +71 -0
  25. package/dist/tests/titan-chat-ui/chat-input.shared-tests.js.map +1 -0
  26. package/dist/tests/titan-chat-ui/chat-log.shared-tests.d.ts +9 -0
  27. package/dist/tests/titan-chat-ui/chat-log.shared-tests.d.ts.map +1 -0
  28. package/dist/tests/titan-chat-ui/chat-log.shared-tests.js +73 -0
  29. package/dist/tests/titan-chat-ui/chat-log.shared-tests.js.map +1 -0
  30. package/dist/tests/titan-chat-ui/chat-messages.shared-tests.d.ts +8 -0
  31. package/dist/tests/titan-chat-ui/chat-messages.shared-tests.d.ts.map +1 -0
  32. package/dist/tests/titan-chat-ui/chat-messages.shared-tests.js +118 -0
  33. package/dist/tests/titan-chat-ui/chat-messages.shared-tests.js.map +1 -0
  34. package/dist/tests/titan-chat-ui/chat-notifications.shared-tests.d.ts +3 -0
  35. package/dist/tests/titan-chat-ui/chat-notifications.shared-tests.d.ts.map +1 -0
  36. package/dist/tests/titan-chat-ui/chat-notifications.shared-tests.js +110 -0
  37. package/dist/tests/titan-chat-ui/chat-notifications.shared-tests.js.map +1 -0
  38. package/dist/tests/titan-chat-ui/chat-timer.shared-tests.d.ts +3 -0
  39. package/dist/tests/titan-chat-ui/chat-timer.shared-tests.d.ts.map +1 -0
  40. package/dist/tests/titan-chat-ui/chat-timer.shared-tests.js +76 -0
  41. package/dist/tests/titan-chat-ui/chat-timer.shared-tests.js.map +1 -0
  42. package/dist/tests/titan-chat-ui/chat.shared-tests.d.ts +9 -0
  43. package/dist/tests/titan-chat-ui/chat.shared-tests.d.ts.map +1 -0
  44. package/dist/tests/titan-chat-ui/chat.shared-tests.js +111 -0
  45. package/dist/tests/titan-chat-ui/chat.shared-tests.js.map +1 -0
  46. package/dist/tests/titan-chat-ui/message-agent.shared-tests.d.ts +27 -0
  47. package/dist/tests/titan-chat-ui/message-agent.shared-tests.d.ts.map +1 -0
  48. package/dist/tests/titan-chat-ui/message-agent.shared-tests.js +67 -0
  49. package/dist/tests/titan-chat-ui/message-agent.shared-tests.js.map +1 -0
  50. package/dist/tests/titan-chat-ui/message-content-file.shared-tests.d.ts +10 -0
  51. package/dist/tests/titan-chat-ui/message-content-file.shared-tests.d.ts.map +1 -0
  52. package/dist/tests/titan-chat-ui/message-content-file.shared-tests.js +88 -0
  53. package/dist/tests/titan-chat-ui/message-content-file.shared-tests.js.map +1 -0
  54. package/dist/tests/titan-chat-ui/message-system.shared-tests.d.ts +16 -0
  55. package/dist/tests/titan-chat-ui/message-system.shared-tests.d.ts.map +1 -0
  56. package/dist/tests/titan-chat-ui/message-system.shared-tests.js +65 -0
  57. package/dist/tests/titan-chat-ui/message-system.shared-tests.js.map +1 -0
  58. package/dist/tests/titan-chat-ui/message-timeout.shared-tests.d.ts +8 -0
  59. package/dist/tests/titan-chat-ui/message-timeout.shared-tests.d.ts.map +1 -0
  60. package/dist/tests/titan-chat-ui/message-timeout.shared-tests.js +63 -0
  61. package/dist/tests/titan-chat-ui/message-timeout.shared-tests.js.map +1 -0
  62. package/dist/tests/titan-chat-ui/message-typing.shared-tests.d.ts +12 -0
  63. package/dist/tests/titan-chat-ui/message-typing.shared-tests.d.ts.map +1 -0
  64. package/dist/tests/titan-chat-ui/message-typing.shared-tests.js +46 -0
  65. package/dist/tests/titan-chat-ui/message-typing.shared-tests.js.map +1 -0
  66. package/dist/tests/titan-chat-ui/message-user.shared-tests.d.ts +10 -0
  67. package/dist/tests/titan-chat-ui/message-user.shared-tests.d.ts.map +1 -0
  68. package/dist/tests/titan-chat-ui/message-user.shared-tests.js +64 -0
  69. package/dist/tests/titan-chat-ui/message-user.shared-tests.js.map +1 -0
  70. package/dist/tests/titan-chatbot-ui/chatbot-filters.shared-tests.d.ts +7 -0
  71. package/dist/tests/titan-chatbot-ui/chatbot-filters.shared-tests.d.ts.map +1 -0
  72. package/dist/tests/titan-chatbot-ui/chatbot-filters.shared-tests.js +118 -0
  73. package/dist/tests/titan-chatbot-ui/chatbot-filters.shared-tests.js.map +1 -0
  74. package/dist/tests/titan-chatbot-ui/chatbot-help-center.shared-tests.d.ts +9 -0
  75. package/dist/tests/titan-chatbot-ui/chatbot-help-center.shared-tests.d.ts.map +1 -0
  76. package/dist/tests/titan-chatbot-ui/chatbot-help-center.shared-tests.js +162 -0
  77. package/dist/tests/titan-chatbot-ui/chatbot-help-center.shared-tests.js.map +1 -0
  78. package/dist/tests/titan-chatbot-ui/chatbot-links.shared-tests.d.ts +15 -0
  79. package/dist/tests/titan-chatbot-ui/chatbot-links.shared-tests.d.ts.map +1 -0
  80. package/dist/tests/titan-chatbot-ui/chatbot-links.shared-tests.js +123 -0
  81. package/dist/tests/titan-chatbot-ui/chatbot-links.shared-tests.js.map +1 -0
  82. package/dist/tests/titan-chatbot-ui/chatbot-live.shared-tests.d.ts +9 -0
  83. package/dist/tests/titan-chatbot-ui/chatbot-live.shared-tests.d.ts.map +1 -0
  84. package/dist/tests/titan-chatbot-ui/chatbot-live.shared-tests.js +84 -0
  85. package/dist/tests/titan-chatbot-ui/chatbot-live.shared-tests.js.map +1 -0
  86. package/dist/tests/titan-chatbot-ui/chatbot-message-answer-readonly.shared-tests.d.ts +8 -0
  87. package/dist/tests/titan-chatbot-ui/chatbot-message-answer-readonly.shared-tests.d.ts.map +1 -0
  88. package/dist/tests/titan-chatbot-ui/chatbot-message-answer-readonly.shared-tests.js +142 -0
  89. package/dist/tests/titan-chatbot-ui/chatbot-message-answer-readonly.shared-tests.js.map +1 -0
  90. package/dist/tests/titan-chatbot-ui/chatbot-message-answer.shared-tests.d.ts +8 -0
  91. package/dist/tests/titan-chatbot-ui/chatbot-message-answer.shared-tests.d.ts.map +1 -0
  92. package/dist/tests/titan-chatbot-ui/chatbot-message-answer.shared-tests.js +105 -0
  93. package/dist/tests/titan-chatbot-ui/chatbot-message-answer.shared-tests.js.map +1 -0
  94. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-form-guardrail.shared-tests.d.ts +3 -0
  95. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-form-guardrail.shared-tests.d.ts.map +1 -0
  96. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-form-guardrail.shared-tests.js +86 -0
  97. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-form-guardrail.shared-tests.js.map +1 -0
  98. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-form.shared-tests.d.ts +3 -0
  99. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-form.shared-tests.d.ts.map +1 -0
  100. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-form.shared-tests.js +143 -0
  101. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-form.shared-tests.js.map +1 -0
  102. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-popover.shared-tests.d.ts +8 -0
  103. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-popover.shared-tests.d.ts.map +1 -0
  104. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-popover.shared-tests.js +200 -0
  105. package/dist/tests/titan-chatbot-ui/chatbot-message-feedback-popover.shared-tests.js.map +1 -0
  106. package/dist/tests/titan-chatbot-ui/chatbot-message-typing.shared-tests.d.ts +11 -0
  107. package/dist/tests/titan-chatbot-ui/chatbot-message-typing.shared-tests.d.ts.map +1 -0
  108. package/dist/tests/titan-chatbot-ui/chatbot-message-typing.shared-tests.js +81 -0
  109. package/dist/tests/titan-chatbot-ui/chatbot-message-typing.shared-tests.js.map +1 -0
  110. package/dist/tests/titan-chatbot-ui/chatbot-restart-dialog.shared-tests.d.ts +8 -0
  111. package/dist/tests/titan-chatbot-ui/chatbot-restart-dialog.shared-tests.d.ts.map +1 -0
  112. package/dist/tests/titan-chatbot-ui/chatbot-restart-dialog.shared-tests.js +60 -0
  113. package/dist/tests/titan-chatbot-ui/chatbot-restart-dialog.shared-tests.js.map +1 -0
  114. package/dist/tests/titan-chatbot-ui/chatbot-restart-link.shared-tests.d.ts +8 -0
  115. package/dist/tests/titan-chatbot-ui/chatbot-restart-link.shared-tests.d.ts.map +1 -0
  116. package/dist/tests/titan-chatbot-ui/chatbot-restart-link.shared-tests.js +77 -0
  117. package/dist/tests/titan-chatbot-ui/chatbot-restart-link.shared-tests.js.map +1 -0
  118. package/dist/tests/titan-chatbot-ui/chatbot-session-feedback-modal.shared-tests.d.ts +7 -0
  119. package/dist/tests/titan-chatbot-ui/chatbot-session-feedback-modal.shared-tests.d.ts.map +1 -0
  120. package/dist/tests/titan-chatbot-ui/chatbot-session-feedback-modal.shared-tests.js +130 -0
  121. package/dist/tests/titan-chatbot-ui/chatbot-session-feedback-modal.shared-tests.js.map +1 -0
  122. package/dist/tests/titan-chatbot-ui/chatbot-titan-chatbot.shared-tests.d.ts +9 -0
  123. package/dist/tests/titan-chatbot-ui/chatbot-titan-chatbot.shared-tests.d.ts.map +1 -0
  124. package/dist/tests/titan-chatbot-ui/chatbot-titan-chatbot.shared-tests.js +157 -0
  125. package/dist/tests/titan-chatbot-ui/chatbot-titan-chatbot.shared-tests.js.map +1 -0
  126. package/dist/tests/titan-chatbot-ui/chatbot.shared-tests.d.ts +9 -0
  127. package/dist/tests/titan-chatbot-ui/chatbot.shared-tests.d.ts.map +1 -0
  128. package/dist/tests/titan-chatbot-ui/chatbot.shared-tests.js +114 -0
  129. package/dist/tests/titan-chatbot-ui/chatbot.shared-tests.js.map +1 -0
  130. package/dist/utils/chat-ui-selectors.d.ts +12 -0
  131. package/dist/utils/chat-ui-selectors.d.ts.map +1 -1
  132. package/dist/utils/chat-ui-selectors.js +24 -0
  133. package/dist/utils/chat-ui-selectors.js.map +1 -1
  134. package/dist/utils/test-utils-chatbot.d.ts +5 -0
  135. package/dist/utils/test-utils-chatbot.d.ts.map +1 -0
  136. package/dist/utils/test-utils-chatbot.js +55 -0
  137. package/dist/utils/test-utils-chatbot.js.map +1 -0
  138. package/dist/utils/test-utils.d.ts +6 -0
  139. package/dist/utils/test-utils.d.ts.map +1 -0
  140. package/dist/utils/test-utils.js +38 -0
  141. package/dist/utils/test-utils.js.map +1 -0
  142. package/package.json +10 -5
  143. package/src/index.ts +3 -0
  144. package/src/mocks/chatbot-api-client.mock.ts +0 -1
  145. package/src/tests/index.ts +30 -0
  146. package/src/tests/titan-chat-ui/chat-error.shared-tests.tsx +185 -0
  147. package/src/tests/titan-chat-ui/chat-input-file.shared-tests.tsx +182 -0
  148. package/src/tests/titan-chat-ui/chat-input.shared-tests.tsx +99 -0
  149. package/src/tests/titan-chat-ui/chat-log.shared-tests.tsx +117 -0
  150. package/src/tests/titan-chat-ui/chat-messages.shared-tests.tsx +156 -0
  151. package/src/tests/titan-chat-ui/chat-notifications.shared-tests.tsx +153 -0
  152. package/src/tests/titan-chat-ui/chat-timer.shared-tests.tsx +106 -0
  153. package/src/tests/titan-chat-ui/chat.shared-tests.tsx +158 -0
  154. package/src/tests/titan-chat-ui/message-agent.shared-tests.tsx +170 -0
  155. package/src/tests/titan-chat-ui/message-content-file.shared-tests.tsx +139 -0
  156. package/src/tests/titan-chat-ui/message-system.shared-tests.tsx +147 -0
  157. package/src/tests/titan-chat-ui/message-timeout.shared-tests.tsx +117 -0
  158. package/src/tests/titan-chat-ui/message-typing.shared-tests.tsx +92 -0
  159. package/src/tests/titan-chat-ui/message-user.shared-tests.tsx +138 -0
  160. package/src/tests/titan-chatbot-ui/chatbot-filters.shared-tests.tsx +164 -0
  161. package/src/tests/titan-chatbot-ui/chatbot-help-center.shared-tests.tsx +225 -0
  162. package/src/tests/titan-chatbot-ui/chatbot-links.shared-tests.tsx +189 -0
  163. package/src/tests/titan-chatbot-ui/chatbot-live.shared-tests.tsx +127 -0
  164. package/src/tests/titan-chatbot-ui/chatbot-message-answer-readonly.shared-tests.tsx +187 -0
  165. package/src/tests/titan-chatbot-ui/chatbot-message-answer.shared-tests.tsx +144 -0
  166. package/src/tests/titan-chatbot-ui/chatbot-message-feedback-form-guardrail.shared-tests.tsx +127 -0
  167. package/src/tests/titan-chatbot-ui/chatbot-message-feedback-form.shared-tests.tsx +198 -0
  168. package/src/tests/titan-chatbot-ui/chatbot-message-feedback-popover.shared-tests.tsx +285 -0
  169. package/src/tests/titan-chatbot-ui/chatbot-message-typing.shared-tests.tsx +112 -0
  170. package/src/tests/titan-chatbot-ui/chatbot-restart-dialog.shared-tests.tsx +91 -0
  171. package/src/tests/titan-chatbot-ui/chatbot-restart-link.shared-tests.tsx +116 -0
  172. package/src/tests/titan-chatbot-ui/chatbot-session-feedback-modal.shared-tests.tsx +182 -0
  173. package/src/tests/titan-chatbot-ui/chatbot-titan-chatbot.shared-tests.tsx +221 -0
  174. package/src/tests/titan-chatbot-ui/chatbot.shared-tests.tsx +158 -0
  175. package/src/utils/chat-ui-selectors.ts +24 -0
  176. package/src/utils/test-utils-chatbot.tsx +73 -0
  177. package/src/utils/test-utils.tsx +52 -0
  178. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { CHATBOT_API_CLIENT, CHATBOT_UI_STORE_TOKEN, ModelsMocks, } from '@servicetitan/titan-chatbot-api';
3
+ import { testInitContainerChatbot, testRenderWrapperChatbot } from '../..';
4
+ import { ChatUiSelectors } from '../../utils/chat-ui-selectors';
5
+ export function runChatbotFiltersSharedTests(ChatFiltersComponent, wrapperComponent) {
6
+ let container;
7
+ let api;
8
+ let chatbotUiStore;
9
+ const filter = (index) => ChatUiSelectors.chatbotFilterButton.eq(index);
10
+ const filterOptions = (index) => ChatUiSelectors.chatbotFilterOptions.then($options => ChatUiSelectors.chatbotFilterOptions.eq($options.length === 1 ? 0 : index));
11
+ const filterContent = (index) => {
12
+ const selector = `[data-cy="${ChatUiSelectors.cy.chatbotFilterContent}"], [data-anvil-component="Popover"]`;
13
+ return cy
14
+ .get(selector)
15
+ .then($options => cy.get(selector).eq($options.length === 1 ? 0 : index));
16
+ };
17
+ const mockApiClient = () => {
18
+ api.postSession = cy.stub().resolves(ModelsMocks.mockSession());
19
+ api.getOptions = cy.stub().resolves(ModelsMocks.mockFrontendModel());
20
+ };
21
+ beforeEach(() => {
22
+ container = testInitContainerChatbot();
23
+ api = container.get(CHATBOT_API_CLIENT);
24
+ chatbotUiStore = container.get(CHATBOT_UI_STORE_TOKEN);
25
+ mockApiClient();
26
+ cy.viewport(550, 800);
27
+ });
28
+ const render = (className, onAfterInit) => {
29
+ return cy.wrap(null).then(() => {
30
+ const component = (_jsx("div", { style: {
31
+ position: 'absolute',
32
+ bottom: '2rem',
33
+ left: '2rem',
34
+ width: 'calc(100% - 4rem)',
35
+ }, children: _jsx(ChatFiltersComponent, { className: className }) }));
36
+ const wrappedComponent = wrapperComponent ? wrapperComponent(component) : component;
37
+ return testRenderWrapperChatbot(container, wrappedComponent, onAfterInit);
38
+ });
39
+ };
40
+ it('should render filters container when filters are available', () => {
41
+ render().then(() => {
42
+ chatbotUiStore.setFilters(ModelsMocks.mockFrontendModel());
43
+ });
44
+ ChatUiSelectors.chatbotFilters.should('be.visible');
45
+ ChatUiSelectors.chatbotFilterButton.should('have.length', 1);
46
+ });
47
+ it('should not render anything when no filters are available', () => {
48
+ render().then(() => {
49
+ chatbotUiStore.setFilters(ModelsMocks.mockFrontendModelEmpty());
50
+ });
51
+ ChatUiSelectors.chatbotFilters.should('not.exist');
52
+ });
53
+ it('should apply custom className to filters container', () => {
54
+ const customClass = 'custom-filters-class';
55
+ render(customClass).then(() => {
56
+ chatbotUiStore.setFilters(ModelsMocks.mockFrontendModel());
57
+ });
58
+ ChatUiSelectors.chatbotFilters.should('have.class', customClass);
59
+ });
60
+ it('should cascade filters 1', () => {
61
+ render().then(() => {
62
+ chatbotUiStore.setFilters(ModelsMocks.mockFrontendModel());
63
+ });
64
+ filter(0).click();
65
+ filterOptions(0).within(() => {
66
+ cy.contains('Knowledge Base').should('be.visible');
67
+ cy.contains('Jarvis').should('be.visible').click();
68
+ });
69
+ ChatUiSelectors.chatbotFilterButton.should('have.length', 2);
70
+ filter(0).should('contain.text', 'Sources');
71
+ filter(1).should('contain.text', 'Content Types').click();
72
+ filterOptions(1).within(() => {
73
+ cy.contains('Xxx').should('be.visible').click();
74
+ cy.contains('Yyy').should('be.visible').click();
75
+ cy.contains('Release Notes').should('be.visible').click();
76
+ });
77
+ ChatUiSelectors.chatbotFilterButton.should('have.length', 2);
78
+ filter(0).should('contain.text', 'Sources1');
79
+ filter(1).should('contain.text', 'Content Types3');
80
+ });
81
+ it('should cascade filters 2', () => {
82
+ render().then(() => {
83
+ chatbotUiStore.setFilters(ModelsMocks.mockFrontendModel());
84
+ });
85
+ filter(0).click();
86
+ filterOptions(0).within(() => {
87
+ cy.contains('Knowledge Base').should('be.visible').click();
88
+ cy.contains('Jarvis').should('be.visible').click();
89
+ });
90
+ ChatUiSelectors.chatbotFilterButton.should('have.length', 3);
91
+ filter(0).should('contain.text', 'Sources');
92
+ filter(1).should('contain.text', 'Content Types').click();
93
+ filter(2).should('contain.text', 'Product Areas');
94
+ filterOptions(1).within(() => {
95
+ cy.contains('Xxx').should('be.visible').click();
96
+ cy.contains('Yyy').should('be.visible').click();
97
+ cy.contains('FAQ').should('be.visible').click();
98
+ cy.contains('How To').should('be.visible').click();
99
+ cy.contains('Release Notes').should('be.visible').click();
100
+ });
101
+ filter(2).should('contain.text', 'Product Areas').click();
102
+ filterOptions(2).within(() => {
103
+ cy.contains('Call Booking').should('be.visible').click();
104
+ cy.contains('Marketing').should('be.visible').click();
105
+ cy.contains('Marketing Pro').should('be.visible').click();
106
+ });
107
+ ChatUiSelectors.chatbotFilterButton.should('have.length', 3);
108
+ filter(0).should('contain.text', 'Sources2');
109
+ filter(1).should('contain.text', 'Content Types5');
110
+ filter(2).should('contain.text', 'Product Areas3');
111
+ filter(0).click();
112
+ filterContent(0).within(() => {
113
+ ChatUiSelectors.chatbotFilterNone.click();
114
+ });
115
+ ChatUiSelectors.chatbotFilterButton.should('have.length', 1);
116
+ });
117
+ }
118
+ //# sourceMappingURL=chatbot-filters.shared-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-filters.shared-tests.js","sourceRoot":"","sources":["../../../src/tests/titan-chatbot-ui/chatbot-filters.shared-tests.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ChatbotCustomizations } from '@servicetitan/titan-chatbot-api';
2
+ import { FC, ReactElement } from 'react';
3
+ interface IChatbotProps {
4
+ className?: string;
5
+ customizations?: ChatbotCustomizations;
6
+ }
7
+ export declare function runChatbotHelpCenterSharedTests(ChatbotComponent: FC<IChatbotProps>, wrapperComponent?: (component: ReactElement) => ReactElement): void;
8
+ export {};
9
+ //# sourceMappingURL=chatbot-help-center.shared-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-help-center.shared-tests.d.ts","sourceRoot":"","sources":["../../../src/tests/titan-chatbot-ui/chatbot-help-center.shared-tests.tsx"],"names":[],"mappings":"AAEA,OAAO,EAMH,qBAAqB,EAOxB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAoClD,UAAU,aAAa;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,wBAAgB,+BAA+B,CAC3C,gBAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,EACnC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,KAAK,YAAY,QAmK/D"}
@@ -0,0 +1,162 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Log } from '@servicetitan/log-service';
3
+ import { Container, Provider } from '@servicetitan/react-ioc';
4
+ import { ApiClientHelpCenter, CHATBOT_API_CLIENT, CHATBOT_CLIENT_SETTINGS, CHATBOT_UI_BACKEND_STORE_TOKEN, CHATBOT_UI_STORE_TOKEN, ChatbotUiBackendStore, ChatbotUiStore, Models, } from '@servicetitan/titan-chatbot-api';
5
+ import axios from 'axios';
6
+ import { mount } from 'cypress/react';
7
+ import { useMemo } from 'react';
8
+ import { CypressMocks } from '../..';
9
+ import { ChatUiSelectors } from '../../utils/chat-ui-selectors';
10
+ const ChatbotBaseUrl = 'https://chatbot-api.example.com/base/url';
11
+ const initializeHelpCenterChatbotContainer = () => {
12
+ const rootContainer = new Container();
13
+ const container = new Container();
14
+ container.parent = rootContainer;
15
+ container.bind(Log).to(CypressMocks.LogMock).inSingletonScope();
16
+ container.bind(CHATBOT_UI_STORE_TOKEN).to(ChatbotUiStore).inSingletonScope();
17
+ container
18
+ .bind(CHATBOT_UI_BACKEND_STORE_TOKEN)
19
+ .to(ChatbotUiBackendStore)
20
+ .inSingletonScope();
21
+ // Set up Helpcenter API client
22
+ const clientSettings = {
23
+ area: 'FloatingChat',
24
+ instance: 'STapp',
25
+ constructorParametersFactory: () => ({
26
+ baseUrl: ChatbotBaseUrl,
27
+ axiosInstance: axios.create(),
28
+ }),
29
+ };
30
+ container
31
+ .bind(CHATBOT_CLIENT_SETTINGS)
32
+ .toConstantValue(clientSettings);
33
+ container
34
+ .bind(CHATBOT_API_CLIENT)
35
+ .to(ApiClientHelpCenter.ChatbotApiClient)
36
+ .inSingletonScope();
37
+ return container;
38
+ };
39
+ export function runChatbotHelpCenterSharedTests(ChatbotComponent, wrapperComponent) {
40
+ let container;
41
+ let log;
42
+ let apiClientSettings;
43
+ let apiClient;
44
+ let uiStore;
45
+ let uiBackendStore;
46
+ beforeEach(() => {
47
+ container = initializeHelpCenterChatbotContainer();
48
+ log = container.get(Log);
49
+ apiClientSettings =
50
+ container.get(CHATBOT_CLIENT_SETTINGS);
51
+ apiClient = container.get(CHATBOT_API_CLIENT);
52
+ uiStore = container.get(CHATBOT_UI_STORE_TOKEN);
53
+ uiBackendStore = container.get(CHATBOT_UI_BACKEND_STORE_TOKEN);
54
+ cy.viewport(550, 800);
55
+ cy.clock(Date.parse('2023-10-01T00:00:00Z'));
56
+ });
57
+ const render = () => {
58
+ const ChatbotWrapper = () => {
59
+ const customizationContext = useMemo(() => ({
60
+ filters: { enabled: true },
61
+ feedback: { title: 'TITLE' },
62
+ }), []);
63
+ const component = (_jsx(ChatbotComponent, { className: "h-100vh max-h-100vh of-x-hidden", customizations: customizationContext }));
64
+ const wrappedComponent = wrapperComponent ? wrapperComponent(component) : component;
65
+ return (_jsx(Provider, { singletons: [
66
+ {
67
+ provide: Log,
68
+ useValue: log,
69
+ },
70
+ {
71
+ provide: CHATBOT_CLIENT_SETTINGS,
72
+ useValue: apiClientSettings,
73
+ },
74
+ { provide: CHATBOT_API_CLIENT, useValue: apiClient },
75
+ {
76
+ provide: CHATBOT_UI_STORE_TOKEN,
77
+ useValue: uiStore,
78
+ },
79
+ {
80
+ provide: CHATBOT_UI_BACKEND_STORE_TOKEN,
81
+ useValue: uiBackendStore,
82
+ },
83
+ ], children: wrappedComponent }));
84
+ };
85
+ cy.spy(uiStore, 'run').as('runSpy');
86
+ mount(_jsx(ChatbotWrapper, {}));
87
+ return cy.wrap(new Promise(resolve => {
88
+ cy.get('@runSpy')
89
+ .should('have.been.calledOnce')
90
+ .then((invocation) => {
91
+ const initPromise = invocation.firstCall.returnValue;
92
+ initPromise.then(resolve);
93
+ });
94
+ }));
95
+ };
96
+ it('should render the chatbot with help center API', () => {
97
+ const sessionMock = CypressMocks.HC.CreateSession;
98
+ const messageMock = CypressMocks.HC.SendUserMessage;
99
+ const messageFeedbackMock = CypressMocks.HC.MessageFeedback;
100
+ const sessionFeedbackMock = CypressMocks.HC.SessionFeedback;
101
+ const aliasFilterOptions = CypressMocks.HC.interceptFilterOptions(ChatbotBaseUrl);
102
+ const aliasCreateSession = sessionMock.intercept(ChatbotBaseUrl);
103
+ const aliasSendUserMessage = messageMock.intercept(ChatbotBaseUrl);
104
+ const aliasMessageFeedback = messageFeedbackMock.intercept(ChatbotBaseUrl);
105
+ const aliasSessionFeedback = sessionFeedbackMock.intercept(ChatbotBaseUrl);
106
+ render().then(() => {
107
+ // Expect filters were loaded using the Help Center API
108
+ cy.wait(aliasFilterOptions).then(interception => {
109
+ var _a, _b, _c, _d, _e, _f, _g, _h;
110
+ // Check options were loaded correctly
111
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/filter-options`);
112
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.an('object');
113
+ expect((_c = (_b = interception.response) === null || _b === void 0 ? void 0 : _b.body) === null || _c === void 0 ? void 0 : _c.sources).to.an('array');
114
+ expect((_e = (_d = interception.response) === null || _d === void 0 ? void 0 : _d.body) === null || _e === void 0 ? void 0 : _e.contentTypes).to.an('array');
115
+ expect((_g = (_f = interception.response) === null || _f === void 0 ? void 0 : _f.body) === null || _g === void 0 ? void 0 : _g.productAreas).to.an('array');
116
+ expect((_h = interception.response) === null || _h === void 0 ? void 0 : _h.statusCode).to.equal(200);
117
+ });
118
+ // Ask the bot a question
119
+ cy.log('Sending message...');
120
+ ChatUiSelectors.chatInput.type(`${messageMock.request.text}{enter}`, { delay: 0 });
121
+ // Check that the session was created
122
+ cy.wait(aliasCreateSession).then(interception => {
123
+ var _a, _b;
124
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/create-session`);
125
+ expect(interception.request.body).to.deep.equal(sessionMock.request);
126
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.deep.equal(sessionMock.response);
127
+ expect((_b = interception.response) === null || _b === void 0 ? void 0 : _b.statusCode).to.equal(200);
128
+ });
129
+ // Check the user message is sent
130
+ cy.wait(aliasSendUserMessage).then(interception => {
131
+ var _a, _b;
132
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/user-message`);
133
+ expect(interception.request.body).to.deep.equal(messageMock.request);
134
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.deep.equal(messageMock.response);
135
+ expect((_b = interception.response) === null || _b === void 0 ? void 0 : _b.statusCode).to.equal(200);
136
+ });
137
+ // Send session feedback (manually)
138
+ cy.log('Sending session feedback...');
139
+ uiStore.sendSessionFeedback(new Models.Feedback({
140
+ sessionId: sessionMock.response.id,
141
+ description: 'Good answer!',
142
+ rating: Models.FeedbackRatings.ThumbsUp,
143
+ }));
144
+ cy.wait(aliasSessionFeedback).then(interception => {
145
+ var _a;
146
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/session-feedback?sessionId=${sessionMock.response.id}`);
147
+ expect(interception.request.body).to.deep.equal(sessionFeedbackMock.request);
148
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.statusCode).to.equal(200);
149
+ });
150
+ // Check the feedback is sent with thumbs up
151
+ cy.log('Sending message feedback...');
152
+ ChatUiSelectors.chatbotMessageFeedbackThumbsUp.scrollIntoView().click({ force: true });
153
+ cy.wait(aliasMessageFeedback).then(interception => {
154
+ var _a;
155
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/bot-message-feedback?sessionId=${messageMock.response.sessionId}&botMessageId=${messageMock.response.id}`);
156
+ expect(interception.request.body).to.deep.equal(messageFeedbackMock.request);
157
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.statusCode).to.equal(200);
158
+ });
159
+ });
160
+ });
161
+ }
162
+ //# sourceMappingURL=chatbot-help-center.shared-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-help-center.shared-tests.js","sourceRoot":"","sources":["../../../src/tests/titan-chatbot-ui/chatbot-help-center.shared-tests.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Models } from '@servicetitan/titan-chatbot-api';
2
+ import { FC, ReactElement } from 'react';
3
+ interface IChatbotLinksProps {
4
+ seeMoreLabel?: string;
5
+ seeLessLabel?: string;
6
+ links?: Models.ScoredUrl[];
7
+ onToggle?: () => void;
8
+ linkProps?: {
9
+ primary?: boolean;
10
+ className?: string;
11
+ };
12
+ }
13
+ export declare function runChatbotLinksSharedTests(ChatbotLinksComponent: FC<IChatbotLinksProps>, wrapperComponent?: (component: ReactElement) => ReactElement): void;
14
+ export {};
15
+ //# sourceMappingURL=chatbot-links.shared-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-links.shared-tests.d.ts","sourceRoot":"","sources":["../../../src/tests/titan-chatbot-ui/chatbot-links.shared-tests.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsB,MAAM,EAAe,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIzC,UAAU,kBAAkB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACL;AAED,wBAAgB,0BAA0B,CACtC,qBAAqB,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAC7C,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,KAAK,YAAY,QAyK/D"}
@@ -0,0 +1,123 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { CHATBOT_API_CLIENT, ModelsMocks } from '@servicetitan/titan-chatbot-api';
3
+ import { testInitContainerChatbot, testRenderWrapperChatbot } from '../..';
4
+ import { ChatUiSelectors } from '../../utils/chat-ui-selectors';
5
+ export function runChatbotLinksSharedTests(ChatbotLinksComponent, wrapperComponent) {
6
+ let container;
7
+ let api;
8
+ const mockApiClient = () => {
9
+ api.postSession = cy.stub().resolves(ModelsMocks.mockSession());
10
+ api.getOptions = cy.stub().resolves(ModelsMocks.mockFrontendModel());
11
+ };
12
+ beforeEach(() => {
13
+ container = testInitContainerChatbot();
14
+ api = container.get(CHATBOT_API_CLIENT);
15
+ mockApiClient();
16
+ cy.viewport(550, 800);
17
+ });
18
+ const render = (props = {}, onAfterInit) => {
19
+ const defaultProps = {
20
+ seeMoreLabel: 'See more',
21
+ seeLessLabel: 'See less',
22
+ links: ModelsMocks.mockScoredUrls(),
23
+ ...props,
24
+ };
25
+ return cy.wrap(null).then(() => {
26
+ const component = _jsx(ChatbotLinksComponent, { ...defaultProps });
27
+ const wrappedComponent = wrapperComponent ? wrapperComponent(component) : component;
28
+ return testRenderWrapperChatbot(container, wrappedComponent, onAfterInit);
29
+ });
30
+ };
31
+ it('should render component with links when links are provided', () => {
32
+ render();
33
+ ChatUiSelectors.chatbotLinksMore.should('be.visible');
34
+ ChatUiSelectors.chatbotLinksMore.should('contain.text', 'See more');
35
+ ChatUiSelectors.chatbotLinksLink.should('not.be.visible');
36
+ });
37
+ it('should not render anything when no links are provided', () => {
38
+ render({ links: [] });
39
+ ChatUiSelectors.chatbotLinksMore.should('not.exist');
40
+ ChatUiSelectors.chatbotLinksCollapsible.should('not.exist');
41
+ });
42
+ it('should toggle collapsible when clicking the toggle button', () => {
43
+ render();
44
+ // Initially collapsed
45
+ ChatUiSelectors.chatbotLinksMore.should('contain.text', 'See more');
46
+ ChatUiSelectors.chatbotLinksLink.should('not.be.visible');
47
+ // Click to expand
48
+ ChatUiSelectors.chatbotLinksMore.click();
49
+ ChatUiSelectors.chatbotLinksMore.should('contain.text', 'See less');
50
+ ChatUiSelectors.chatbotLinksLink.should('be.visible');
51
+ // Click to collapse
52
+ ChatUiSelectors.chatbotLinksMore.click();
53
+ ChatUiSelectors.chatbotLinksMore.should('contain.text', 'See more');
54
+ ChatUiSelectors.chatbotLinksLink.should('not.be.visible');
55
+ });
56
+ it('should render all links when expanded', () => {
57
+ const testLinks = [
58
+ ModelsMocks.mockScoredUrl({ url: 'https://test1.com', title: 'Test Link 1' }),
59
+ ModelsMocks.mockScoredUrl({ url: 'https://test2.com', title: 'Test Link 2' }),
60
+ ModelsMocks.mockScoredUrl({ url: 'https://test3.com', title: 'Test Link 3' }),
61
+ ];
62
+ render({ links: testLinks });
63
+ // Expand the links
64
+ ChatUiSelectors.chatbotLinksMore.click();
65
+ // Check that all links are rendered
66
+ ChatUiSelectors.chatbotLinksLink.should('have.length', 3);
67
+ ChatUiSelectors.chatbotLinksLink.eq(0).should('contain.text', 'Test Link 1');
68
+ ChatUiSelectors.chatbotLinksLink.eq(1).should('contain.text', 'Test Link 2');
69
+ ChatUiSelectors.chatbotLinksLink.eq(2).should('contain.text', 'Test Link 3');
70
+ });
71
+ it('should render link with url as text when title is not provided', () => {
72
+ const testLinks = [
73
+ ModelsMocks.mockScoredUrl({ url: 'https://test-no-title.com', title: undefined }),
74
+ ];
75
+ render({ links: testLinks });
76
+ // Expand the links
77
+ ChatUiSelectors.chatbotLinksMore.click();
78
+ ChatUiSelectors.chatbotLinksLink.should('contain.text', 'https://test-no-title.com');
79
+ });
80
+ it('should set correct href and target attributes on links', () => {
81
+ const testLinks = [
82
+ ModelsMocks.mockScoredUrl({ url: 'https://external-link.com', title: 'External Link' }),
83
+ ];
84
+ render({ links: testLinks });
85
+ // Expand the links
86
+ ChatUiSelectors.chatbotLinksMore.click();
87
+ ChatUiSelectors.chatbotLinksLink
88
+ .should('have.attr', 'href', 'https://external-link.com')
89
+ .and('have.attr', 'target', '_blank');
90
+ });
91
+ it('should call onToggle callback with delay when toggling', () => {
92
+ const onToggleSpy = cy.stub().as('onToggle');
93
+ render({ onToggle: onToggleSpy });
94
+ ChatUiSelectors.chatbotLinksMore.click();
95
+ // Callback should not be called immediately
96
+ cy.get('@onToggle').should('not.have.been.called');
97
+ // Wait for the 200ms delay
98
+ cy.wait(250);
99
+ cy.get('@onToggle').should('have.been.calledOnce');
100
+ });
101
+ it('should use custom labels when provided', () => {
102
+ render({
103
+ seeMoreLabel: 'Show links',
104
+ seeLessLabel: 'Hide links',
105
+ });
106
+ ChatUiSelectors.chatbotLinksMore.should('contain.text', 'Show links');
107
+ ChatUiSelectors.chatbotLinksMore.click();
108
+ ChatUiSelectors.chatbotLinksMore.should('contain.text', 'Hide links');
109
+ });
110
+ it('should apply custom link props when provided', () => {
111
+ const testLinks = [ModelsMocks.mockScoredUrl({ url: 'https://test.com', title: 'Test' })];
112
+ render({
113
+ links: testLinks,
114
+ linkProps: {
115
+ className: 'custom-link-class',
116
+ },
117
+ });
118
+ // Expand the links
119
+ ChatUiSelectors.chatbotLinksMore.click();
120
+ ChatUiSelectors.chatbotLinksLink.should('have.class', 'custom-link-class');
121
+ });
122
+ }
123
+ //# sourceMappingURL=chatbot-links.shared-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-links.shared-tests.js","sourceRoot":"","sources":["../../../src/tests/titan-chatbot-ui/chatbot-links.shared-tests.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ChatbotCustomizations } from '@servicetitan/titan-chatbot-api';
2
+ import { FC, ReactElement } from 'react';
3
+ interface IChatbotProps {
4
+ className?: string;
5
+ customizations?: ChatbotCustomizations;
6
+ }
7
+ export declare function runChatbotLiveSharedTests(ChatbotComponent: FC<IChatbotProps>, wrapperComponent?: (component: ReactElement) => ReactElement): void;
8
+ export {};
9
+ //# sourceMappingURL=chatbot-live.shared-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-live.shared-tests.d.ts","sourceRoot":"","sources":["../../../src/tests/titan-chatbot-ui/chatbot-live.shared-tests.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIH,qBAAqB,EAKxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAW,MAAM,OAAO,CAAC;AAIlD,UAAU,aAAa;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,wBAAgB,yBAAyB,CACrC,gBAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,EACnC,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,KAAK,YAAY,QAsG/D"}
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Log } from '@servicetitan/log-service';
3
+ import { Provider } from '@servicetitan/react-ioc';
4
+ import { CHATBOT_API_CLIENT, CHATBOT_UI_BACKEND_STORE_TOKEN, CHATBOT_UI_STORE_TOKEN, Models, ModelsMocks, } from '@servicetitan/titan-chatbot-api';
5
+ import { mount } from 'cypress/react';
6
+ import { useMemo } from 'react';
7
+ import { testInitContainerChatbot } from '../..';
8
+ import { ChatUiSelectors } from '../../utils/chat-ui-selectors';
9
+ export function runChatbotLiveSharedTests(ChatbotComponent, wrapperComponent) {
10
+ let container;
11
+ let log;
12
+ let api;
13
+ let uiStore;
14
+ let uiBackendStore;
15
+ const mockApi = () => {
16
+ api.postSession = cy.stub().resolves(ModelsMocks.mockSession());
17
+ api.getOptions = cy.stub().resolves(ModelsMocks.mockFrontendModel());
18
+ };
19
+ beforeEach(() => {
20
+ cy.intercept('GET', 'https://fonts.gstatic.com/**', {
21
+ statusCode: 200,
22
+ body: new ArrayBuffer(0),
23
+ headers: {
24
+ 'Content-Type': 'font/woff2',
25
+ 'Cache-Control': 'no-cache, no-store, must-revalidate',
26
+ },
27
+ });
28
+ container = testInitContainerChatbot();
29
+ log = container.get(Log);
30
+ api = container.get(CHATBOT_API_CLIENT);
31
+ uiStore = container.get(CHATBOT_UI_STORE_TOKEN);
32
+ uiBackendStore = container.get(CHATBOT_UI_BACKEND_STORE_TOKEN);
33
+ mockApi();
34
+ cy.viewport(550, 800);
35
+ });
36
+ const mockAskBotApi = (answer) => {
37
+ api.postMessage = cy.stub().as('askBot').resolves(ModelsMocks.mockBotMessage({
38
+ answer,
39
+ }));
40
+ api.postFeedback = cy
41
+ .stub()
42
+ .as('askBotFeedback')
43
+ .resolves(ModelsMocks.mockFeedback({
44
+ rating: Models.FeedbackRatings.ThumbsUp,
45
+ }));
46
+ };
47
+ const render = () => {
48
+ const ChatbotWrapper = () => {
49
+ const customizationContext = useMemo(() => ({
50
+ filters: { enabled: true },
51
+ feedback: { title: 'TITLE' },
52
+ }), []);
53
+ const component = (_jsx(ChatbotComponent, { className: "h-100vh max-h-100vh of-x-hidden", customizations: customizationContext }));
54
+ const wrappedComponent = wrapperComponent ? wrapperComponent(component) : component;
55
+ return (_jsx(Provider, { singletons: [
56
+ {
57
+ provide: Log,
58
+ useValue: log,
59
+ },
60
+ { provide: CHATBOT_API_CLIENT, useValue: api },
61
+ {
62
+ provide: CHATBOT_UI_STORE_TOKEN,
63
+ useValue: uiStore,
64
+ },
65
+ {
66
+ provide: CHATBOT_UI_BACKEND_STORE_TOKEN,
67
+ useValue: uiBackendStore,
68
+ },
69
+ ], children: wrappedComponent }));
70
+ };
71
+ mount(_jsx(ChatbotWrapper, {}));
72
+ };
73
+ const ask = (message) => {
74
+ ChatUiSelectors.chatInput.type(`${message}{enter}`, { delay: 0 });
75
+ };
76
+ it.skip('should render the chatbot component', () => {
77
+ mockAskBotApi("Hello! I'm chatbot mocked response!!!");
78
+ render();
79
+ ask('Hello!');
80
+ ChatUiSelectors.chatbotMessageFeedbackThumbsUp.should('be.visible').click();
81
+ cy.get('@askBotFeedback').should('have.been.calledOnce');
82
+ });
83
+ }
84
+ //# sourceMappingURL=chatbot-live.shared-tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-live.shared-tests.js","sourceRoot":"","sources":["../../../src/tests/titan-chatbot-ui/chatbot-live.shared-tests.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ChatMessageModelText } from '@servicetitan/titan-chat-ui-common';
2
+ import { FC, ReactElement } from 'react';
3
+ interface IChatbotMessageAnswerReadonlyProps {
4
+ message: ChatMessageModelText;
5
+ }
6
+ export declare function runChatbotMessageAnswerReadonlySharedTests(ChatbotMessageAnswerReadonlyComponent: FC<IChatbotMessageAnswerReadonlyProps>, wrapperComponent?: (component: ReactElement) => ReactElement): void;
7
+ export {};
8
+ //# sourceMappingURL=chatbot-message-answer-readonly.shared-tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-message-answer-readonly.shared-tests.d.ts","sourceRoot":"","sources":["../../../src/tests/titan-chatbot-ui/chatbot-message-answer-readonly.shared-tests.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAA4B,MAAM,oCAAoC,CAAC;AAEpG,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIzC,UAAU,kCAAkC;IACxC,OAAO,EAAE,oBAAoB,CAAC;CACjC;AAED,wBAAgB,0CAA0C,CACtD,qCAAqC,EAAE,EAAE,CAAC,kCAAkC,CAAC,EAC7E,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,KAAK,YAAY,QA6K/D"}