@servicetitan/titan-chatbot-ui 3.0.0

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 (226) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/README.md +15 -0
  3. package/dist/components/chatbot/__tests-cy__/chatbot-help-center.test.d.ts +2 -0
  4. package/dist/components/chatbot/__tests-cy__/chatbot-help-center.test.d.ts.map +1 -0
  5. package/dist/components/chatbot/__tests-cy__/chatbot-help-center.test.js +160 -0
  6. package/dist/components/chatbot/__tests-cy__/chatbot-help-center.test.js.map +1 -0
  7. package/dist/components/chatbot/__tests-cy__/chatbot-live.test.d.ts +2 -0
  8. package/dist/components/chatbot/__tests-cy__/chatbot-live.test.d.ts.map +1 -0
  9. package/dist/components/chatbot/__tests-cy__/chatbot-live.test.js +90 -0
  10. package/dist/components/chatbot/__tests-cy__/chatbot-live.test.js.map +1 -0
  11. package/dist/components/chatbot/__tests-cy__/chatbot-titan-chatbot.test.d.ts +2 -0
  12. package/dist/components/chatbot/__tests-cy__/chatbot-titan-chatbot.test.d.ts.map +1 -0
  13. package/dist/components/chatbot/__tests-cy__/chatbot-titan-chatbot.test.js +155 -0
  14. package/dist/components/chatbot/__tests-cy__/chatbot-titan-chatbot.test.js.map +1 -0
  15. package/dist/components/chatbot/__tests-cy__/chatbot.test.d.ts +2 -0
  16. package/dist/components/chatbot/__tests-cy__/chatbot.test.d.ts.map +1 -0
  17. package/dist/components/chatbot/__tests-cy__/chatbot.test.js +139 -0
  18. package/dist/components/chatbot/__tests-cy__/chatbot.test.js.map +1 -0
  19. package/dist/components/chatbot/chatbot-to-chat-provider-adapter.d.ts +6 -0
  20. package/dist/components/chatbot/chatbot-to-chat-provider-adapter.d.ts.map +1 -0
  21. package/dist/components/chatbot/chatbot-to-chat-provider-adapter.js +21 -0
  22. package/dist/components/chatbot/chatbot-to-chat-provider-adapter.js.map +1 -0
  23. package/dist/components/chatbot/chatbot.d.ts +9 -0
  24. package/dist/components/chatbot/chatbot.d.ts.map +1 -0
  25. package/dist/components/chatbot/chatbot.js +68 -0
  26. package/dist/components/chatbot/chatbot.js.map +1 -0
  27. package/dist/components/chatbot/dialog/chatbot-restart-dialog.d.ts +6 -0
  28. package/dist/components/chatbot/dialog/chatbot-restart-dialog.d.ts.map +1 -0
  29. package/dist/components/chatbot/dialog/chatbot-restart-dialog.js +20 -0
  30. package/dist/components/chatbot/dialog/chatbot-restart-dialog.js.map +1 -0
  31. package/dist/components/chatbot/dialog/chatbot-restart-link.d.ts +4 -0
  32. package/dist/components/chatbot/dialog/chatbot-restart-link.d.ts.map +1 -0
  33. package/dist/components/chatbot/dialog/chatbot-restart-link.js +13 -0
  34. package/dist/components/chatbot/dialog/chatbot-restart-link.js.map +1 -0
  35. package/dist/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form-guardrail.test.d.ts +2 -0
  36. package/dist/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form-guardrail.test.d.ts.map +1 -0
  37. package/dist/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form-guardrail.test.js +65 -0
  38. package/dist/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form-guardrail.test.js.map +1 -0
  39. package/dist/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form.test.d.ts +2 -0
  40. package/dist/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form.test.d.ts.map +1 -0
  41. package/dist/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form.test.js +100 -0
  42. package/dist/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form.test.js.map +1 -0
  43. package/dist/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.d.ts +3 -0
  44. package/dist/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.d.ts.map +1 -0
  45. package/dist/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.js +13 -0
  46. package/dist/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.js.map +1 -0
  47. package/dist/components/chatbot/feedback/chatbot-message-feedback-form.d.ts +3 -0
  48. package/dist/components/chatbot/feedback/chatbot-message-feedback-form.d.ts.map +1 -0
  49. package/dist/components/chatbot/feedback/chatbot-message-feedback-form.js +12 -0
  50. package/dist/components/chatbot/feedback/chatbot-message-feedback-form.js.map +1 -0
  51. package/dist/components/chatbot/feedback/chatbot-message-feedback-form.module.less +15 -0
  52. package/dist/components/chatbot/feedback/chatbot-message-feedback-popover.d.ts +9 -0
  53. package/dist/components/chatbot/feedback/chatbot-message-feedback-popover.d.ts.map +1 -0
  54. package/dist/components/chatbot/feedback/chatbot-message-feedback-popover.js +60 -0
  55. package/dist/components/chatbot/feedback/chatbot-message-feedback-popover.js.map +1 -0
  56. package/dist/components/chatbot/feedback/chatbot-message-feedback-popover.module.less +10 -0
  57. package/dist/components/chatbot/feedback/chatbot-message-feedback.d.ts +9 -0
  58. package/dist/components/chatbot/feedback/chatbot-message-feedback.d.ts.map +1 -0
  59. package/dist/components/chatbot/feedback/chatbot-message-feedback.js +17 -0
  60. package/dist/components/chatbot/feedback/chatbot-message-feedback.js.map +1 -0
  61. package/dist/components/chatbot/feedback/chatbot-session-feedback-link.d.ts +4 -0
  62. package/dist/components/chatbot/feedback/chatbot-session-feedback-link.d.ts.map +1 -0
  63. package/dist/components/chatbot/feedback/chatbot-session-feedback-link.js +16 -0
  64. package/dist/components/chatbot/feedback/chatbot-session-feedback-link.js.map +1 -0
  65. package/dist/components/chatbot/feedback/chatbot-session-feedback-modal.d.ts +5 -0
  66. package/dist/components/chatbot/feedback/chatbot-session-feedback-modal.d.ts.map +1 -0
  67. package/dist/components/chatbot/feedback/chatbot-session-feedback-modal.js +24 -0
  68. package/dist/components/chatbot/feedback/chatbot-session-feedback-modal.js.map +1 -0
  69. package/dist/components/chatbot/filters/chatbot-filter.d.ts +8 -0
  70. package/dist/components/chatbot/filters/chatbot-filter.d.ts.map +1 -0
  71. package/dist/components/chatbot/filters/chatbot-filter.js +61 -0
  72. package/dist/components/chatbot/filters/chatbot-filter.js.map +1 -0
  73. package/dist/components/chatbot/filters/chatbot-filter.module.css +19 -0
  74. package/dist/components/chatbot/filters/chatbot-filters.d.ts +5 -0
  75. package/dist/components/chatbot/filters/chatbot-filters.d.ts.map +1 -0
  76. package/dist/components/chatbot/filters/chatbot-filters.js +11 -0
  77. package/dist/components/chatbot/filters/chatbot-filters.js.map +1 -0
  78. package/dist/components/chatbot/messages/__tests-cy__/chatbot-message-answer.test.d.ts +2 -0
  79. package/dist/components/chatbot/messages/__tests-cy__/chatbot-message-answer.test.d.ts.map +1 -0
  80. package/dist/components/chatbot/messages/__tests-cy__/chatbot-message-answer.test.js +85 -0
  81. package/dist/components/chatbot/messages/__tests-cy__/chatbot-message-answer.test.js.map +1 -0
  82. package/dist/components/chatbot/messages/__tests-cy__/chatbot-message-typing.test.d.ts +2 -0
  83. package/dist/components/chatbot/messages/__tests-cy__/chatbot-message-typing.test.d.ts.map +1 -0
  84. package/dist/components/chatbot/messages/__tests-cy__/chatbot-message-typing.test.js +57 -0
  85. package/dist/components/chatbot/messages/__tests-cy__/chatbot-message-typing.test.js.map +1 -0
  86. package/dist/components/chatbot/messages/chatbot-links.d.ts +15 -0
  87. package/dist/components/chatbot/messages/chatbot-links.d.ts.map +1 -0
  88. package/dist/components/chatbot/messages/chatbot-links.js +21 -0
  89. package/dist/components/chatbot/messages/chatbot-links.js.map +1 -0
  90. package/dist/components/chatbot/messages/chatbot-links.module.less +22 -0
  91. package/dist/components/chatbot/messages/chatbot-message-agent-footer.d.ts +8 -0
  92. package/dist/components/chatbot/messages/chatbot-message-agent-footer.d.ts.map +1 -0
  93. package/dist/components/chatbot/messages/chatbot-message-agent-footer.js +13 -0
  94. package/dist/components/chatbot/messages/chatbot-message-agent-footer.js.map +1 -0
  95. package/dist/components/chatbot/messages/chatbot-message-answer-readonly.d.ts +6 -0
  96. package/dist/components/chatbot/messages/chatbot-message-answer-readonly.d.ts.map +1 -0
  97. package/dist/components/chatbot/messages/chatbot-message-answer-readonly.js +17 -0
  98. package/dist/components/chatbot/messages/chatbot-message-answer-readonly.js.map +1 -0
  99. package/dist/components/chatbot/messages/chatbot-message-answer.d.ts +6 -0
  100. package/dist/components/chatbot/messages/chatbot-message-answer.d.ts.map +1 -0
  101. package/dist/components/chatbot/messages/chatbot-message-answer.js +29 -0
  102. package/dist/components/chatbot/messages/chatbot-message-answer.js.map +1 -0
  103. package/dist/components/chatbot/messages/chatbot-message-answer.module.less +3 -0
  104. package/dist/components/chatbot/messages/chatbot-message-timeout.d.ts +6 -0
  105. package/dist/components/chatbot/messages/chatbot-message-timeout.d.ts.map +1 -0
  106. package/dist/components/chatbot/messages/chatbot-message-timeout.js +17 -0
  107. package/dist/components/chatbot/messages/chatbot-message-timeout.js.map +1 -0
  108. package/dist/components/chatbot/messages/chatbot-message-typing.d.ts +8 -0
  109. package/dist/components/chatbot/messages/chatbot-message-typing.d.ts.map +1 -0
  110. package/dist/components/chatbot/messages/chatbot-message-typing.js +27 -0
  111. package/dist/components/chatbot/messages/chatbot-message-typing.js.map +1 -0
  112. package/dist/components/chatbot/messages/chatbot-message-welcome.d.ts +3 -0
  113. package/dist/components/chatbot/messages/chatbot-message-welcome.d.ts.map +1 -0
  114. package/dist/components/chatbot/messages/chatbot-message-welcome.js +4 -0
  115. package/dist/components/chatbot/messages/chatbot-message-welcome.js.map +1 -0
  116. package/dist/components/chatbot/templates/chatbot-message-template-agent-readonly.d.ts +6 -0
  117. package/dist/components/chatbot/templates/chatbot-message-template-agent-readonly.d.ts.map +1 -0
  118. package/dist/components/chatbot/templates/chatbot-message-template-agent-readonly.js +12 -0
  119. package/dist/components/chatbot/templates/chatbot-message-template-agent-readonly.js.map +1 -0
  120. package/dist/components/chatbot/templates/chatbot-message-template-agent.d.ts +6 -0
  121. package/dist/components/chatbot/templates/chatbot-message-template-agent.d.ts.map +1 -0
  122. package/dist/components/chatbot/templates/chatbot-message-template-agent.js +10 -0
  123. package/dist/components/chatbot/templates/chatbot-message-template-agent.js.map +1 -0
  124. package/dist/components/chatbot/templates/chatbot-message-template-user-readonly.d.ts +6 -0
  125. package/dist/components/chatbot/templates/chatbot-message-template-user-readonly.d.ts.map +1 -0
  126. package/dist/components/chatbot/templates/chatbot-message-template-user-readonly.js +7 -0
  127. package/dist/components/chatbot/templates/chatbot-message-template-user-readonly.js.map +1 -0
  128. package/dist/index.d.ts +6 -0
  129. package/dist/index.d.ts.map +1 -0
  130. package/dist/index.js +6 -0
  131. package/dist/index.js.map +1 -0
  132. package/dist/stores/__tests__/message-feedback-guardrail.store.test.d.ts +2 -0
  133. package/dist/stores/__tests__/message-feedback-guardrail.store.test.d.ts.map +1 -0
  134. package/dist/stores/__tests__/message-feedback-guardrail.store.test.js +49 -0
  135. package/dist/stores/__tests__/message-feedback-guardrail.store.test.js.map +1 -0
  136. package/dist/stores/__tests__/message-feedback.store.test.d.ts +2 -0
  137. package/dist/stores/__tests__/message-feedback.store.test.d.ts.map +1 -0
  138. package/dist/stores/__tests__/message-feedback.store.test.js +114 -0
  139. package/dist/stores/__tests__/message-feedback.store.test.js.map +1 -0
  140. package/dist/stores/__tests__/session-feedback.store.test.d.ts +2 -0
  141. package/dist/stores/__tests__/session-feedback.store.test.d.ts.map +1 -0
  142. package/dist/stores/__tests__/session-feedback.store.test.js +39 -0
  143. package/dist/stores/__tests__/session-feedback.store.test.js.map +1 -0
  144. package/dist/stores/message-feedback-base.store.d.ts +8 -0
  145. package/dist/stores/message-feedback-base.store.d.ts.map +1 -0
  146. package/dist/stores/message-feedback-base.store.js +2 -0
  147. package/dist/stores/message-feedback-base.store.js.map +1 -0
  148. package/dist/stores/message-feedback-guardrail.store.d.ts +16 -0
  149. package/dist/stores/message-feedback-guardrail.store.d.ts.map +1 -0
  150. package/dist/stores/message-feedback-guardrail.store.js +85 -0
  151. package/dist/stores/message-feedback-guardrail.store.js.map +1 -0
  152. package/dist/stores/message-feedback.store.d.ts +23 -0
  153. package/dist/stores/message-feedback.store.d.ts.map +1 -0
  154. package/dist/stores/message-feedback.store.js +145 -0
  155. package/dist/stores/message-feedback.store.js.map +1 -0
  156. package/dist/stores/session-feedback.store.d.ts +15 -0
  157. package/dist/stores/session-feedback.store.d.ts.map +1 -0
  158. package/dist/stores/session-feedback.store.js +75 -0
  159. package/dist/stores/session-feedback.store.js.map +1 -0
  160. package/dist/utils/__tests__/axios-utils.test.d.ts +2 -0
  161. package/dist/utils/__tests__/axios-utils.test.d.ts.map +1 -0
  162. package/dist/utils/__tests__/axios-utils.test.js +33 -0
  163. package/dist/utils/__tests__/axios-utils.test.js.map +1 -0
  164. package/dist/utils/axios-utils.d.ts +5 -0
  165. package/dist/utils/axios-utils.d.ts.map +1 -0
  166. package/dist/utils/axios-utils.js +23 -0
  167. package/dist/utils/axios-utils.js.map +1 -0
  168. package/dist/utils/test-utils.d.ts +5 -0
  169. package/dist/utils/test-utils.d.ts.map +1 -0
  170. package/dist/utils/test-utils.js +17 -0
  171. package/dist/utils/test-utils.js.map +1 -0
  172. package/package.json +59 -0
  173. package/src/components/chatbot/__tests-cy__/chatbot-help-center.test.tsx +210 -0
  174. package/src/components/chatbot/__tests-cy__/chatbot-live.test.tsx +120 -0
  175. package/src/components/chatbot/__tests-cy__/chatbot-titan-chatbot.test.tsx +206 -0
  176. package/src/components/chatbot/__tests-cy__/chatbot.test.tsx +181 -0
  177. package/src/components/chatbot/chatbot-to-chat-provider-adapter.tsx +36 -0
  178. package/src/components/chatbot/chatbot.tsx +95 -0
  179. package/src/components/chatbot/dialog/chatbot-restart-dialog.tsx +36 -0
  180. package/src/components/chatbot/dialog/chatbot-restart-link.tsx +26 -0
  181. package/src/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form-guardrail.test.tsx +89 -0
  182. package/src/components/chatbot/feedback/__tests-cy__/chatbot-message-feedback-form.test.tsx +131 -0
  183. package/src/components/chatbot/feedback/chatbot-message-feedback-form-guardrail.tsx +35 -0
  184. package/src/components/chatbot/feedback/chatbot-message-feedback-form.module.less +15 -0
  185. package/src/components/chatbot/feedback/chatbot-message-feedback-form.module.less.d.ts +4 -0
  186. package/src/components/chatbot/feedback/chatbot-message-feedback-form.tsx +65 -0
  187. package/src/components/chatbot/feedback/chatbot-message-feedback-popover.module.less +10 -0
  188. package/src/components/chatbot/feedback/chatbot-message-feedback-popover.module.less.d.ts +4 -0
  189. package/src/components/chatbot/feedback/chatbot-message-feedback-popover.tsx +200 -0
  190. package/src/components/chatbot/feedback/chatbot-message-feedback.tsx +27 -0
  191. package/src/components/chatbot/feedback/chatbot-session-feedback-link.tsx +29 -0
  192. package/src/components/chatbot/feedback/chatbot-session-feedback-modal.tsx +96 -0
  193. package/src/components/chatbot/filters/chatbot-filter.module.css +19 -0
  194. package/src/components/chatbot/filters/chatbot-filter.module.css.d.ts +5 -0
  195. package/src/components/chatbot/filters/chatbot-filter.tsx +160 -0
  196. package/src/components/chatbot/filters/chatbot-filters.tsx +17 -0
  197. package/src/components/chatbot/messages/__tests-cy__/chatbot-message-answer.test.tsx +110 -0
  198. package/src/components/chatbot/messages/__tests-cy__/chatbot-message-typing.test.tsx +71 -0
  199. package/src/components/chatbot/messages/chatbot-links.module.less +22 -0
  200. package/src/components/chatbot/messages/chatbot-links.module.less.d.ts +4 -0
  201. package/src/components/chatbot/messages/chatbot-links.tsx +76 -0
  202. package/src/components/chatbot/messages/chatbot-message-agent-footer.tsx +35 -0
  203. package/src/components/chatbot/messages/chatbot-message-answer-readonly.tsx +39 -0
  204. package/src/components/chatbot/messages/chatbot-message-answer.module.less +3 -0
  205. package/src/components/chatbot/messages/chatbot-message-answer.module.less.d.ts +3 -0
  206. package/src/components/chatbot/messages/chatbot-message-answer.tsx +55 -0
  207. package/src/components/chatbot/messages/chatbot-message-timeout.tsx +20 -0
  208. package/src/components/chatbot/messages/chatbot-message-typing.tsx +39 -0
  209. package/src/components/chatbot/messages/chatbot-message-welcome.tsx +16 -0
  210. package/src/components/chatbot/templates/chatbot-message-template-agent-readonly.tsx +25 -0
  211. package/src/components/chatbot/templates/chatbot-message-template-agent.tsx +25 -0
  212. package/src/components/chatbot/templates/chatbot-message-template-user-readonly.tsx +16 -0
  213. package/src/cypress.d.ts +10 -0
  214. package/src/index.ts +5 -0
  215. package/src/stores/__tests__/message-feedback-guardrail.store.test.ts +61 -0
  216. package/src/stores/__tests__/message-feedback.store.test.ts +121 -0
  217. package/src/stores/__tests__/session-feedback.store.test.ts +47 -0
  218. package/src/stores/message-feedback-base.store.ts +8 -0
  219. package/src/stores/message-feedback-guardrail.store.ts +60 -0
  220. package/src/stores/message-feedback.store.ts +113 -0
  221. package/src/stores/session-feedback.store.ts +44 -0
  222. package/src/utils/__tests__/axios-utils.test.ts +40 -0
  223. package/src/utils/axios-utils.ts +25 -0
  224. package/src/utils/test-utils.ts +22 -0
  225. package/tsconfig.json +25 -0
  226. package/tsconfig.tsbuildinfo +1 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,142 @@
1
+ # v3.0.0 (Tue Jul 15 2025)
2
+
3
+ #### 💥 Breaking Change
4
+
5
+ - SPA-6889: Common client interface for HC Chatbot and Titan Chatbot [#28](https://github.com/servicetitan/titan-chatbot-client/pull/28) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
6
+
7
+ #### Authors: 1
8
+
9
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
10
+
11
+ ---
12
+
13
+ # v2.1.2 (Mon Jul 07 2025)
14
+
15
+ #### 🐛 Bug Fix
16
+
17
+ - SPA-6554: Display the "Last Updated" date for Internal Chatbots [#33](https://github.com/servicetitan/titan-chatbot-client/pull/33) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
18
+
19
+ #### Authors: 1
20
+
21
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
22
+
23
+ ---
24
+
25
+ # v2.1.1 (Thu Jul 03 2025)
26
+
27
+ #### 🐛 Bug Fix
28
+
29
+ - SPA-6554: Display the "Last Updated" date for Internal Chatbots [#31](https://github.com/servicetitan/titan-chatbot-client/pull/31) ([@sevakekizyanst](https://github.com/sevakekizyanst))
30
+
31
+ #### Authors: 1
32
+
33
+ - Sevak Ekizyan ([@sevakekizyanst](https://github.com/sevakekizyanst))
34
+
35
+ ---
36
+
37
+ # v2.1.0 (Tue Jun 10 2025)
38
+
39
+ #### 🚀 Enhancement
40
+
41
+ - SPA-6766: Extended cypress helpers [#23](https://github.com/servicetitan/titan-chatbot-client/pull/23) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
42
+
43
+ #### Authors: 1
44
+
45
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
46
+
47
+ ---
48
+
49
+ # v2.0.3 (Mon Jun 09 2025)
50
+
51
+ #### 🐛 Bug Fix
52
+
53
+ - SPA-6766: Reorganized packages [#21](https://github.com/servicetitan/titan-chatbot-client/pull/21) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
54
+
55
+ #### Authors: 1
56
+
57
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
58
+
59
+ ---
60
+
61
+ # v2.0.2 (Mon Jun 09 2025)
62
+
63
+ #### 🐛 Bug Fix
64
+
65
+ - SPA-6766: Changed local import [#18](https://github.com/servicetitan/titan-chatbot-client/pull/18) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
66
+ - SPA-6766: [Chat/Chatbot package] Create missing unit and cypress comp… [#17](https://github.com/servicetitan/titan-chatbot-client/pull/17) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
67
+
68
+ #### Authors: 1
69
+
70
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
71
+
72
+ ---
73
+
74
+ # v2.0.1 (Tue Jun 03 2025)
75
+
76
+ #### 🐛 Bug Fix
77
+
78
+ - SPA-6767: [Help Center] Utilize chat/chatbot UI packages in the HC [#14](https://github.com/servicetitan/titan-chatbot-client/pull/14) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
79
+
80
+ #### Authors: 1
81
+
82
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
83
+
84
+ ---
85
+
86
+ # v2.0.0 (Mon Jun 02 2025)
87
+
88
+ #### 💥 Breaking Change
89
+
90
+ - SPA-6767: [Help Center] Utilize chat/chatbot UI packages in the HC [#13](https://github.com/servicetitan/titan-chatbot-client/pull/13) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
91
+
92
+ #### Authors: 1
93
+
94
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
95
+
96
+ ---
97
+
98
+ # v1.1.2 (Wed May 21 2025)
99
+
100
+ #### 🐛 Bug Fix
101
+
102
+ - SPA-5484 [#10](https://github.com/servicetitan/titan-chatbot-client/pull/10) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
103
+
104
+ #### Authors: 1
105
+
106
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
107
+
108
+ ---
109
+
110
+ # v1.1.1 (Tue May 13 2025)
111
+
112
+ #### 🐛 Bug Fix
113
+
114
+ - SPA-5484: Move chatbot stores into the package [#8](https://github.com/servicetitan/titan-chatbot-client/pull/8) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
115
+
116
+ #### Authors: 1
117
+
118
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
119
+
120
+ ---
121
+
122
+ # v1.1.0 (Tue May 13 2025)
123
+
124
+ #### 🚀 Enhancement
125
+
126
+ - SPA-5484: Improved error handling [#7](https://github.com/servicetitan/titan-chatbot-client/pull/7) ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
127
+
128
+ #### Authors: 1
129
+
130
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
131
+
132
+ ---
133
+
134
+ # v0.0.0 (Mon May 12 2025)
135
+
136
+ #### ⚠️ Pushed to `master`
137
+
138
+ Initial commit!
139
+
140
+ #### Authors: 1
141
+
142
+ - Alexandr Yarmolchuk ([@AlexYarmolchuk](https://github.com/AlexYarmolchuk))
package/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # ServiceTitan Chatbot Client UI
2
+
3
+ This package contains the React components and hooks for the ServiceTitan Chatbot UI. Also, it contains the API client for the ServiceTitan Chatbot API.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @servicetitan/titan-chatbot-client
9
+ ```
10
+
11
+ ## Description
12
+
13
+ This package provides a set of React components and hooks for building chatbot interfaces in ServiceTitan applications. It is designed to be used with the ServiceTitan Chatbot API and provides a consistent look and feel across different chatbot interfaces.
14
+
15
+ The components are based on the ServiceTitan design system and are built to be easily customizable and extensible.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chatbot-help-center.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-help-center.test.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/__tests-cy__/chatbot-help-center.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,160 @@
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 { ChatUiSelectors, CypressMocks } from '@servicetitan/titan-chatbot-ui-cypress';
6
+ import axios from 'axios';
7
+ import { mount } from 'cypress/react';
8
+ import { useMemo } from 'react';
9
+ import { Chatbot } from '../chatbot';
10
+ const ChatbotBaseUrl = 'https://chatbot-api.example.com/base/url';
11
+ const initContainer = () => {
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
+ describe('[Chatbot with Help Center API]', () => {
40
+ let container;
41
+ let log;
42
+ let apiClientSettings;
43
+ let apiClient;
44
+ let uiStore;
45
+ let uiBackendStore;
46
+ beforeEach(() => {
47
+ container = initContainer();
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
+ return (_jsx(Provider, { singletons: [
64
+ {
65
+ provide: Log,
66
+ useValue: log,
67
+ },
68
+ {
69
+ provide: CHATBOT_CLIENT_SETTINGS,
70
+ useValue: apiClientSettings,
71
+ },
72
+ { provide: CHATBOT_API_CLIENT, useValue: apiClient },
73
+ {
74
+ provide: CHATBOT_UI_STORE_TOKEN,
75
+ useValue: uiStore,
76
+ },
77
+ {
78
+ provide: CHATBOT_UI_BACKEND_STORE_TOKEN,
79
+ useValue: uiBackendStore,
80
+ },
81
+ ], children: _jsx(Chatbot, { className: "h-100vh max-h-100vh of-x-hidden", customizations: customizationContext }) }));
82
+ };
83
+ cy.spy(uiStore, 'run').as('runSpy');
84
+ mount(_jsx(ChatbotWrapper, {}));
85
+ return cy.wrap(new Promise(resolve => {
86
+ cy.get('@runSpy')
87
+ .should('have.been.calledOnce')
88
+ .then((invocation) => {
89
+ const initPromise = invocation.firstCall.returnValue;
90
+ initPromise.then(resolve);
91
+ });
92
+ }));
93
+ };
94
+ it('should render the chatbot with help center API', () => {
95
+ const sessionMock = CypressMocks.HC.CreateSession;
96
+ const messageMock = CypressMocks.HC.SendUserMessage;
97
+ const messageFeedbackMock = CypressMocks.HC.MessageFeedback;
98
+ const sessionFeedbackMock = CypressMocks.HC.SessionFeedback;
99
+ const aliasFilterOptions = CypressMocks.HC.interceptFilterOptions(ChatbotBaseUrl);
100
+ const aliasCreateSession = sessionMock.intercept(ChatbotBaseUrl);
101
+ const aliasSendUserMessage = messageMock.intercept(ChatbotBaseUrl);
102
+ const aliasMessageFeedback = messageFeedbackMock.intercept(ChatbotBaseUrl);
103
+ const aliasSessionFeedback = sessionFeedbackMock.intercept(ChatbotBaseUrl);
104
+ render().then(() => {
105
+ // Expect filters were loaded using the Help Center API
106
+ cy.wait(aliasFilterOptions).then(interception => {
107
+ var _a, _b, _c, _d, _e, _f, _g, _h;
108
+ // Check options were loaded correctly
109
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/filter-options`);
110
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.an('object');
111
+ expect((_c = (_b = interception.response) === null || _b === void 0 ? void 0 : _b.body) === null || _c === void 0 ? void 0 : _c.sources).to.an('array');
112
+ expect((_e = (_d = interception.response) === null || _d === void 0 ? void 0 : _d.body) === null || _e === void 0 ? void 0 : _e.contentTypes).to.an('array');
113
+ expect((_g = (_f = interception.response) === null || _f === void 0 ? void 0 : _f.body) === null || _g === void 0 ? void 0 : _g.productAreas).to.an('array');
114
+ expect((_h = interception.response) === null || _h === void 0 ? void 0 : _h.statusCode).to.equal(200);
115
+ });
116
+ // Ask the bot a question
117
+ cy.log('Sending message...');
118
+ ChatUiSelectors.chatInput.type(`${messageMock.request.text}{enter}`, { delay: 0 });
119
+ // Check that the session was created
120
+ cy.wait(aliasCreateSession).then(interception => {
121
+ var _a, _b;
122
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/create-session`);
123
+ expect(interception.request.body).to.deep.equal(sessionMock.request);
124
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.deep.equal(sessionMock.response);
125
+ expect((_b = interception.response) === null || _b === void 0 ? void 0 : _b.statusCode).to.equal(200);
126
+ });
127
+ // Check the user message is sent
128
+ cy.wait(aliasSendUserMessage).then(interception => {
129
+ var _a, _b;
130
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/user-message`);
131
+ expect(interception.request.body).to.deep.equal(messageMock.request);
132
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.deep.equal(messageMock.response);
133
+ expect((_b = interception.response) === null || _b === void 0 ? void 0 : _b.statusCode).to.equal(200);
134
+ });
135
+ // Send session feedback (manually)
136
+ cy.log('Sending session feedback...');
137
+ uiStore.sendSessionFeedback(new Models.Feedback({
138
+ sessionId: sessionMock.response.id,
139
+ description: 'Good answer!',
140
+ rating: Models.FeedbackRatings.ThumbsUp,
141
+ }));
142
+ cy.wait(aliasSessionFeedback).then(interception => {
143
+ var _a;
144
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/session-feedback?sessionId=${sessionMock.response.id}`);
145
+ expect(interception.request.body).to.deep.equal(sessionFeedbackMock.request);
146
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.statusCode).to.equal(200);
147
+ });
148
+ // Check the feedback is sent with thumbs up
149
+ cy.log('Sending message feedback...');
150
+ ChatUiSelectors.chatbotMessageFeedbackThumbsUp.scrollIntoView().click({ force: true });
151
+ cy.wait(aliasMessageFeedback).then(interception => {
152
+ var _a;
153
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/Chat/bot-message-feedback?sessionId=${messageMock.response.sessionId}&botMessageId=${messageMock.response.id}`);
154
+ expect(interception.request.body).to.deep.equal(messageFeedbackMock.request);
155
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.statusCode).to.equal(200);
156
+ });
157
+ });
158
+ });
159
+ });
160
+ //# sourceMappingURL=chatbot-help-center.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-help-center.test.js","sourceRoot":"","sources":["../../../../src/components/chatbot/__tests-cy__/chatbot-help-center.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chatbot-live.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-live.test.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/__tests-cy__/chatbot-live.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,90 @@
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 { CHATBOT_API_CLIENT, CHATBOT_UI_BACKEND_STORE_TOKEN, CHATBOT_UI_STORE_TOKEN, ChatbotUiBackendStore, ChatbotUiStore, ModelsMocks, } from '@servicetitan/titan-chatbot-api';
5
+ import { CypressMocks } from '@servicetitan/titan-chatbot-ui-cypress';
6
+ import { mount } from 'cypress/react';
7
+ import { useMemo } from 'react';
8
+ import { Chatbot } from '../chatbot';
9
+ const initContainer = () => {
10
+ const rootContainer = new Container();
11
+ const container = new Container();
12
+ container.parent = rootContainer;
13
+ container.bind(Log).to(CypressMocks.LogMock).inSingletonScope();
14
+ container
15
+ .bind(CHATBOT_API_CLIENT)
16
+ .to(CypressMocks.ChatbotApiClientMock)
17
+ .inSingletonScope();
18
+ container.bind(CHATBOT_UI_STORE_TOKEN).to(ChatbotUiStore).inSingletonScope();
19
+ container
20
+ .bind(CHATBOT_UI_BACKEND_STORE_TOKEN)
21
+ .to(ChatbotUiBackendStore)
22
+ .inSingletonScope();
23
+ return container;
24
+ };
25
+ /**
26
+ * The test is for internal purposes only.
27
+ */
28
+ describe.skip('[Chatbot]', () => {
29
+ let container;
30
+ let log;
31
+ let api;
32
+ let uiStore;
33
+ let uiBackendStore;
34
+ const mockApi = () => {
35
+ api.postSession = cy.stub().resolves(ModelsMocks.mockSession());
36
+ api.getOptions = cy.stub().resolves(ModelsMocks.mockFrontendModel());
37
+ };
38
+ beforeEach(() => {
39
+ cy.intercept('GET', 'https://fonts.gstatic.com/**', {
40
+ statusCode: 200,
41
+ body: new ArrayBuffer(0),
42
+ headers: {
43
+ 'Content-Type': 'font/woff2',
44
+ 'Cache-Control': 'no-cache, no-store, must-revalidate',
45
+ },
46
+ });
47
+ container = initContainer();
48
+ log = container.get(Log);
49
+ api = container.get(CHATBOT_API_CLIENT);
50
+ uiStore = container.get(CHATBOT_UI_STORE_TOKEN);
51
+ uiBackendStore = container.get(CHATBOT_UI_BACKEND_STORE_TOKEN);
52
+ mockApi();
53
+ cy.viewport(550, 800);
54
+ });
55
+ const mockAskBotApi = (answer) => {
56
+ api.postMessage = cy.stub().as('askBot').resolves(ModelsMocks.mockBotMessage({
57
+ answer,
58
+ }));
59
+ return '@askBot';
60
+ };
61
+ const render = () => {
62
+ const ChatbotWrapper = () => {
63
+ const customizationContext = useMemo(() => ({
64
+ filters: { enabled: true },
65
+ feedback: { title: 'TITLE' },
66
+ }), []);
67
+ return (_jsx(Provider, { singletons: [
68
+ {
69
+ provide: Log,
70
+ useValue: log,
71
+ },
72
+ { provide: CHATBOT_API_CLIENT, useValue: api },
73
+ {
74
+ provide: CHATBOT_UI_STORE_TOKEN,
75
+ useValue: uiStore,
76
+ },
77
+ {
78
+ provide: CHATBOT_UI_BACKEND_STORE_TOKEN,
79
+ useValue: uiBackendStore,
80
+ },
81
+ ], children: _jsx(Chatbot, { className: "h-100vh max-h-100vh of-x-hidden", customizations: customizationContext }) }));
82
+ };
83
+ mount(_jsx(ChatbotWrapper, {}));
84
+ };
85
+ it('should render the chatbot component', () => {
86
+ mockAskBotApi("Hello! I'm chatbot mocked response!!!");
87
+ render();
88
+ });
89
+ });
90
+ //# sourceMappingURL=chatbot-live.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-live.test.js","sourceRoot":"","sources":["../../../../src/components/chatbot/__tests-cy__/chatbot-live.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chatbot-titan-chatbot.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-titan-chatbot.test.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/__tests-cy__/chatbot-titan-chatbot.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,155 @@
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 { ApiClientTitanChat, 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 { ChatUiSelectors, CypressMocks } from '@servicetitan/titan-chatbot-ui-cypress';
6
+ import { mount } from 'cypress/react';
7
+ import { useMemo } from 'react';
8
+ import { Chatbot } from '../chatbot';
9
+ const ChatbotBaseUrl = 'https://chatbot-api.example.com/base/url';
10
+ const ChatbotVersion = 2;
11
+ const initContainer = () => {
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
+ clientId: 'TitanChatClientId',
24
+ version: String(ChatbotVersion),
25
+ constructorParametersFactory: () => ({
26
+ baseUrl: ChatbotBaseUrl,
27
+ }),
28
+ };
29
+ container
30
+ .bind(CHATBOT_CLIENT_SETTINGS)
31
+ .toConstantValue(clientSettings);
32
+ container
33
+ .bind(CHATBOT_API_CLIENT)
34
+ .to(ApiClientTitanChat.ChatbotApiClient)
35
+ .inSingletonScope();
36
+ return container;
37
+ };
38
+ describe('[Chatbot with Titan Chat API]', () => {
39
+ let container;
40
+ let log;
41
+ let apiClientSettings;
42
+ let apiClient;
43
+ let uiStore;
44
+ let uiBackendStore;
45
+ beforeEach(() => {
46
+ container = initContainer();
47
+ log = container.get(Log);
48
+ apiClientSettings =
49
+ container.get(CHATBOT_CLIENT_SETTINGS);
50
+ apiClient = container.get(CHATBOT_API_CLIENT);
51
+ uiStore = container.get(CHATBOT_UI_STORE_TOKEN);
52
+ uiBackendStore = container.get(CHATBOT_UI_BACKEND_STORE_TOKEN);
53
+ cy.viewport(550, 800);
54
+ cy.clock(Date.parse('2023-10-01T00:00:00Z'));
55
+ });
56
+ const render = () => {
57
+ const ChatbotWrapper = () => {
58
+ const customizationContext = useMemo(() => ({
59
+ filters: { enabled: true },
60
+ feedback: { title: 'TITLE' },
61
+ }), []);
62
+ return (_jsx(Provider, { singletons: [
63
+ {
64
+ provide: Log,
65
+ useValue: log,
66
+ },
67
+ {
68
+ provide: CHATBOT_CLIENT_SETTINGS,
69
+ useValue: apiClientSettings,
70
+ },
71
+ { provide: CHATBOT_API_CLIENT, useValue: apiClient },
72
+ {
73
+ provide: CHATBOT_UI_STORE_TOKEN,
74
+ useValue: uiStore,
75
+ },
76
+ {
77
+ provide: CHATBOT_UI_BACKEND_STORE_TOKEN,
78
+ useValue: uiBackendStore,
79
+ },
80
+ ], children: _jsx(Chatbot, { className: "h-100vh max-h-100vh of-x-hidden", customizations: customizationContext }) }));
81
+ };
82
+ cy.spy(uiStore, 'run').as('runSpy');
83
+ mount(_jsx(ChatbotWrapper, {}));
84
+ return cy.wrap(new Promise(resolve => {
85
+ cy.get('@runSpy')
86
+ .should('have.been.calledOnce')
87
+ .then((invocation) => {
88
+ const initPromise = invocation.firstCall.returnValue;
89
+ initPromise.then(resolve);
90
+ });
91
+ }));
92
+ };
93
+ it('should render the chatbot with titan chat API', () => {
94
+ const optionsMock = CypressMocks.TC.Options;
95
+ const sessionMock = CypressMocks.TC.SessionPost;
96
+ const messageMock = CypressMocks.TC.MessagePost;
97
+ const messageFeedbackMock = CypressMocks.TC.MessageFeedbackPost;
98
+ const sessionFeedbackMock = CypressMocks.TC.SessionFeedbackPost;
99
+ const aliasOptions = optionsMock.intercept(ChatbotBaseUrl, ChatbotVersion);
100
+ const aliasSession = sessionMock.intercept(ChatbotBaseUrl, ChatbotVersion);
101
+ const aliasMessage = messageMock.intercept(ChatbotBaseUrl, ChatbotVersion);
102
+ const { aliasPostMessage, aliasPostSession } = CypressMocks.TC.interceptFeedback(ChatbotBaseUrl, ChatbotVersion);
103
+ render().then(() => {
104
+ cy.log('Getting options...');
105
+ cy.wait(aliasOptions).then(interception => {
106
+ var _a, _b;
107
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/v${ChatbotVersion}/options`);
108
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.statusCode).to.equal(200);
109
+ expect((_b = interception.response) === null || _b === void 0 ? void 0 : _b.body).to.deep.equal(optionsMock.response);
110
+ });
111
+ // Ask the bot a question
112
+ cy.log('Sending message...');
113
+ ChatUiSelectors.chatInput.type(`${messageMock.request.question}{enter}`, { delay: 0 });
114
+ // Check that the session was created
115
+ cy.wait(aliasSession).then(interception => {
116
+ var _a, _b;
117
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/v${ChatbotVersion}/session`);
118
+ expect(interception.request.body).to.deep.equal(sessionMock.request);
119
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.deep.equal(sessionMock.response);
120
+ expect((_b = interception.response) === null || _b === void 0 ? void 0 : _b.statusCode).to.equal(200);
121
+ });
122
+ // Check the user message is sent
123
+ cy.wait(aliasMessage).then(interception => {
124
+ var _a, _b;
125
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/v${ChatbotVersion}/message`);
126
+ expect(interception.request.body).to.deep.equal(messageMock.request);
127
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.deep.equal(messageMock.response);
128
+ expect((_b = interception.response) === null || _b === void 0 ? void 0 : _b.statusCode).to.equal(200);
129
+ });
130
+ cy.tick(100);
131
+ // Send session feedback (manually)
132
+ cy.log('Sending session feedback...');
133
+ uiStore.sendSessionFeedback(new Models.Feedback(sessionFeedbackMock.request));
134
+ cy.wait(aliasPostSession).then(interception => {
135
+ var _a, _b;
136
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/v${ChatbotVersion}/feedback`);
137
+ expect(interception.request.body).to.deep.equal(sessionFeedbackMock.request);
138
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.deep.equal(sessionFeedbackMock.response);
139
+ expect((_b = interception.response) === null || _b === void 0 ? void 0 : _b.statusCode).to.equal(200);
140
+ });
141
+ cy.tick(100);
142
+ // Check the feedback is sent with thumbs up
143
+ cy.log('Sending message feedback...');
144
+ ChatUiSelectors.chatbotMessageFeedbackThumbsUp.scrollIntoView().click({ force: true });
145
+ cy.wait(aliasPostMessage).then(interception => {
146
+ var _a, _b;
147
+ expect(interception.request.url).to.equal(`${ChatbotBaseUrl}/api/v${ChatbotVersion}/feedback`);
148
+ expect(interception.request.body).to.deep.equal(messageFeedbackMock.request);
149
+ expect((_a = interception.response) === null || _a === void 0 ? void 0 : _a.body).to.deep.equal(messageFeedbackMock.response);
150
+ expect((_b = interception.response) === null || _b === void 0 ? void 0 : _b.statusCode).to.equal(200);
151
+ });
152
+ });
153
+ });
154
+ });
155
+ //# sourceMappingURL=chatbot-titan-chatbot.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot-titan-chatbot.test.js","sourceRoot":"","sources":["../../../../src/components/chatbot/__tests-cy__/chatbot-titan-chatbot.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chatbot.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatbot.test.d.ts","sourceRoot":"","sources":["../../../../src/components/chatbot/__tests-cy__/chatbot.test.tsx"],"names":[],"mappings":""}