@patternfly/chatbot 6.8.0-prerelease.7 → 6.8.0-prerelease.9

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 (321) hide show
  1. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +46 -5
  2. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +125 -16
  3. package/dist/cjs/CodeModal/CodeModal.js +5 -0
  4. package/dist/cjs/MarkdownContent/MarkdownContent.d.ts +26 -7
  5. package/dist/cjs/MarkdownContent/MarkdownContent.js +79 -166
  6. package/dist/cjs/MarkdownContent/MarkdownRenderer.d.ts +6 -0
  7. package/dist/cjs/MarkdownContent/MarkdownRenderer.js +187 -0
  8. package/dist/cjs/Message/Message.d.ts +3 -4
  9. package/dist/cjs/Message/Message.js +0 -2
  10. package/dist/cjs/MessageBox/MessageBox.d.ts +2 -0
  11. package/dist/cjs/MessageBox/MessageBox.js +7 -2
  12. package/dist/cjs/index.d.ts +0 -8
  13. package/dist/cjs/index.js +1 -13
  14. package/dist/css/main.css +77 -10
  15. package/dist/css/main.css.map +1 -1
  16. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.d.ts +46 -5
  17. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.js +128 -19
  18. package/dist/esm/CodeModal/CodeModal.js +5 -0
  19. package/dist/esm/MarkdownContent/MarkdownContent.d.ts +26 -7
  20. package/dist/esm/MarkdownContent/MarkdownContent.js +52 -165
  21. package/dist/esm/MarkdownContent/MarkdownRenderer.d.ts +6 -0
  22. package/dist/esm/MarkdownContent/MarkdownRenderer.js +182 -0
  23. package/dist/esm/Message/Message.d.ts +3 -4
  24. package/dist/esm/Message/Message.js +0 -2
  25. package/dist/esm/MessageBox/MessageBox.d.ts +2 -0
  26. package/dist/esm/MessageBox/MessageBox.js +7 -2
  27. package/dist/esm/index.d.ts +0 -8
  28. package/dist/esm/index.js +0 -8
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/generate-index.js +41 -16
  31. package/generate-index.test.js +68 -0
  32. package/monaco-environment.js +45 -0
  33. package/package.json +20 -2
  34. package/patternfly-docs/content/extensions/chatbot/chatbot.md +1 -0
  35. package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +1 -1
  36. package/patternfly-docs/content/extensions/chatbot/examples/Messages/MessageWithQuickStart.tsx +2 -2
  37. package/patternfly-docs/content/extensions/chatbot/examples/Messages/Messages.md +2 -2
  38. package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +1 -1
  39. package/patternfly-docs/content/extensions/chatbot/examples/Messages/monitor-sampleapp-quickstart.ts +1 -0
  40. package/patternfly-docs/content/extensions/chatbot/examples/UI/ChatbotHeaderDrawerWithExpandableGroups.tsx +104 -0
  41. package/patternfly-docs/content/extensions/chatbot/examples/UI/UI.md +12 -1
  42. package/patternfly-docs/content/extensions/chatbot/tree-shaking.md +124 -0
  43. package/patternfly-docs/monaco-environment.js +45 -0
  44. package/patternfly-docs/patternfly-docs.css.js +6 -0
  45. package/src/Chatbot/Chatbot.scss +4 -0
  46. package/src/ChatbotContent/ChatbotContent.scss +1 -1
  47. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss +52 -6
  48. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.tsx +551 -3
  49. package/src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.tsx +350 -49
  50. package/src/ChatbotFooter/ChatbotFooter.scss +2 -2
  51. package/src/ChatbotHeader/ChatbotHeader.scss +4 -0
  52. package/src/ChatbotModal/ChatbotModal.scss +10 -0
  53. package/src/ChatbotToggle/ChatbotToggle.scss +6 -0
  54. package/src/CodeModal/CodeModal.tsx +6 -0
  55. package/src/DeepThinking/DeepThinking.test.tsx +10 -12
  56. package/src/MarkdownContent/MarkdownContent.test.tsx +52 -5
  57. package/src/MarkdownContent/MarkdownContent.tsx +77 -220
  58. package/src/MarkdownContent/MarkdownRenderer.tsx +235 -0
  59. package/src/Message/Message.scss +5 -0
  60. package/src/Message/Message.test.tsx +5 -0
  61. package/src/Message/Message.tsx +3 -5
  62. package/src/MessageBox/MessageBox.scss +15 -1
  63. package/src/MessageBox/MessageBox.tsx +23 -2
  64. package/src/ResponseActions/ResponseActions.test.tsx +42 -48
  65. package/src/ToolCall/ToolCall.test.tsx +6 -9
  66. package/src/ToolResponse/ToolResponse.test.tsx +16 -22
  67. package/src/index.ts +0 -12
  68. package/src/test-utils/markdownTestUtils.ts +21 -0
  69. package/tsconfig.json +6 -1
  70. package/dist/cjs/AttachmentEdit/AttachmentEdit.test.d.ts +0 -1
  71. package/dist/cjs/AttachmentEdit/AttachmentEdit.test.js +0 -77
  72. package/dist/cjs/Chatbot/Chatbot.test.d.ts +0 -1
  73. package/dist/cjs/Chatbot/Chatbot.test.js +0 -32
  74. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.d.ts +0 -1
  75. package/dist/cjs/ChatbotAlert/ChatbotAlert.test.js +0 -27
  76. package/dist/cjs/ChatbotContent/ChatbotContent.test.d.ts +0 -1
  77. package/dist/cjs/ChatbotContent/ChatbotContent.test.js +0 -22
  78. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.d.ts +0 -1
  79. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.js +0 -75
  80. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.d.ts +0 -1
  81. package/dist/cjs/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +0 -277
  82. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.d.ts +0 -1
  83. package/dist/cjs/ChatbotFooter/ChatbotFooter.test.js +0 -27
  84. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.d.ts +0 -1
  85. package/dist/cjs/ChatbotFooter/ChatbotFooternote.test.js +0 -87
  86. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.d.ts +0 -1
  87. package/dist/cjs/ChatbotHeader/ChatbotHeader.test.js +0 -18
  88. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.d.ts +0 -1
  89. package/dist/cjs/ChatbotHeader/ChatbotHeaderActions.test.js +0 -18
  90. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +0 -1
  91. package/dist/cjs/ChatbotHeader/ChatbotHeaderCloseButton.test.js +0 -22
  92. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.d.ts +0 -1
  93. package/dist/cjs/ChatbotHeader/ChatbotHeaderMain.test.js +0 -18
  94. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +0 -1
  95. package/dist/cjs/ChatbotHeader/ChatbotHeaderMenu.test.js +0 -22
  96. package/dist/cjs/ChatbotHeader/ChatbotHeaderNewChatButton.test.d.ts +0 -1
  97. package/dist/cjs/ChatbotHeader/ChatbotHeaderNewChatButton.test.js +0 -22
  98. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +0 -1
  99. package/dist/cjs/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +0 -46
  100. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +0 -1
  101. package/dist/cjs/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +0 -44
  102. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +0 -1
  103. package/dist/cjs/ChatbotHeader/ChatbotHeaderTitle.test.js +0 -55
  104. package/dist/cjs/ChatbotModal/ChatbotModal.test.d.ts +0 -1
  105. package/dist/cjs/ChatbotModal/ChatbotModal.test.js +0 -16
  106. package/dist/cjs/ChatbotToggle/ChatbotToggle.test.d.ts +0 -1
  107. package/dist/cjs/ChatbotToggle/ChatbotToggle.test.js +0 -64
  108. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.d.ts +0 -1
  109. package/dist/cjs/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +0 -61
  110. package/dist/cjs/CodeModal/CodeModal.test.d.ts +0 -1
  111. package/dist/cjs/CodeModal/CodeModal.test.js +0 -34
  112. package/dist/cjs/Compare/Compare.test.d.ts +0 -1
  113. package/dist/cjs/Compare/Compare.test.js +0 -18
  114. package/dist/cjs/DeepThinking/DeepThinking.test.d.ts +0 -1
  115. package/dist/cjs/DeepThinking/DeepThinking.test.js +0 -146
  116. package/dist/cjs/FileDetails/FileDetails.test.d.ts +0 -1
  117. package/dist/cjs/FileDetails/FileDetails.test.js +0 -42
  118. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.d.ts +0 -1
  119. package/dist/cjs/FileDetailsLabel/FileDetailsLabel.test.js +0 -79
  120. package/dist/cjs/FileDropZone/FileDropZone.test.d.ts +0 -1
  121. package/dist/cjs/FileDropZone/FileDropZone.test.js +0 -100
  122. package/dist/cjs/FilePreview/FilePreview.test.d.ts +0 -1
  123. package/dist/cjs/FilePreview/FilePreview.test.js +0 -97
  124. package/dist/cjs/ImagePreview/ImagePreview.test.d.ts +0 -1
  125. package/dist/cjs/ImagePreview/ImagePreview.test.js +0 -225
  126. package/dist/cjs/MarkdownContent/MarkdownContent.test.d.ts +0 -1
  127. package/dist/cjs/MarkdownContent/MarkdownContent.test.js +0 -192
  128. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.test.d.ts +0 -1
  129. package/dist/cjs/Message/CodeBlockMessage/CodeBlockMessage.test.js +0 -131
  130. package/dist/cjs/Message/ErrorMessage/ErrorMessage.test.d.ts +0 -1
  131. package/dist/cjs/Message/ErrorMessage/ErrorMessage.test.js +0 -30
  132. package/dist/cjs/Message/Message.test.d.ts +0 -1
  133. package/dist/cjs/Message/Message.test.js +0 -1128
  134. package/dist/cjs/Message/MessageAndActions/MessageAndActions.test.d.ts +0 -1
  135. package/dist/cjs/Message/MessageAndActions/MessageAndActions.test.js +0 -25
  136. package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.test.d.ts +0 -1
  137. package/dist/cjs/Message/MessageAttachments/MessageAttachmentItem.test.js +0 -25
  138. package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.test.d.ts +0 -1
  139. package/dist/cjs/Message/MessageAttachments/MessageAttachmentsContainer.test.js +0 -25
  140. package/dist/cjs/Message/MessageLoading.test.d.ts +0 -1
  141. package/dist/cjs/Message/MessageLoading.test.js +0 -25
  142. package/dist/cjs/Message/QuickResponse/QuickResponse.test.d.ts +0 -1
  143. package/dist/cjs/Message/QuickResponse/QuickResponse.test.js +0 -109
  144. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.d.ts +0 -1
  145. package/dist/cjs/Message/QuickStarts/QuickStartTileDescription.test.js +0 -76
  146. package/dist/cjs/Message/UserFeedback/UserFeedback.test.d.ts +0 -1
  147. package/dist/cjs/Message/UserFeedback/UserFeedback.test.js +0 -181
  148. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.d.ts +0 -1
  149. package/dist/cjs/Message/UserFeedback/UserFeedbackComplete.test.js +0 -243
  150. package/dist/cjs/MessageBar/AttachButton.test.d.ts +0 -1
  151. package/dist/cjs/MessageBar/AttachButton.test.js +0 -152
  152. package/dist/cjs/MessageBar/MessageBar.test.d.ts +0 -1
  153. package/dist/cjs/MessageBar/MessageBar.test.js +0 -338
  154. package/dist/cjs/MessageBar/SendButton.test.d.ts +0 -1
  155. package/dist/cjs/MessageBar/SendButton.test.js +0 -58
  156. package/dist/cjs/MessageBar/StopButton.test.d.ts +0 -1
  157. package/dist/cjs/MessageBar/StopButton.test.js +0 -58
  158. package/dist/cjs/MessageBox/JumpButton.test.d.ts +0 -1
  159. package/dist/cjs/MessageBox/JumpButton.test.js +0 -39
  160. package/dist/cjs/MessageBox/MessageBox.test.d.ts +0 -1
  161. package/dist/cjs/MessageBox/MessageBox.test.js +0 -294
  162. package/dist/cjs/MessageDivider/MessageDivider.test.d.ts +0 -1
  163. package/dist/cjs/MessageDivider/MessageDivider.test.js +0 -29
  164. package/dist/cjs/Onboarding/Onboarding.test.d.ts +0 -1
  165. package/dist/cjs/Onboarding/Onboarding.test.js +0 -80
  166. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.d.ts +0 -1
  167. package/dist/cjs/PreviewAttachment/PreviewAttachment.test.js +0 -50
  168. package/dist/cjs/ResponseActions/ResponseActionButton.test.d.ts +0 -1
  169. package/dist/cjs/ResponseActions/ResponseActionButton.test.js +0 -54
  170. package/dist/cjs/ResponseActions/ResponseActions.test.d.ts +0 -1
  171. package/dist/cjs/ResponseActions/ResponseActions.test.js +0 -455
  172. package/dist/cjs/ResponseActions/ResponseActionsGroups.test.d.ts +0 -1
  173. package/dist/cjs/ResponseActions/ResponseActionsGroups.test.js +0 -25
  174. package/dist/cjs/Settings/SettingsForm.test.d.ts +0 -1
  175. package/dist/cjs/Settings/SettingsForm.test.js +0 -35
  176. package/dist/cjs/SourcesCard/SourcesCard.test.d.ts +0 -1
  177. package/dist/cjs/SourcesCard/SourcesCard.test.js +0 -39
  178. package/dist/cjs/SourcesCardBase/SourcesCardBase.test.d.ts +0 -1
  179. package/dist/cjs/SourcesCardBase/SourcesCardBase.test.js +0 -199
  180. package/dist/cjs/TermsOfUse/TermsOfUse.test.d.ts +0 -1
  181. package/dist/cjs/TermsOfUse/TermsOfUse.test.js +0 -77
  182. package/dist/cjs/ToolCall/ToolCall.test.d.ts +0 -1
  183. package/dist/cjs/ToolCall/ToolCall.test.js +0 -201
  184. package/dist/cjs/ToolResponse/ToolResponse.test.d.ts +0 -1
  185. package/dist/cjs/ToolResponse/ToolResponse.test.js +0 -184
  186. package/dist/cjs/__mocks__/monaco-editor.d.ts +0 -11
  187. package/dist/cjs/__mocks__/monaco-editor.js +0 -18
  188. package/dist/cjs/__mocks__/rehype-external-links.d.ts +0 -2
  189. package/dist/cjs/__mocks__/rehype-external-links.js +0 -4
  190. package/dist/cjs/__mocks__/rehype-highlight.d.ts +0 -2
  191. package/dist/cjs/__mocks__/rehype-highlight.js +0 -4
  192. package/dist/cjs/__mocks__/rehype-sanitize.d.ts +0 -2
  193. package/dist/cjs/__mocks__/rehype-sanitize.js +0 -4
  194. package/dist/cjs/__mocks__/rehype-unwrap-images.d.ts +0 -2
  195. package/dist/cjs/__mocks__/rehype-unwrap-images.js +0 -4
  196. package/dist/esm/AttachmentEdit/AttachmentEdit.test.d.ts +0 -1
  197. package/dist/esm/AttachmentEdit/AttachmentEdit.test.js +0 -72
  198. package/dist/esm/Chatbot/Chatbot.test.d.ts +0 -1
  199. package/dist/esm/Chatbot/Chatbot.test.js +0 -27
  200. package/dist/esm/ChatbotAlert/ChatbotAlert.test.d.ts +0 -1
  201. package/dist/esm/ChatbotAlert/ChatbotAlert.test.js +0 -22
  202. package/dist/esm/ChatbotContent/ChatbotContent.test.d.ts +0 -1
  203. package/dist/esm/ChatbotContent/ChatbotContent.test.js +0 -17
  204. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.d.ts +0 -1
  205. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryDropdown.test.js +0 -70
  206. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.d.ts +0 -1
  207. package/dist/esm/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.test.js +0 -272
  208. package/dist/esm/ChatbotFooter/ChatbotFooter.test.d.ts +0 -1
  209. package/dist/esm/ChatbotFooter/ChatbotFooter.test.js +0 -22
  210. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.d.ts +0 -1
  211. package/dist/esm/ChatbotFooter/ChatbotFooternote.test.js +0 -82
  212. package/dist/esm/ChatbotHeader/ChatbotHeader.test.d.ts +0 -1
  213. package/dist/esm/ChatbotHeader/ChatbotHeader.test.js +0 -13
  214. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.d.ts +0 -1
  215. package/dist/esm/ChatbotHeader/ChatbotHeaderActions.test.js +0 -13
  216. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.d.ts +0 -1
  217. package/dist/esm/ChatbotHeader/ChatbotHeaderCloseButton.test.js +0 -20
  218. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.d.ts +0 -1
  219. package/dist/esm/ChatbotHeader/ChatbotHeaderMain.test.js +0 -13
  220. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.d.ts +0 -1
  221. package/dist/esm/ChatbotHeader/ChatbotHeaderMenu.test.js +0 -20
  222. package/dist/esm/ChatbotHeader/ChatbotHeaderNewChatButton.test.d.ts +0 -1
  223. package/dist/esm/ChatbotHeader/ChatbotHeaderNewChatButton.test.js +0 -20
  224. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.d.ts +0 -1
  225. package/dist/esm/ChatbotHeader/ChatbotHeaderOptionsDropdown.test.js +0 -44
  226. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.d.ts +0 -1
  227. package/dist/esm/ChatbotHeader/ChatbotHeaderSelectorDropdown.test.js +0 -42
  228. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.d.ts +0 -1
  229. package/dist/esm/ChatbotHeader/ChatbotHeaderTitle.test.js +0 -50
  230. package/dist/esm/ChatbotModal/ChatbotModal.test.d.ts +0 -1
  231. package/dist/esm/ChatbotModal/ChatbotModal.test.js +0 -11
  232. package/dist/esm/ChatbotToggle/ChatbotToggle.test.d.ts +0 -1
  233. package/dist/esm/ChatbotToggle/ChatbotToggle.test.js +0 -59
  234. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.d.ts +0 -1
  235. package/dist/esm/ChatbotWelcomePrompt/ChatbotWelcomePrompt.test.js +0 -56
  236. package/dist/esm/CodeModal/CodeModal.test.d.ts +0 -1
  237. package/dist/esm/CodeModal/CodeModal.test.js +0 -29
  238. package/dist/esm/Compare/Compare.test.d.ts +0 -1
  239. package/dist/esm/Compare/Compare.test.js +0 -13
  240. package/dist/esm/DeepThinking/DeepThinking.test.d.ts +0 -1
  241. package/dist/esm/DeepThinking/DeepThinking.test.js +0 -141
  242. package/dist/esm/FileDetails/FileDetails.test.d.ts +0 -1
  243. package/dist/esm/FileDetails/FileDetails.test.js +0 -37
  244. package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.d.ts +0 -1
  245. package/dist/esm/FileDetailsLabel/FileDetailsLabel.test.js +0 -74
  246. package/dist/esm/FileDropZone/FileDropZone.test.d.ts +0 -1
  247. package/dist/esm/FileDropZone/FileDropZone.test.js +0 -95
  248. package/dist/esm/FilePreview/FilePreview.test.d.ts +0 -1
  249. package/dist/esm/FilePreview/FilePreview.test.js +0 -92
  250. package/dist/esm/ImagePreview/ImagePreview.test.d.ts +0 -1
  251. package/dist/esm/ImagePreview/ImagePreview.test.js +0 -220
  252. package/dist/esm/MarkdownContent/MarkdownContent.test.d.ts +0 -1
  253. package/dist/esm/MarkdownContent/MarkdownContent.test.js +0 -187
  254. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.test.d.ts +0 -1
  255. package/dist/esm/Message/CodeBlockMessage/CodeBlockMessage.test.js +0 -126
  256. package/dist/esm/Message/ErrorMessage/ErrorMessage.test.d.ts +0 -1
  257. package/dist/esm/Message/ErrorMessage/ErrorMessage.test.js +0 -25
  258. package/dist/esm/Message/Message.test.d.ts +0 -1
  259. package/dist/esm/Message/Message.test.js +0 -1123
  260. package/dist/esm/Message/MessageAndActions/MessageAndActions.test.d.ts +0 -1
  261. package/dist/esm/Message/MessageAndActions/MessageAndActions.test.js +0 -20
  262. package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.test.d.ts +0 -1
  263. package/dist/esm/Message/MessageAttachments/MessageAttachmentItem.test.js +0 -20
  264. package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.test.d.ts +0 -1
  265. package/dist/esm/Message/MessageAttachments/MessageAttachmentsContainer.test.js +0 -20
  266. package/dist/esm/Message/MessageLoading.test.d.ts +0 -1
  267. package/dist/esm/Message/MessageLoading.test.js +0 -20
  268. package/dist/esm/Message/QuickResponse/QuickResponse.test.d.ts +0 -1
  269. package/dist/esm/Message/QuickResponse/QuickResponse.test.js +0 -104
  270. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.d.ts +0 -1
  271. package/dist/esm/Message/QuickStarts/QuickStartTileDescription.test.js +0 -48
  272. package/dist/esm/Message/UserFeedback/UserFeedback.test.d.ts +0 -1
  273. package/dist/esm/Message/UserFeedback/UserFeedback.test.js +0 -176
  274. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.d.ts +0 -1
  275. package/dist/esm/Message/UserFeedback/UserFeedbackComplete.test.js +0 -238
  276. package/dist/esm/MessageBar/AttachButton.test.d.ts +0 -1
  277. package/dist/esm/MessageBar/AttachButton.test.js +0 -147
  278. package/dist/esm/MessageBar/MessageBar.test.d.ts +0 -1
  279. package/dist/esm/MessageBar/MessageBar.test.js +0 -333
  280. package/dist/esm/MessageBar/SendButton.test.d.ts +0 -1
  281. package/dist/esm/MessageBar/SendButton.test.js +0 -53
  282. package/dist/esm/MessageBar/StopButton.test.d.ts +0 -1
  283. package/dist/esm/MessageBar/StopButton.test.js +0 -53
  284. package/dist/esm/MessageBox/JumpButton.test.d.ts +0 -1
  285. package/dist/esm/MessageBox/JumpButton.test.js +0 -34
  286. package/dist/esm/MessageBox/MessageBox.test.d.ts +0 -1
  287. package/dist/esm/MessageBox/MessageBox.test.js +0 -289
  288. package/dist/esm/MessageDivider/MessageDivider.test.d.ts +0 -1
  289. package/dist/esm/MessageDivider/MessageDivider.test.js +0 -24
  290. package/dist/esm/Onboarding/Onboarding.test.d.ts +0 -1
  291. package/dist/esm/Onboarding/Onboarding.test.js +0 -75
  292. package/dist/esm/PreviewAttachment/PreviewAttachment.test.d.ts +0 -1
  293. package/dist/esm/PreviewAttachment/PreviewAttachment.test.js +0 -48
  294. package/dist/esm/ResponseActions/ResponseActionButton.test.d.ts +0 -1
  295. package/dist/esm/ResponseActions/ResponseActionButton.test.js +0 -49
  296. package/dist/esm/ResponseActions/ResponseActions.test.d.ts +0 -1
  297. package/dist/esm/ResponseActions/ResponseActions.test.js +0 -450
  298. package/dist/esm/ResponseActions/ResponseActionsGroups.test.d.ts +0 -1
  299. package/dist/esm/ResponseActions/ResponseActionsGroups.test.js +0 -20
  300. package/dist/esm/Settings/SettingsForm.test.d.ts +0 -1
  301. package/dist/esm/Settings/SettingsForm.test.js +0 -33
  302. package/dist/esm/SourcesCard/SourcesCard.test.d.ts +0 -1
  303. package/dist/esm/SourcesCard/SourcesCard.test.js +0 -34
  304. package/dist/esm/SourcesCardBase/SourcesCardBase.test.d.ts +0 -1
  305. package/dist/esm/SourcesCardBase/SourcesCardBase.test.js +0 -194
  306. package/dist/esm/TermsOfUse/TermsOfUse.test.d.ts +0 -1
  307. package/dist/esm/TermsOfUse/TermsOfUse.test.js +0 -72
  308. package/dist/esm/ToolCall/ToolCall.test.d.ts +0 -1
  309. package/dist/esm/ToolCall/ToolCall.test.js +0 -196
  310. package/dist/esm/ToolResponse/ToolResponse.test.d.ts +0 -1
  311. package/dist/esm/ToolResponse/ToolResponse.test.js +0 -179
  312. package/dist/esm/__mocks__/monaco-editor.d.ts +0 -11
  313. package/dist/esm/__mocks__/monaco-editor.js +0 -18
  314. package/dist/esm/__mocks__/rehype-external-links.d.ts +0 -2
  315. package/dist/esm/__mocks__/rehype-external-links.js +0 -2
  316. package/dist/esm/__mocks__/rehype-highlight.d.ts +0 -2
  317. package/dist/esm/__mocks__/rehype-highlight.js +0 -2
  318. package/dist/esm/__mocks__/rehype-sanitize.d.ts +0 -2
  319. package/dist/esm/__mocks__/rehype-sanitize.js +0 -2
  320. package/dist/esm/__mocks__/rehype-unwrap-images.d.ts +0 -2
  321. package/dist/esm/__mocks__/rehype-unwrap-images.js +0 -2
@@ -1,75 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const jsx_runtime_1 = require("react/jsx-runtime");
16
- require("@testing-library/jest-dom");
17
- const react_core_1 = require("@patternfly/react-core");
18
- const react_1 = require("@testing-library/react");
19
- const ChatbotConversationHistoryDropdown_1 = __importDefault(require("./ChatbotConversationHistoryDropdown"));
20
- describe('ChatbotConversationHistoryDropdown', () => {
21
- const onSelect = jest.fn();
22
- const menuItems = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_core_1.DropdownItem, { children: "Rename" }), (0, jsx_runtime_1.jsx)(react_core_1.DropdownItem, { children: "Delete" })] }));
23
- it('should render the dropdown', () => {
24
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryDropdown_1.default, { menuItems: menuItems, menuClassName: "custom-class" }));
25
- expect(react_1.screen.queryByRole('menuitem', { name: /Conversation options/i })).toBeInTheDocument();
26
- });
27
- it('should display the dropdown menuItems', () => {
28
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryDropdown_1.default, { menuItems: menuItems }));
29
- const toggle = react_1.screen.queryByRole('menuitem', { name: /Conversation options/i });
30
- expect(toggle).toBeInTheDocument();
31
- react_1.fireEvent.click(toggle);
32
- (0, react_1.waitFor)(() => {
33
- expect(react_1.screen.getByText('Rename')).toBeInTheDocument();
34
- expect(react_1.screen.getByText('Delete')).toBeInTheDocument();
35
- });
36
- });
37
- it('should invoke onSelect callback when menuitem is clicked', () => {
38
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryDropdown_1.default, { menuItems: menuItems, onSelect: onSelect }));
39
- const toggle = react_1.screen.queryByRole('menuitem', { name: /Conversation options/i });
40
- react_1.fireEvent.click(toggle);
41
- react_1.fireEvent.click(react_1.screen.getByText('Rename'));
42
- expect(onSelect).toHaveBeenCalled();
43
- });
44
- it('should toggle the dropdown when menuitem is clicked', () => {
45
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryDropdown_1.default, { menuItems: menuItems, onSelect: onSelect }));
46
- const toggle = react_1.screen.queryByRole('menuitem', { name: /Conversation options/i });
47
- react_1.fireEvent.click(toggle);
48
- react_1.fireEvent.click(react_1.screen.getByText('Delete'));
49
- expect(onSelect).toHaveBeenCalled();
50
- expect(react_1.screen.queryByText('Delete')).not.toBeInTheDocument();
51
- });
52
- it('should close the dropdown when user clicks outside', () => {
53
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryDropdown_1.default, { menuItems: menuItems, onSelect: onSelect }));
54
- const toggle = react_1.screen.queryByRole('menuitem', { name: /Conversation options/i });
55
- react_1.fireEvent.click(toggle);
56
- expect(react_1.screen.queryByText('Delete')).toBeInTheDocument();
57
- react_1.fireEvent.click(toggle.parentElement);
58
- expect(react_1.screen.queryByText('Delete')).not.toBeInTheDocument();
59
- });
60
- it('should show the tooltip when the user hovers over the toggle button', () => __awaiter(void 0, void 0, void 0, function* () {
61
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryDropdown_1.default, { menuItems: menuItems, label: "Actions dropdown" }));
62
- const toggle = react_1.screen.queryByRole('menuitem', { name: /Actions dropdown/i });
63
- (0, react_1.fireEvent)(toggle, new MouseEvent('mouseenter', {
64
- bubbles: false,
65
- cancelable: false
66
- }));
67
- yield (0, react_1.waitFor)(() => {
68
- expect(react_1.screen.queryByText('Actions dropdown')).toBeInTheDocument();
69
- });
70
- }));
71
- it('should be able to set a custom aria-label', () => {
72
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryDropdown_1.default, { menuItems: menuItems, "aria-label": "Custom conversation options" }));
73
- expect(react_1.screen.queryByRole('menuitem', { name: /Custom conversation options/i })).toBeInTheDocument();
74
- });
75
- });
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1,277 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const jsx_runtime_1 = require("react/jsx-runtime");
16
- require("@testing-library/jest-dom");
17
- const react_1 = require("@testing-library/react");
18
- const Chatbot_1 = require("../Chatbot/Chatbot");
19
- const ChatbotConversationHistoryNav_1 = __importDefault(require("./ChatbotConversationHistoryNav"));
20
- const react_core_1 = require("@patternfly/react-core");
21
- const react_icons_1 = require("@patternfly/react-icons");
22
- const ERROR = {
23
- bodyText: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["To try again, check your connection and reload this page. If the issue persists,", ' ', (0, jsx_runtime_1.jsx)("a", { href: "", children: "contact the support team" }), "."] })),
24
- buttonText: 'Reload',
25
- buttonIcon: (0, jsx_runtime_1.jsx)(react_core_1.Spinner, { size: "sm" }),
26
- hasButton: true,
27
- titleText: 'Could not load chat history',
28
- status: react_core_1.EmptyStateStatus.danger,
29
- onClick: () => alert('Clicked Reload')
30
- };
31
- const NO_RESULTS = {
32
- bodyText: 'Adjust your search query and try again. Check your spelling or try a more general term.',
33
- titleText: 'No results found',
34
- icon: react_icons_1.SearchIcon
35
- };
36
- const EMPTY_STATE = {
37
- bodyText: 'Access timely assistance by starting a conversation with an AI model.',
38
- titleText: 'Start a new chat',
39
- icon: react_icons_1.OutlinedCommentsIcon
40
- };
41
- const ERROR_WITHOUT_BUTTON = {
42
- bodyText: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["To try again, check your connection and reload this page. If the issue persists,", ' ', (0, jsx_runtime_1.jsx)("a", { href: "", children: "contact the support team" }), "."] })),
43
- buttonText: 'Reload',
44
- buttonIcon: (0, jsx_runtime_1.jsx)(react_core_1.Spinner, { size: "sm" }),
45
- hasButton: false,
46
- titleText: 'Could not load chat history',
47
- status: react_core_1.EmptyStateStatus.danger,
48
- onClick: () => alert('Clicked Reload')
49
- };
50
- describe('ChatbotConversationHistoryNav', () => {
51
- const onDrawerToggle = jest.fn();
52
- const initialConversations = [
53
- {
54
- id: '1',
55
- text: 'ChatBot documentation'
56
- }
57
- ];
58
- it('should open the conversation history navigation drawer', () => {
59
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations }));
60
- expect(react_1.screen.queryByText('ChatBot documentation')).toBeInTheDocument();
61
- });
62
- it('should display the conversations for grouped conversations', () => {
63
- const groupedConversations = {
64
- Today: [...initialConversations, { id: '2', text: 'Chatbot extension' }]
65
- };
66
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: groupedConversations }));
67
- expect(react_1.screen.queryByText('Chatbot extension')).toBeInTheDocument();
68
- });
69
- it('should apply the reversed class when reverseButtonOrder is true', () => {
70
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: true, conversations: initialConversations }));
71
- expect(react_1.screen.getByTestId('chatbot-nav-drawer-actions')).toHaveClass('pf-v6-c-drawer__actions--reversed');
72
- });
73
- it('should disable new chat button', () => {
74
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: true, conversations: initialConversations, newChatButtonProps: { isDisabled: true }, onNewChat: jest.fn() }));
75
- expect(react_1.screen.getByRole('button', { name: 'New chat' })).toBeDisabled();
76
- });
77
- it('should not apply the reversed class when reverseButtonOrder is false', () => {
78
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, conversations: initialConversations }));
79
- expect(react_1.screen.getByTestId('chatbot-nav-drawer-actions')).not.toHaveClass('pf-v6-c-drawer__actions--reversed');
80
- });
81
- it('should invoke handleTextInputChange callback when user searches for conversations', () => {
82
- const handleSearch = jest.fn();
83
- const groupedConversations = {
84
- Today: [...initialConversations, { id: '2', text: 'Chatbot extension' }]
85
- };
86
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, conversations: groupedConversations, handleTextInputChange: handleSearch }));
87
- const searchInput = react_1.screen.getByPlaceholderText(/Search/i);
88
- react_1.fireEvent.change(searchInput, { target: { value: 'Chatbot' } });
89
- expect(handleSearch).toHaveBeenCalledWith('Chatbot');
90
- });
91
- it('should close the drawer when escape key is pressed', () => __awaiter(void 0, void 0, void 0, function* () {
92
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations }));
93
- react_1.fireEvent.keyDown(react_1.screen.getByPlaceholderText(/Search/i), {
94
- key: 'Escape',
95
- code: 'Escape',
96
- keyCode: 27,
97
- charCode: 27
98
- });
99
- (0, react_1.waitFor)(() => {
100
- expect(react_1.screen.queryByText('ChatBot documentation')).not.toBeInTheDocument();
101
- });
102
- }));
103
- it('should be resizable', () => {
104
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerPanelContentProps: { isResizable: true, minSize: '200px' } }));
105
- expect(react_1.screen.getByRole('dialog', { name: /Resize/i })).toBeTruthy();
106
- expect(react_1.screen.getByRole('separator', { name: /Resize/i })).toBeTruthy();
107
- expect(react_1.screen.getByRole('dialog', { name: /Resize/i })).toHaveAttribute('style', '--pf-v6-c-drawer__panel--md--FlexBasis: 384px; --pf-v6-c-drawer__panel--md--FlexBasis--min: 200px;');
108
- });
109
- it('should accept drawerContentProps', () => {
110
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerContentProps: { className: 'test' } }));
111
- const element = container.querySelector('.test');
112
- expect(element).toBeInTheDocument();
113
- });
114
- it('should accept drawerContentBodyProps', () => {
115
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerContentBodyProps: { className: 'test' } }));
116
- const element = container.querySelector('.test');
117
- expect(element).toBeInTheDocument();
118
- });
119
- it('should accept drawerHeadProps', () => {
120
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerHeadProps: { className: 'test' } }));
121
- const element = container.querySelector('.test');
122
- expect(element).toBeInTheDocument();
123
- });
124
- it('should accept drawerActionsProps', () => {
125
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerActionsProps: { className: 'test' } }));
126
- const element = container.querySelector('.test');
127
- expect(element).toBeInTheDocument();
128
- });
129
- it('should accept drawerCloseButtonProps', () => {
130
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerCloseButtonProps: { className: 'test' } }));
131
- const element = container.querySelector('.test');
132
- expect(element).toBeInTheDocument();
133
- });
134
- it('should accept drawerPanelBodyProps', () => {
135
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, drawerPanelBodyProps: { className: 'test' } }));
136
- const element = container.querySelector('.test');
137
- expect(element).toBeInTheDocument();
138
- });
139
- it('should show loading state if triggered', () => {
140
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, isLoading: true }));
141
- expect(react_1.screen.getByRole('dialog', { name: /Loading chatbot chat history/i })).toBeTruthy();
142
- expect(react_1.screen.getByRole('button', { name: /Close drawer panel/i })).toBeTruthy();
143
- });
144
- it('should pass alternative aria label to loading state', () => {
145
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, isLoading: true, loadingState: { screenreaderText: 'I am a test' } }));
146
- expect(react_1.screen.getByRole('dialog', { name: /I am a test/i })).toBeTruthy();
147
- });
148
- it('should accept errorState', () => {
149
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, errorState: ERROR }));
150
- expect(react_1.screen.getByRole('dialog', {
151
- name: /Could not load chat history To try again, check your connection and reload this page. If the issue persists, contact the support team . Loading... Reload/i
152
- })).toBeTruthy();
153
- expect(react_1.screen.getByRole('button', { name: /Close drawer panel/i })).toBeTruthy();
154
- expect(react_1.screen.getByRole('button', { name: /Loading... Reload/i })).toBeTruthy();
155
- expect(react_1.screen.getByRole('textbox', { name: /Search previous conversations/i })).toBeTruthy();
156
- expect(react_1.screen.getByRole('heading', { name: /Could not load chat history/i })).toBeTruthy();
157
- });
158
- it('should accept errorState without button', () => {
159
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, errorState: ERROR_WITHOUT_BUTTON }));
160
- expect(react_1.screen.getByRole('dialog', {
161
- name: /Could not load chat history To try again, check your connection and reload this page. If the issue persists, contact the support team ./i
162
- })).toBeTruthy();
163
- expect(react_1.screen.getByRole('button', { name: /Close drawer panel/i })).toBeTruthy();
164
- expect(react_1.screen.queryByRole('button', { name: /Loading... Reload/i })).toBeFalsy();
165
- expect(react_1.screen.getByRole('textbox', { name: /Search previous conversations/i })).toBeTruthy();
166
- expect(react_1.screen.getByRole('heading', { name: /Could not load chat history/i })).toBeTruthy();
167
- });
168
- it('should show loading state over error state if both are supplied', () => {
169
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, isLoading: true, errorState: ERROR }));
170
- expect(react_1.screen.getByRole('dialog', { name: /Loading/i })).toBeTruthy();
171
- });
172
- it('should accept emptyState', () => {
173
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, emptyState: EMPTY_STATE }));
174
- expect(react_1.screen.getByRole('dialog', {
175
- name: /Start a new chat Access timely assistance by starting a conversation with an AI model./i
176
- })).toBeTruthy();
177
- });
178
- it('should accept no results state', () => {
179
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, noResultsState: NO_RESULTS }));
180
- expect(react_1.screen.getByRole('dialog', {
181
- name: /No results found Adjust your search query and try again. Check your spelling or try a more general term./i
182
- })).toBeTruthy();
183
- });
184
- it('should handle isCompact', () => {
185
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: jest.fn(), conversations: initialConversations, noResultsState: NO_RESULTS, isCompact: true, "data-testid": "drawer" }));
186
- expect(react_1.screen.getByTestId('drawer')).toHaveClass('pf-m-compact');
187
- });
188
- it('should display the default title', () => {
189
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations }));
190
- expect(react_1.screen.getByText('Chat history')).toBeInTheDocument();
191
- });
192
- it('should display the custom title', () => {
193
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { title: "PatternFly history", onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations }));
194
- expect(react_1.screen.getByText('PatternFly history')).toBeInTheDocument();
195
- });
196
- it('should display the clock icon', () => {
197
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations }));
198
- const iconElement = container.querySelector('.pf-chatbot__title-icon');
199
- expect(iconElement).toBeInTheDocument();
200
- });
201
- it('Passes menuProps to Menu', () => {
202
- var _a;
203
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, menuProps: { className: 'test' } }));
204
- expect((_a = react_1.screen.getByRole('menu').parentElement) === null || _a === void 0 ? void 0 : _a.parentElement).toHaveClass('test');
205
- });
206
- it('Passes menuContentProps to MenuContent', () => {
207
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, menuContentProps: { className: 'test' } }));
208
- expect(react_1.screen.getByRole('menu').parentElement).toHaveClass('test');
209
- });
210
- it('Passes menuListProps to MenuList when conversations is an array', () => {
211
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, menuListProps: { className: 'test' } }));
212
- expect(react_1.screen.getByRole('menu')).toHaveClass('test');
213
- });
214
- it('Passes menuListProps to MenuList when conversations is an object', () => {
215
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: { Today: initialConversations }, menuListProps: { Today: { className: 'test' } } }));
216
- expect(react_1.screen.getByRole('menu')).toHaveClass('test');
217
- });
218
- it('Passes menuGroupProps to MenuGroup when conversations is an object', () => {
219
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: { Today: initialConversations }, menuGroupProps: { Today: { className: 'test' } } }));
220
- expect(react_1.screen.getByRole('menu').parentElement).toHaveClass('test');
221
- });
222
- it('Passes additionalProps to MenuItem', () => {
223
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: [{ id: '1', text: 'ChatBot documentation', additionalProps: { className: 'test' } }] }));
224
- expect(react_1.screen.getByRole('menuitem')).toHaveClass('test');
225
- });
226
- it('should be able to spread search input props when searchInputProps is passed', () => {
227
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, handleTextInputChange: jest.fn(), searchInputProps: { value: 'I am a sample search' } }));
228
- expect(react_1.screen.getByRole('dialog', { name: /Chat history I am a sample search/i })).toBeInTheDocument();
229
- });
230
- it('Does not render search actions by default', () => {
231
- var _a, _b;
232
- const handleSearch = jest.fn();
233
- const groupedConversations = {
234
- Today: [...initialConversations, { id: '2', text: 'Chatbot extension' }]
235
- };
236
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, conversations: groupedConversations, handleTextInputChange: handleSearch }));
237
- const searchInput = react_1.screen.getByPlaceholderText(/Search/i);
238
- expect((_a = searchInput.parentElement) === null || _a === void 0 ? void 0 : _a.previousElementSibling).toBeNull();
239
- expect((_b = searchInput.parentElement) === null || _b === void 0 ? void 0 : _b.nextElementSibling).toBeNull();
240
- });
241
- it('Renders with action at start when searchActionStart is passed', () => {
242
- const handleSearch = jest.fn();
243
- const groupedConversations = {
244
- Today: [...initialConversations, { id: '2', text: 'Chatbot extension' }]
245
- };
246
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, conversations: groupedConversations, handleTextInputChange: handleSearch, searchActionStart: (0, jsx_runtime_1.jsx)("div", { children: "Search action start test" }) }));
247
- expect(react_1.screen.getByText('Search action start test')).toBeVisible();
248
- });
249
- it('Renders with action at end when searchActionEnd is passed', () => {
250
- const handleSearch = jest.fn();
251
- const groupedConversations = {
252
- Today: [...initialConversations, { id: '2', text: 'Chatbot extension' }]
253
- };
254
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, handleTextInputChange: handleSearch, conversations: groupedConversations, searchActionEnd: (0, jsx_runtime_1.jsx)("div", { children: "Search action end test" }) }));
255
- expect(react_1.screen.getByText('Search action end test')).toBeVisible();
256
- });
257
- it('Overrides default search input and actions when searchToolbar is passed', () => {
258
- const handleSearch = jest.fn();
259
- const groupedConversations = {
260
- Today: [...initialConversations, { id: '2', text: 'Chatbot extension' }]
261
- };
262
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), reverseButtonOrder: false, conversations: groupedConversations, handleTextInputChange: handleSearch, searchActionStart: (0, jsx_runtime_1.jsx)("div", { children: "Search action start test" }), searchActionEnd: (0, jsx_runtime_1.jsx)("div", { children: "Search action end test" }), searchToolbar: (0, jsx_runtime_1.jsx)("div", { children: "Custom toolbar" }) }));
263
- expect(react_1.screen.queryByPlaceholderText(/Search/i)).not.toBeInTheDocument();
264
- expect(react_1.screen.queryByText('Search action start test')).not.toBeInTheDocument();
265
- expect(react_1.screen.queryByText('Search action end test')).not.toBeInTheDocument();
266
- expect(react_1.screen.getByText('Custom toolbar')).toBeInTheDocument();
267
- });
268
- it('overrides nav title heading level when navTitleProps.headingLevel is passed', () => {
269
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: { Today: initialConversations }, navTitleProps: { headingLevel: 'h1' } }));
270
- expect(react_1.screen.queryByRole('heading', { name: /Chat history/i, level: 2 })).not.toBeInTheDocument();
271
- expect(react_1.screen.getByRole('heading', { name: /Chat history/i, level: 1 })).toBeInTheDocument();
272
- });
273
- it('overrides nav title icon when navTitleIcon is passed in', () => {
274
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotConversationHistoryNav_1.default, { onDrawerToggle: onDrawerToggle, isDrawerOpen: true, displayMode: Chatbot_1.ChatbotDisplayMode.fullscreen, setIsDrawerOpen: jest.fn(), conversations: initialConversations, navTitleIcon: (0, jsx_runtime_1.jsx)(react_icons_1.BellIcon, { "data-testid": "bell" }) }));
275
- expect(react_1.screen.getByTestId('bell')).toBeInTheDocument();
276
- });
277
- });
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1,27 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_1 = require("@testing-library/react");
8
- const ChatbotFooter_1 = __importDefault(require("./ChatbotFooter"));
9
- require("@testing-library/jest-dom");
10
- describe('ChatbotFooter', () => {
11
- it('should render ChatbotFooter with children', () => {
12
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotFooter_1.default, { children: "Chatbot Content" }));
13
- expect(react_1.screen.getByText('Chatbot Content')).toBeTruthy();
14
- });
15
- it('should render ChatbotFooter with custom classname', () => {
16
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotFooter_1.default, { className: "custom-class", children: "Chatbot Content" }));
17
- expect(container.querySelector('.custom-class')).toBeTruthy();
18
- });
19
- it('should handle isCompact', () => {
20
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotFooter_1.default, { isCompact: true, "data-testid": "footer", children: "Chatbot Content" }));
21
- expect(react_1.screen.getByTestId('footer')).toHaveClass('pf-m-compact');
22
- });
23
- it('should handle isPrimary', () => {
24
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotFooter_1.default, { isPrimary: true, "data-testid": "footer", children: "Chatbot Content" }));
25
- expect(react_1.screen.getByTestId('footer')).toHaveClass('pf-m-primary');
26
- });
27
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,87 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const jsx_runtime_1 = require("react/jsx-runtime");
16
- const react_1 = require("@testing-library/react");
17
- const ChatbotFootnote_1 = __importDefault(require("./ChatbotFootnote"));
18
- describe('ChatbotFooternote', () => {
19
- const onClick = jest.fn();
20
- const popoverProps = {
21
- title: 'Verify accuracy',
22
- description: 'description',
23
- bannerImage: {
24
- src: 'src',
25
- alt: 'alt'
26
- },
27
- cta: {
28
- label: 'Got it',
29
- onClick
30
- },
31
- link: {
32
- label: 'label',
33
- url: 'url'
34
- }
35
- };
36
- it('should render ChatbotFooternote', () => {
37
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotFootnote_1.default, { label: "Chatbot footer" }));
38
- expect(react_1.screen.getByText('Chatbot footer')).toBeTruthy();
39
- });
40
- it('should render ChatbotFooternote with popover', () => __awaiter(void 0, void 0, void 0, function* () {
41
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotFootnote_1.default, { label: "Chatbot footer", popover: popoverProps }));
42
- // click on the footer button
43
- (0, react_1.act)(() => {
44
- react_1.fireEvent.click(react_1.screen.getByRole('button'));
45
- });
46
- yield (0, react_1.waitFor)(() => {
47
- // Check if the popover is visible and click on the cta button
48
- react_1.screen.getByLabelText('More information');
49
- react_1.screen.getByText('Verify accuracy');
50
- react_1.fireEvent.click(react_1.screen.getByRole('button', { name: 'Got it' }));
51
- expect(onClick).toHaveBeenCalled();
52
- });
53
- }));
54
- it('should call onClick handler when popover cta button is clicked', () => __awaiter(void 0, void 0, void 0, function* () {
55
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotFootnote_1.default, { label: "Chatbot footer", popover: popoverProps }));
56
- // click on the footer button
57
- (0, react_1.act)(() => {
58
- react_1.fireEvent.click(react_1.screen.getByRole('button'));
59
- });
60
- yield (0, react_1.waitFor)(() => {
61
- // Check if the popover is visible and click on the cta button
62
- react_1.screen.getByLabelText('More information');
63
- react_1.screen.getByText('Verify accuracy');
64
- react_1.fireEvent.click(react_1.screen.getByRole('button', { name: 'Got it' }));
65
- expect(onClick).toHaveBeenCalled();
66
- });
67
- }));
68
- it('should close the popover when escape is pressed', () => __awaiter(void 0, void 0, void 0, function* () {
69
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotFootnote_1.default, { label: "Chatbot footer", popover: popoverProps }));
70
- // click on the footer button
71
- (0, react_1.act)(() => {
72
- react_1.fireEvent.click(react_1.screen.getByRole('button'));
73
- });
74
- yield (0, react_1.waitFor)(() => {
75
- // Check if the popover is visible and click on the cta button
76
- react_1.screen.getByLabelText('More information');
77
- react_1.screen.getByText('Verify accuracy');
78
- });
79
- (0, react_1.act)(() => {
80
- // trigger escape to close the popover
81
- react_1.fireEvent.keyDown(document, { key: 'Escape', code: 'Escape' });
82
- });
83
- yield (0, react_1.waitFor)(() => {
84
- expect(react_1.screen.queryByText('Verify accuracy')).toBeFalsy();
85
- });
86
- }));
87
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_1 = require("@testing-library/react");
8
- const ChatbotHeader_1 = __importDefault(require("./ChatbotHeader"));
9
- describe('ChatbotHeader', () => {
10
- it('should render ChatbotHeader with children', () => {
11
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeader_1.default, { children: "Chatbot Header" }));
12
- expect(react_1.screen.getByText('Chatbot Header')).toBeTruthy();
13
- });
14
- it('should render ChatbotHeader with custom classname', () => {
15
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeader_1.default, { className: "custom-header-class", children: "Chatbot Content" }));
16
- expect(container.querySelector('.custom-header-class')).toBeTruthy();
17
- });
18
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_1 = require("@testing-library/react");
8
- const ChatbotHeaderActions_1 = __importDefault(require("./ChatbotHeaderActions"));
9
- describe('ChatbotHeaderActions', () => {
10
- it('should render ChatbotHeaderActions with children', () => {
11
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderActions_1.default, { children: "Chatbot Header" }));
12
- expect(react_1.screen.getByText('Chatbot Header')).toBeTruthy();
13
- });
14
- it('should render ChatbotHeaderActions with custom classname', () => {
15
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderActions_1.default, { className: "custom-header-action-class", children: "Chatbot Content" }));
16
- expect(container.querySelector('.custom-header-action-class')).toBeTruthy();
17
- });
18
- });
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const react_1 = require("@testing-library/react");
5
- const ChatbotHeaderCloseButton_1 = require("./ChatbotHeaderCloseButton");
6
- require("@testing-library/jest-dom");
7
- describe('ChatbotHeaderCloseButton', () => {
8
- it('should render ChatbotHeaderCloseButton', () => {
9
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderCloseButton_1.ChatbotHeaderCloseButton, { className: "custom-header-close-button", onClick: jest.fn() }));
10
- expect(container.querySelector('.custom-header-close-button')).toBeTruthy();
11
- });
12
- it('should call onClick handler when close button is pressed', () => {
13
- const onClick = jest.fn();
14
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderCloseButton_1.ChatbotHeaderCloseButton, { className: "custom-header-close-button", onClick: onClick }));
15
- react_1.fireEvent.click(react_1.screen.getByRole('button', { name: 'Close' }));
16
- expect(onClick).toHaveBeenCalled();
17
- });
18
- it('should render button with isCompact', () => {
19
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderCloseButton_1.ChatbotHeaderCloseButton, { "data-testid": "close-button", onClick: jest.fn(), isCompact: true }));
20
- expect(react_1.screen.getByTestId('close-button')).toHaveClass('pf-m-compact');
21
- });
22
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_1 = require("@testing-library/react");
8
- const ChatbotHeaderMain_1 = __importDefault(require("./ChatbotHeaderMain"));
9
- describe('ChatbotHeaderMain', () => {
10
- it('should render ChatbotHeaderMain with children', () => {
11
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderMain_1.default, { children: "Chatbot Header Main" }));
12
- expect(react_1.screen.getByText('Chatbot Header Main')).toBeTruthy();
13
- });
14
- it('should render ChatbotHeaderMain with custom classname', () => {
15
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderMain_1.default, { className: "custom-header-class", children: "Chatbot Content" }));
16
- expect(container.querySelector('.custom-header-class')).toBeTruthy();
17
- });
18
- });
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const react_1 = require("@testing-library/react");
5
- const ChatbotHeaderMenu_1 = require("./ChatbotHeaderMenu");
6
- require("@testing-library/jest-dom");
7
- describe('ChatbotHeaderMenu', () => {
8
- it('should render ChatbotHeaderMenu with custom class', () => {
9
- const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderMenu_1.ChatbotHeaderMenu, { className: "custom-header-menu", onMenuToggle: jest.fn() }));
10
- expect(container.querySelector('.custom-header-menu')).toBeTruthy();
11
- });
12
- it('should call onMenuToggle when ChatbotHeaderMenu button is clicked', () => {
13
- const onMenuToggle = jest.fn();
14
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderMenu_1.ChatbotHeaderMenu, { className: "custom-header-menu", onMenuToggle: onMenuToggle }));
15
- react_1.fireEvent.click(react_1.screen.getByRole('button', { name: 'Chat history drawer' }));
16
- expect(onMenuToggle).toHaveBeenCalled();
17
- });
18
- it('should handle isCompact', () => {
19
- (0, react_1.render)((0, jsx_runtime_1.jsx)(ChatbotHeaderMenu_1.ChatbotHeaderMenu, { className: "custom-header-menu", onMenuToggle: jest.fn(), isCompact: true, "data-testid": "button" }));
20
- expect(react_1.screen.getByTestId('button')).toHaveClass('pf-m-compact');
21
- });
22
- });
@@ -1 +0,0 @@
1
- import '@testing-library/jest-dom';