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