@coveo/quantic 3.44.1 → 3.44.2

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 (203) hide show
  1. package/force-app/main/default/classes/OrganizationEndpointsTest.cls +71 -15
  2. package/force-app/main/default/classes/RecommendationsControllerTest.cls +1 -1
  3. package/force-app/main/default/lwc/quanticTabBar/quanticTabBar.js +148 -125
  4. package/force-app/main/default/staticresources/coveoheadless/case-assist/headless.js +16 -16
  5. package/force-app/main/default/staticresources/coveoheadless/headless.js +17 -17
  6. package/force-app/main/default/staticresources/coveoheadless/insight/headless.js +16 -16
  7. package/force-app/main/default/staticresources/coveoheadless/recommendation/headless.js +16 -16
  8. package/package.json +33 -31
  9. package/force-app/main/default/lwc/quanticAriaLive/__tests__/quanticAriaLive.test.js +0 -106
  10. package/force-app/main/default/lwc/quanticBreadcrumbManager/__tests__/quanticBreadcrumbManager.test.js +0 -752
  11. package/force-app/main/default/lwc/quanticBreadcrumbManager/e2e/data.ts +0 -130
  12. package/force-app/main/default/lwc/quanticBreadcrumbManager/e2e/fixture.ts +0 -87
  13. package/force-app/main/default/lwc/quanticBreadcrumbManager/e2e/pageObject.ts +0 -282
  14. package/force-app/main/default/lwc/quanticBreadcrumbManager/e2e/quanticBreadcrumbManager.e2e.ts +0 -208
  15. package/force-app/main/default/lwc/quanticCarousel/__tests__/quanticCarousel.test.js +0 -262
  16. package/force-app/main/default/lwc/quanticCaseClassification/__tests__/quanticCaseClassification.test.js +0 -819
  17. package/force-app/main/default/lwc/quanticCaseClassification/e2e/data.ts +0 -23
  18. package/force-app/main/default/lwc/quanticCaseClassification/e2e/fixture.ts +0 -51
  19. package/force-app/main/default/lwc/quanticCaseClassification/e2e/pageObject.ts +0 -152
  20. package/force-app/main/default/lwc/quanticCaseClassification/e2e/quanticCaseClassification.e2e.ts +0 -269
  21. package/force-app/main/default/lwc/quanticCategoryFacet/__tests__/quanticCategoryFacet.test.js +0 -1183
  22. package/force-app/main/default/lwc/quanticCategoryFacet/e2e/data.ts +0 -91
  23. package/force-app/main/default/lwc/quanticCategoryFacet/e2e/fixture.ts +0 -79
  24. package/force-app/main/default/lwc/quanticCategoryFacet/e2e/pageObject.ts +0 -55
  25. package/force-app/main/default/lwc/quanticCategoryFacet/e2e/quanticCategoryFacet.e2e.ts +0 -219
  26. package/force-app/main/default/lwc/quanticCitation/__tests__/quanticCitation.test.js +0 -581
  27. package/force-app/main/default/lwc/quanticColoredResultBadge/__tests__/quanticColoredResultBadge.test.js +0 -212
  28. package/force-app/main/default/lwc/quanticDateFacet/__tests__/quanticDateFacet.test.js +0 -688
  29. package/force-app/main/default/lwc/quanticDateFacet/e2e/data.ts +0 -44
  30. package/force-app/main/default/lwc/quanticDateFacet/e2e/fixture.ts +0 -72
  31. package/force-app/main/default/lwc/quanticDateFacet/e2e/pageObject.ts +0 -27
  32. package/force-app/main/default/lwc/quanticDateFacet/e2e/quanticDateFacet.e2e.ts +0 -167
  33. package/force-app/main/default/lwc/quanticDidYouMean/__tests__/quanticDidYouMean.test.js +0 -348
  34. package/force-app/main/default/lwc/quanticDidYouMean/e2e/data.ts +0 -48
  35. package/force-app/main/default/lwc/quanticDidYouMean/e2e/fixture.ts +0 -84
  36. package/force-app/main/default/lwc/quanticDidYouMean/e2e/pageObject.ts +0 -173
  37. package/force-app/main/default/lwc/quanticDidYouMean/e2e/quanticDidYouMean.e2e.ts +0 -219
  38. package/force-app/main/default/lwc/quanticDocumentSuggestion/__tests__/quanticDocumentSuggestion.test.js +0 -404
  39. package/force-app/main/default/lwc/quanticDocumentSuggestion/e2e/fixture.ts +0 -38
  40. package/force-app/main/default/lwc/quanticDocumentSuggestion/e2e/pageObject.ts +0 -52
  41. package/force-app/main/default/lwc/quanticDocumentSuggestion/e2e/quanticDocumentSuggestion.e2e.ts +0 -102
  42. package/force-app/main/default/lwc/quanticFacet/__tests__/quanticFacet.test.js +0 -1105
  43. package/force-app/main/default/lwc/quanticFacet/e2e/data.ts +0 -62
  44. package/force-app/main/default/lwc/quanticFacet/e2e/fixture.ts +0 -78
  45. package/force-app/main/default/lwc/quanticFacet/e2e/pageObject.ts +0 -67
  46. package/force-app/main/default/lwc/quanticFacet/e2e/quanticFacet.e2e.ts +0 -242
  47. package/force-app/main/default/lwc/quanticFacetCaption/__tests__/quanticFacetCaption.test.js +0 -28
  48. package/force-app/main/default/lwc/quanticFacetManager/__tests__/quanticFacetManager.test.js +0 -178
  49. package/force-app/main/default/lwc/quanticFacetManager/e2e/data.ts +0 -59
  50. package/force-app/main/default/lwc/quanticFacetManager/e2e/fixture.ts +0 -75
  51. package/force-app/main/default/lwc/quanticFacetManager/e2e/pageObject.ts +0 -23
  52. package/force-app/main/default/lwc/quanticFacetManager/e2e/quanticFacetManager.e2e.ts +0 -82
  53. package/force-app/main/default/lwc/quanticFeedback/__tests__/quanticFeedback.test.js +0 -403
  54. package/force-app/main/default/lwc/quanticFeedbackModal/__tests__/quanticFeedbackModal.test.js +0 -448
  55. package/force-app/main/default/lwc/quanticFeedbackModalQna/__tests__/quanticFeedbackModalQna.test.js +0 -298
  56. package/force-app/main/default/lwc/quanticFoldedResultList/__tests__/quanticFoldedResultList.test.js +0 -323
  57. package/force-app/main/default/lwc/quanticFoldedResultList/e2e/fixture.ts +0 -74
  58. package/force-app/main/default/lwc/quanticFoldedResultList/e2e/pageObject.ts +0 -81
  59. package/force-app/main/default/lwc/quanticFoldedResultList/e2e/quanticFoldedResultList.e2e.ts +0 -69
  60. package/force-app/main/default/lwc/quanticGeneratedAnswer/__tests__/quanticGeneratedAnswer.test.js +0 -1575
  61. package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/agentData.ts +0 -279
  62. package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/data.ts +0 -56
  63. package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/fixture-agent.ts +0 -77
  64. package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/fixture.ts +0 -194
  65. package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/pageObject.ts +0 -599
  66. package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/quanticGeneratedAnswer.e2e.ts +0 -333
  67. package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/quanticGeneratedAnswerAgent.e2e.ts +0 -298
  68. package/force-app/main/default/lwc/quanticGeneratedAnswerBody/__tests__/quanticGeneratedAnswerBody.test.js +0 -418
  69. package/force-app/main/default/lwc/quanticGeneratedAnswerContent/__tests__/quanticGeneratedAnswerContent.test.js +0 -447
  70. package/force-app/main/default/lwc/quanticGeneratedAnswerCopyToClipboard/__tests__/quanticGeneratedAnswerCopyToClipboard.test.js +0 -129
  71. package/force-app/main/default/lwc/quanticGeneratedAnswerFollowUpInput/__tests__/quanticGeneratedAnswerFollowUpInput.test.js +0 -466
  72. package/force-app/main/default/lwc/quanticGeneratedAnswerStreamOfThought/__tests__/quanticGeneratedAnswerStreamOfThought.test.js +0 -402
  73. package/force-app/main/default/lwc/quanticGeneratedAnswerStreamOfThought/__tests__/stepsUtils.test.js +0 -118
  74. package/force-app/main/default/lwc/quanticGeneratedAnswerThread/__tests__/quanticGeneratedAnswerThread.test.js +0 -285
  75. package/force-app/main/default/lwc/quanticHeading/__tests__/quanticHeading.test.js +0 -71
  76. package/force-app/main/default/lwc/quanticHeadlessLoader/__tests__/quanticHeadlessLoader.test.js +0 -651
  77. package/force-app/main/default/lwc/quanticInsightInterface/__tests__/quanticInsightInterface.test.js +0 -194
  78. package/force-app/main/default/lwc/quanticInsightSummary/__tests__/quanticInsightSummary.test.js +0 -230
  79. package/force-app/main/default/lwc/quanticModal/__tests__/quanticModal.test.js +0 -205
  80. package/force-app/main/default/lwc/quanticNotifications/__tests__/quanticNotifications.test.js +0 -309
  81. package/force-app/main/default/lwc/quanticNotifications/e2e/fixture.ts +0 -62
  82. package/force-app/main/default/lwc/quanticNotifications/e2e/pageObject.ts +0 -55
  83. package/force-app/main/default/lwc/quanticNotifications/e2e/quanticNotifications.e2e.ts +0 -47
  84. package/force-app/main/default/lwc/quanticNumericFacet/__tests__/quanticNumericFacet.test.js +0 -953
  85. package/force-app/main/default/lwc/quanticNumericFacet/e2e/data.ts +0 -48
  86. package/force-app/main/default/lwc/quanticNumericFacet/e2e/fixture.ts +0 -75
  87. package/force-app/main/default/lwc/quanticNumericFacet/e2e/pageObject.ts +0 -59
  88. package/force-app/main/default/lwc/quanticNumericFacet/e2e/quanticNumericFacet.e2e.ts +0 -186
  89. package/force-app/main/default/lwc/quanticPager/__tests__/quanticPager.test.js +0 -430
  90. package/force-app/main/default/lwc/quanticPager/e2e/fixture.ts +0 -65
  91. package/force-app/main/default/lwc/quanticPager/e2e/pageObject.ts +0 -69
  92. package/force-app/main/default/lwc/quanticPager/e2e/quanticPager.e2e.ts +0 -106
  93. package/force-app/main/default/lwc/quanticPlaceholder/__tests__/quanticPlaceholder.test.js +0 -47
  94. package/force-app/main/default/lwc/quanticQuickviewContent/__tests__/data/defaultTestCase.json +0 -13
  95. package/force-app/main/default/lwc/quanticQuickviewContent/__tests__/data/youtubeTestCase.json +0 -14
  96. package/force-app/main/default/lwc/quanticQuickviewContent/__tests__/quanticQuickviewContent.test.js +0 -82
  97. package/force-app/main/default/lwc/quanticRadioButtonsGroup/__tests__/quanticRadioButtonsGroup.test.js +0 -273
  98. package/force-app/main/default/lwc/quanticRecentQueriesList/__tests__/quanticRecentQueriesList.test.js +0 -448
  99. package/force-app/main/default/lwc/quanticRecentQueriesList/e2e/fixture.ts +0 -43
  100. package/force-app/main/default/lwc/quanticRecentQueriesList/e2e/pageObject.ts +0 -55
  101. package/force-app/main/default/lwc/quanticRecentQueriesList/e2e/quanticRecentQueriesList.e2e.ts +0 -93
  102. package/force-app/main/default/lwc/quanticRecentResultsList/__tests__/quanticRecentResultsList.test.js +0 -516
  103. package/force-app/main/default/lwc/quanticRecentResultsList/e2e/fixture.ts +0 -43
  104. package/force-app/main/default/lwc/quanticRecentResultsList/e2e/pageObject.ts +0 -61
  105. package/force-app/main/default/lwc/quanticRecentResultsList/e2e/quanticRecentResultsList.e2e.ts +0 -48
  106. package/force-app/main/default/lwc/quanticRecommendationList/__tests__/quanticRecommendationList.test.js +0 -491
  107. package/force-app/main/default/lwc/quanticRecommendationList/e2e/fixture.ts +0 -36
  108. package/force-app/main/default/lwc/quanticRecommendationList/e2e/pageObject.ts +0 -52
  109. package/force-app/main/default/lwc/quanticRecommendationList/e2e/quanticRecommendationList.e2e.ts +0 -53
  110. package/force-app/main/default/lwc/quanticRefineModalContent/__tests__/quanticRefineModalContent.test.js +0 -747
  111. package/force-app/main/default/lwc/quanticRefineToggle/__tests__/quanticRefineToggle.test.js +0 -544
  112. package/force-app/main/default/lwc/quanticResultAction/__tests__/quanticResultAction.test.js +0 -262
  113. package/force-app/main/default/lwc/quanticResultActionBar/__tests__/quanticResultActionBar.test.js +0 -141
  114. package/force-app/main/default/lwc/quanticResultChildren/__tests__/quanticResultChildren.test.js +0 -340
  115. package/force-app/main/default/lwc/quanticResultCopyToClipboard/__tests__/quanticResultCopyToClipboard.test.js +0 -300
  116. package/force-app/main/default/lwc/quanticResultCopyToClipboard/e2e/fixture.ts +0 -49
  117. package/force-app/main/default/lwc/quanticResultCopyToClipboard/e2e/pageObject.ts +0 -49
  118. package/force-app/main/default/lwc/quanticResultCopyToClipboard/e2e/quanticResultCopyToClipboard.e2e.ts +0 -40
  119. package/force-app/main/default/lwc/quanticResultDate/__tests__/quanticResultDate.test.js +0 -144
  120. package/force-app/main/default/lwc/quanticResultField/__tests__/quanticResultField.test.js +0 -120
  121. package/force-app/main/default/lwc/quanticResultHighlightedTextField/__tests__/quanticResultHighlightedTextField.test.js +0 -209
  122. package/force-app/main/default/lwc/quanticResultLink/__tests__/quanticResultLink.test.js +0 -302
  123. package/force-app/main/default/lwc/quanticResultList/__tests__/quanticResultList.test.js +0 -342
  124. package/force-app/main/default/lwc/quanticResultList/e2e/fixture.ts +0 -70
  125. package/force-app/main/default/lwc/quanticResultList/e2e/pageObject.ts +0 -81
  126. package/force-app/main/default/lwc/quanticResultList/e2e/quanticResultList.e2e.ts +0 -69
  127. package/force-app/main/default/lwc/quanticResultMultiValueText/__tests__/quanticResultMultiValueText.test.js +0 -235
  128. package/force-app/main/default/lwc/quanticResultNumber/__tests__/quanticResultNumber.test.js +0 -144
  129. package/force-app/main/default/lwc/quanticResultPrintableUri/__tests__/quanticResultPrintableUri.test.js +0 -324
  130. package/force-app/main/default/lwc/quanticResultQuickview/__tests__/quanticResultQuickview.test.js +0 -308
  131. package/force-app/main/default/lwc/quanticResultQuickview/e2e/fixture.ts +0 -85
  132. package/force-app/main/default/lwc/quanticResultQuickview/e2e/pageObject.ts +0 -38
  133. package/force-app/main/default/lwc/quanticResultQuickview/e2e/quanticResultQuickView.e2e.ts +0 -66
  134. package/force-app/main/default/lwc/quanticResultTemplate/__tests__/quanticResultTemplate.test.js +0 -90
  135. package/force-app/main/default/lwc/quanticResultText/__tests__/quanticResultText.test.js +0 -155
  136. package/force-app/main/default/lwc/quanticResultsPerPage/__tests__/quanticResultsPerPage.test.js +0 -464
  137. package/force-app/main/default/lwc/quanticResultsPerPage/e2e/fixture.ts +0 -78
  138. package/force-app/main/default/lwc/quanticResultsPerPage/e2e/pageObject.ts +0 -85
  139. package/force-app/main/default/lwc/quanticResultsPerPage/e2e/quanticResultsPerPage.e2e.ts +0 -97
  140. package/force-app/main/default/lwc/quanticSearchBox/__tests__/quanticSearchBox.test.js +0 -487
  141. package/force-app/main/default/lwc/quanticSearchBox/e2e/fixture.ts +0 -86
  142. package/force-app/main/default/lwc/quanticSearchBox/e2e/pageObject.ts +0 -45
  143. package/force-app/main/default/lwc/quanticSearchBox/e2e/quanticSearchBox.e2e.ts +0 -159
  144. package/force-app/main/default/lwc/quanticSearchBoxInput/__tests__/quanticSearchBoxInput.test.js +0 -743
  145. package/force-app/main/default/lwc/quanticSearchBoxSuggestionsList/__tests__/quanticSearchBoxSuggestionsList.test.js +0 -571
  146. package/force-app/main/default/lwc/quanticSearchBoxSuggestionsList/e2e/fixture.ts +0 -113
  147. package/force-app/main/default/lwc/quanticSearchBoxSuggestionsList/e2e/pageObject.ts +0 -113
  148. package/force-app/main/default/lwc/quanticSearchBoxSuggestionsList/e2e/quanticSearchBoxSuggestionsList.e2e.ts +0 -282
  149. package/force-app/main/default/lwc/quanticSmartSnippet/__tests__/quanticSmartSnippet.test.js +0 -341
  150. package/force-app/main/default/lwc/quanticSmartSnippet/e2e/data.ts +0 -21
  151. package/force-app/main/default/lwc/quanticSmartSnippet/e2e/fixture.ts +0 -93
  152. package/force-app/main/default/lwc/quanticSmartSnippet/e2e/pageObject.ts +0 -196
  153. package/force-app/main/default/lwc/quanticSmartSnippet/e2e/quanticSmartSnippet.e2e.ts +0 -168
  154. package/force-app/main/default/lwc/quanticSmartSnippetAnswer/__tests__/quanticSmartSnippetAnswer.test.js +0 -126
  155. package/force-app/main/default/lwc/quanticSmartSnippetSource/__tests__/quanticSmartSnippetSource.test.js +0 -290
  156. package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/__tests__/quanticSmartSnippetSuggestions.test.js +0 -329
  157. package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/e2e/data.ts +0 -31
  158. package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/e2e/fixture.ts +0 -95
  159. package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/e2e/pageObject.ts +0 -160
  160. package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/e2e/quanticSmartSnippetSuggestions.e2e.ts +0 -127
  161. package/force-app/main/default/lwc/quanticSort/__tests__/quanticSort.test.js +0 -416
  162. package/force-app/main/default/lwc/quanticSort/e2e/fixture.ts +0 -62
  163. package/force-app/main/default/lwc/quanticSort/e2e/pageObject.ts +0 -100
  164. package/force-app/main/default/lwc/quanticSort/e2e/quanticSort.e2e.ts +0 -86
  165. package/force-app/main/default/lwc/quanticSourceCitations/__tests__/quanticSourceCitations.test.js +0 -156
  166. package/force-app/main/default/lwc/quanticStandaloneSearchBox/__tests__/quanticStandaloneSearchBox.test.js +0 -387
  167. package/force-app/main/default/lwc/quanticStandaloneSearchBox/e2e/fixture.ts +0 -54
  168. package/force-app/main/default/lwc/quanticStandaloneSearchBox/e2e/pageObject.ts +0 -54
  169. package/force-app/main/default/lwc/quanticStandaloneSearchBox/e2e/quanticStandaloneSearchBox.e2e.ts +0 -72
  170. package/force-app/main/default/lwc/quanticStatefulButton/__tests__/quanticStatefulButton.test.js +0 -222
  171. package/force-app/main/default/lwc/quanticSummary/__tests__/quanticSummary.test.js +0 -244
  172. package/force-app/main/default/lwc/quanticTab/__tests__/quanticTab.test.js +0 -333
  173. package/force-app/main/default/lwc/quanticTab/e2e/fixture.ts +0 -60
  174. package/force-app/main/default/lwc/quanticTab/e2e/pageObject.ts +0 -68
  175. package/force-app/main/default/lwc/quanticTab/e2e/quanticTab.e2e.ts +0 -72
  176. package/force-app/main/default/lwc/quanticTabBar/__tests__/quanticTabBar.test.js +0 -331
  177. package/force-app/main/default/lwc/quanticTabBar/e2e/fixture.ts +0 -65
  178. package/force-app/main/default/lwc/quanticTabBar/e2e/pageObject.ts +0 -80
  179. package/force-app/main/default/lwc/quanticTabBar/e2e/quanticTabBar.e2e.ts +0 -172
  180. package/force-app/main/default/lwc/quanticThreadItem/__tests__/quanticThreadItem.test.js +0 -314
  181. package/force-app/main/default/lwc/quanticTimeframeFacet/__tests__/quanticTimeframeFacet.test.js +0 -1059
  182. package/force-app/main/default/lwc/quanticTimeframeFacet/e2e/data.ts +0 -66
  183. package/force-app/main/default/lwc/quanticTimeframeFacet/e2e/fixture.ts +0 -74
  184. package/force-app/main/default/lwc/quanticTimeframeFacet/e2e/pageObject.ts +0 -43
  185. package/force-app/main/default/lwc/quanticTimeframeFacet/e2e/quanticTimeframeFacet.e2e.ts +0 -184
  186. package/force-app/main/default/lwc/quanticTooltip/__tests__/quanticTooltip.test.js +0 -107
  187. package/force-app/main/default/lwc/quanticUserAction/__tests__/quanticUserAction.test.js +0 -427
  188. package/force-app/main/default/lwc/quanticUserActionsSession/__tests__/quanticUserActionsSession.test.js +0 -269
  189. package/force-app/main/default/lwc/quanticUserActionsTimeline/__tests__/data/userActionsState.json +0 -89
  190. package/force-app/main/default/lwc/quanticUserActionsTimeline/__tests__/quanticUserActionsTimeline.test.js +0 -511
  191. package/force-app/main/default/lwc/quanticUserActionsToggle/__tests__/quanticUserActionsToggle.test.js +0 -229
  192. package/force-app/main/default/lwc/quanticUserActionsToggle/e2e/data.ts +0 -32
  193. package/force-app/main/default/lwc/quanticUserActionsToggle/e2e/fixture.ts +0 -32
  194. package/force-app/main/default/lwc/quanticUserActionsToggle/e2e/pageObject.ts +0 -71
  195. package/force-app/main/default/lwc/quanticUserActionsToggle/e2e/quanticUserActionsToggle.e2e.ts +0 -39
  196. package/force-app/main/default/lwc/quanticUtils/__tests__/accessibilityUtils.test.js +0 -214
  197. package/force-app/main/default/lwc/quanticUtils/__tests__/citationAnchoringUtils.test.js +0 -84
  198. package/force-app/main/default/lwc/quanticUtils/__tests__/facetDependenciesUtils.test.js +0 -92
  199. package/force-app/main/default/lwc/quanticUtils/__tests__/facetStoreUtils.test.js +0 -86
  200. package/force-app/main/default/lwc/quanticUtils/__tests__/markdownUtils.test.js +0 -109
  201. package/force-app/main/default/lwc/quanticUtils/__tests__/quanticUtils.test.js +0 -233
  202. package/force-app/main/default/lwc/quanticUtils/__tests__/timeAndDateUtils.test.js +0 -22
  203. package/force-app/main/default/lwc/quanticViewedByCustomerBadge/__tests__/quanticViewedByCustomerBadge.test.js +0 -131
@@ -1,194 +0,0 @@
1
- /* eslint-disable jest/no-conditional-expect */
2
- /* eslint-disable no-import-assign */
3
- import QuanticInsightInterface from 'c/quanticInsightInterface';
4
- import * as mockHeadlessLoader from 'c/quanticHeadlessLoader';
5
- import {cleanup, buildCreateTestComponent, flushPromises} from 'c/testUtils';
6
-
7
- jest.mock('c/quanticUtils', () => ({
8
- generateFacetDependencyConditions: jest.fn(),
9
- regexEncode: jest.fn(),
10
- Store: {
11
- facetTypes: {
12
- FACETS: 'facets',
13
- },
14
- },
15
- I18nUtils: {
16
- format: jest.fn(),
17
- getLabelNameWithCount: jest.fn(),
18
- },
19
- }));
20
- jest.mock('c/quanticHeadlessLoader');
21
- jest.mock(
22
- '@salesforce/apex/InsightController.getHeadlessConfiguration',
23
- () => {
24
- return {
25
- default: () =>
26
- new Promise((resolve) => {
27
- resolve(
28
- JSON.stringify({
29
- locale: 'en-US',
30
- timezone: 'America/New_York',
31
- insightId: 'dummyInsightId',
32
- })
33
- );
34
- }),
35
- };
36
- },
37
- {virtual: true}
38
- );
39
-
40
- const initialInsightInterfaceState = {
41
- values: [],
42
- enabled: true,
43
- };
44
- let insightInterfaceState = initialInsightInterfaceState;
45
-
46
- let isInitialized = false;
47
-
48
- const exampleEngine = {
49
- id: 'example engine id',
50
- };
51
- const exampleInsightId = 'example insight id';
52
-
53
- const defaultOptions = {
54
- engineId: exampleEngine.id,
55
- insightId: exampleInsightId,
56
- };
57
-
58
- const functionsMocks = {
59
- buildInsightInterface: jest.fn(() => ({
60
- state: insightInterfaceState,
61
- subscribe: functionsMocks.insightInterfaceStateSubscriber,
62
- })),
63
- buildInsightEngine: jest.fn(() => ({
64
- executeFirstSearch: functionsMocks.executeFirstSearch,
65
- })),
66
- insightInterfaceStateSubscriber: jest.fn((cb) => {
67
- cb();
68
- return functionsMocks.insightInterfaceStateUnsubscriber;
69
- }),
70
- executeFirstSearch: jest.fn(() => {}),
71
- insightInterfaceStateUnsubscriber: jest.fn(),
72
- eventListener: jest.fn(),
73
- };
74
-
75
- const CoveoHeadlessStub = {
76
- buildInsightEngine: function () {
77
- return {
78
- executeFirstSearch: jest.fn(() => {}),
79
- };
80
- },
81
- buildInsightInterface: functionsMocks.buildInsightInterface,
82
- };
83
-
84
- const createTestComponent = buildCreateTestComponent(
85
- QuanticInsightInterface,
86
- 'c-quantic-insight-interface',
87
- defaultOptions
88
- );
89
-
90
- function prepareHeadlessState() {
91
- jest
92
- .spyOn(mockHeadlessLoader, 'getHeadlessBundle')
93
- .mockImplementation(() => ({
94
- buildFacet: functionsMocks.buildFacet,
95
- }));
96
- jest.spyOn(mockHeadlessLoader, 'loadDependencies').mockImplementation(
97
- () =>
98
- new Promise((resolve) => {
99
- resolve();
100
- })
101
- );
102
- jest
103
- .spyOn(mockHeadlessLoader, 'setInitializedCallback')
104
- .mockImplementation((callback) => {
105
- callback();
106
- });
107
- jest.spyOn(mockHeadlessLoader, 'getHeadlessBindings').mockReturnValue({
108
- engine: exampleEngine,
109
- });
110
- }
111
-
112
- function mockSuccessfulHeadlessInitialization() {
113
- // @ts-ignore
114
- mockHeadlessLoader.initializeWithHeadless = (element, _, initialize) => {
115
- if (element instanceof QuanticInsightInterface && !isInitialized) {
116
- isInitialized = true;
117
- initialize(exampleEngine);
118
- }
119
- };
120
- }
121
-
122
- describe('c-quantic-insight-interface', () => {
123
- beforeAll(() => {
124
- document.addEventListener(
125
- 'quantic__insightinterfaceinitialized',
126
- functionsMocks.eventListener,
127
- {once: true}
128
- );
129
- });
130
-
131
- beforeEach(() => {
132
- // @ts-ignore
133
- global.CoveoHeadlessInsight = CoveoHeadlessStub;
134
- mockSuccessfulHeadlessInitialization();
135
- prepareHeadlessState();
136
- });
137
-
138
- afterEach(() => {
139
- cleanup();
140
- insightInterfaceState = initialInsightInterfaceState;
141
- isInitialized = false;
142
- });
143
-
144
- describe('when the insight interface is loading', () => {
145
- beforeEach(() => {
146
- insightInterfaceState = {
147
- ...initialInsightInterfaceState,
148
- loading: true,
149
- config: {},
150
- };
151
- });
152
-
153
- it('should not dispatch the insight interface initialized event', async () => {
154
- createTestComponent();
155
- await flushPromises();
156
-
157
- expect(functionsMocks.eventListener).not.toHaveBeenCalled();
158
- });
159
- });
160
-
161
- describe('when the insight config is null', () => {
162
- beforeEach(() => {
163
- insightInterfaceState = {
164
- ...initialInsightInterfaceState,
165
- loading: false,
166
- config: null,
167
- };
168
- });
169
-
170
- it('should not dispatch the insight interface initialized event', async () => {
171
- createTestComponent();
172
- await flushPromises();
173
-
174
- expect(functionsMocks.eventListener).not.toHaveBeenCalled();
175
- });
176
- });
177
-
178
- describe('when the insight interface is not loading and the insight config is defined', () => {
179
- beforeEach(() => {
180
- insightInterfaceState = {
181
- ...initialInsightInterfaceState,
182
- loading: false,
183
- config: {},
184
- };
185
- });
186
-
187
- it('should dispatch the insight interface initialized event', async () => {
188
- createTestComponent();
189
- await flushPromises();
190
-
191
- expect(functionsMocks.eventListener).toHaveBeenCalledTimes(1);
192
- });
193
- });
194
- });
@@ -1,230 +0,0 @@
1
- /* eslint-disable no-import-assign */
2
- import QuanticInsightSummary from '../quanticInsightSummary';
3
- import * as mockHeadlessLoader from 'c/quanticHeadlessLoader';
4
- import {cleanup, flushPromises, buildCreateTestComponent} from 'c/testUtils';
5
-
6
- const initialSummaryLabel = 'Insights related to this cases';
7
-
8
- let isInitialized = false;
9
-
10
- jest.mock('c/quanticHeadlessLoader');
11
- jest.mock(
12
- '@salesforce/label/c.quantic_InsightRelatedToThisCase',
13
- () => ({default: initialSummaryLabel}),
14
- {
15
- virtual: true,
16
- }
17
- );
18
-
19
- const initialSearchBoxState = {
20
- value: '',
21
- };
22
- let searchBoxState = initialSearchBoxState;
23
-
24
- const initialQuerySummaryState = {hasError: false};
25
- let querySummaryState = initialQuerySummaryState;
26
-
27
- const exampleEngine = {
28
- id: 'example engine',
29
- };
30
-
31
- const defaultOptions = {
32
- engineId: exampleEngine.id,
33
- };
34
-
35
- const functionsMocks = {
36
- buildSearchBox: jest.fn(() => ({
37
- state: searchBoxState,
38
- subscribe: functionsMocks.searchBoxStateSubscriber,
39
- })),
40
- buildQuerySummary: jest.fn(() => ({
41
- state: querySummaryState,
42
- subscribe: functionsMocks.querySummaryStateSubscriber,
43
- })),
44
- searchBoxStateSubscriber: jest.fn((cb) => {
45
- cb();
46
- return functionsMocks.searchBoxStateUnsubscriber;
47
- }),
48
- querySummaryStateSubscriber: jest.fn((cb) => {
49
- cb();
50
- return functionsMocks.querySummaryStateUnsubscriber;
51
- }),
52
- searchBoxStateUnsubscriber: jest.fn(),
53
- querySummaryStateUnsubscriber: jest.fn(),
54
- };
55
-
56
- const selectors = {
57
- initializationError: 'c-quantic-component-error',
58
- initialSummaryMessage: '[data-testid="initial-summary-message"]',
59
- quanticSummary: 'c-quantic-summary',
60
- };
61
-
62
- function prepareHeadlessState() {
63
- // @ts-ignore
64
- mockHeadlessLoader.getHeadlessBundle = () => {
65
- return {
66
- buildSearchBox: functionsMocks.buildSearchBox,
67
- buildQuerySummary: functionsMocks.buildQuerySummary,
68
- };
69
- };
70
- }
71
-
72
- function mockSuccessfulHeadlessInitialization() {
73
- // @ts-ignore
74
- mockHeadlessLoader.initializeWithHeadless = (element, _, initialize) => {
75
- if (element instanceof QuanticInsightSummary && !isInitialized) {
76
- isInitialized = true;
77
- initialize(exampleEngine);
78
- }
79
- };
80
- }
81
-
82
- function mockErroneousHeadlessInitialization() {
83
- // @ts-ignore
84
- mockHeadlessLoader.initializeWithHeadless = (element) => {
85
- if (element instanceof QuanticInsightSummary) {
86
- element.setInitializationError();
87
- }
88
- };
89
- }
90
-
91
- const createTestComponent = buildCreateTestComponent(
92
- QuanticInsightSummary,
93
- 'c-quantic-insight-summary',
94
- {defaultOptions}
95
- );
96
-
97
- describe('c-quantic-insight-summary', () => {
98
- beforeEach(() => {
99
- mockSuccessfulHeadlessInitialization();
100
- prepareHeadlessState();
101
- });
102
-
103
- afterEach(() => {
104
- cleanup();
105
- searchBoxState = initialSearchBoxState;
106
- querySummaryState = initialQuerySummaryState;
107
- isInitialized = false;
108
- });
109
-
110
- describe('component initialization', () => {
111
- it('should initialize the search box and query summary headless controllers', async () => {
112
- createTestComponent();
113
- await flushPromises();
114
-
115
- expect(functionsMocks.buildSearchBox).toHaveBeenCalledTimes(1);
116
- expect(functionsMocks.buildSearchBox).toHaveBeenCalledWith(exampleEngine);
117
- expect(functionsMocks.buildQuerySummary).toHaveBeenCalledTimes(1);
118
- expect(functionsMocks.buildQuerySummary).toHaveBeenCalledWith(
119
- exampleEngine
120
- );
121
- });
122
-
123
- it('should subscribe the search box and query summary state changes', async () => {
124
- createTestComponent();
125
- await flushPromises();
126
-
127
- expect(functionsMocks.searchBoxStateSubscriber).toHaveBeenCalledTimes(1);
128
- expect(functionsMocks.querySummaryStateSubscriber).toHaveBeenCalledTimes(
129
- 1
130
- );
131
- });
132
- });
133
-
134
- describe('component disconnection', () => {
135
- it('should unsubscribe from the search box and query summary state changes', async () => {
136
- const element = createTestComponent();
137
- await flushPromises();
138
-
139
- document.body.removeChild(element);
140
-
141
- expect(functionsMocks.searchBoxStateUnsubscriber).toHaveBeenCalledTimes(
142
- 1
143
- );
144
- expect(
145
- functionsMocks.querySummaryStateUnsubscriber
146
- ).toHaveBeenCalledTimes(1);
147
- });
148
- });
149
-
150
- describe('when an initialization error occurs', () => {
151
- beforeEach(() => {
152
- mockErroneousHeadlessInitialization();
153
- });
154
-
155
- it('should display the initialization error component', async () => {
156
- const element = createTestComponent();
157
- await flushPromises();
158
-
159
- const initializationError = element.shadowRoot.querySelector(
160
- selectors.initializationError
161
- );
162
-
163
- expect(initializationError).not.toBeNull();
164
- });
165
- });
166
-
167
- describe('when the searchbox state query value is empty', () => {
168
- it('should display the default insight summary message', async () => {
169
- const element = createTestComponent();
170
- await flushPromises();
171
-
172
- const initialSummaryMessage = element.shadowRoot.querySelector(
173
- selectors.initialSummaryMessage
174
- );
175
- const quanticQuerySummary = element.shadowRoot.querySelector(
176
- selectors.quanticSummary
177
- );
178
-
179
- expect(initialSummaryMessage).not.toBeNull();
180
- expect(initialSummaryMessage.textContent).toBe(initialSummaryLabel);
181
- expect(quanticQuerySummary).toBeNull();
182
- });
183
- });
184
-
185
- describe('when the searchbox state query value is not empty', () => {
186
- beforeEach(() => {
187
- searchBoxState = {
188
- value: 'test',
189
- };
190
- });
191
-
192
- it('should display the quantic summary component', async () => {
193
- const element = createTestComponent();
194
- await flushPromises();
195
-
196
- const initialSummaryMessage = await element.shadowRoot.querySelector(
197
- selectors.initialSummaryMessage
198
- );
199
- const quanticQuerySummary = await element.shadowRoot.querySelector(
200
- selectors.quanticSummary
201
- );
202
-
203
- expect(quanticQuerySummary).not.toBeNull();
204
- expect(initialSummaryMessage).toBeNull();
205
- });
206
- });
207
-
208
- describe('when there is a query error', () => {
209
- beforeEach(() => {
210
- querySummaryState = {
211
- hasError: true,
212
- };
213
- });
214
-
215
- it('should not display the Insight Summary component', async () => {
216
- const element = createTestComponent();
217
- await flushPromises();
218
-
219
- const title = await element.shadowRoot.querySelector(
220
- selectors.initialSummaryMessage
221
- );
222
- const quanticQuerySummary = await element.shadowRoot.querySelector(
223
- selectors.quanticSummary
224
- );
225
-
226
- expect(quanticQuerySummary).toBeNull();
227
- expect(title).toBeNull();
228
- });
229
- });
230
- });
@@ -1,205 +0,0 @@
1
- // @ts-ignore
2
- import QuanticModal from 'c/quanticModal';
3
- import {getFirstFocusableElement} from 'c/quanticUtils';
4
- import {buildCreateTestComponent, cleanup, flushPromises} from 'c/testUtils';
5
-
6
- jest.mock('c/quanticUtils', () => {
7
- return {
8
- getFirstFocusableElement: jest.fn(),
9
- getLastFocusableElement: jest.fn(),
10
- };
11
- });
12
-
13
- const createTestComponent = buildCreateTestComponent(
14
- QuanticModal,
15
- 'c-quantic-modal'
16
- );
17
-
18
- const selectors = {
19
- modal: '.modal',
20
- modalHeader: '.modal__header',
21
- modalContent: '.modal__content',
22
- modalFooter: '.modal__footer',
23
- renderingError: '.error-message',
24
- headerSlot: 'slot[name="header"]',
25
- };
26
-
27
- describe('c-quantic-modal', () => {
28
- afterEach(() => {
29
- cleanup();
30
- });
31
-
32
- describe('when using default options', () => {
33
- it('should not display the modal by default', async () => {
34
- const element = createTestComponent();
35
- await flushPromises();
36
- const modal = element.shadowRoot.querySelector(selectors.modal);
37
- expect(modal.classList.contains('modal_hidden')).toBe(true);
38
- });
39
-
40
- it('should have slide-to-top animation class by default', async () => {
41
- const element = createTestComponent();
42
- await flushPromises();
43
-
44
- const modal = element.shadowRoot.querySelector(selectors.modal);
45
- expect(modal.classList.contains('hidden-modal_slide-to-top')).toBe(true);
46
- });
47
-
48
- it('should display the modal when openModal is called', async () => {
49
- const element = createTestComponent();
50
- element.openModal();
51
- await flushPromises();
52
-
53
- const modal = element.shadowRoot.querySelector(selectors.modal);
54
- expect(modal.classList.contains('modal_hidden')).toBe(false);
55
-
56
- expect(
57
- element.shadowRoot.querySelector(selectors.modalHeader)
58
- ).not.toBeNull();
59
- expect(
60
- element.shadowRoot.querySelector(selectors.modalContent)
61
- ).not.toBeNull();
62
- expect(
63
- element.shadowRoot.querySelector(selectors.modalFooter)
64
- ).not.toBeNull();
65
-
66
- expect(modal.classList.contains('full-screen')).toBe(false);
67
- expect(modal.classList.contains('part-screen')).toBe(true);
68
- });
69
-
70
- it('should hide the modal when closeModal is called', async () => {
71
- const element = createTestComponent();
72
- element.openModal();
73
- await flushPromises();
74
- element.closeModal();
75
- await flushPromises();
76
- const modal = element.shadowRoot.querySelector(selectors.modal);
77
- expect(modal.classList.contains('modal_hidden')).toBe(true);
78
- });
79
-
80
- describe('when the modal is opened', () => {
81
- beforeAll(() => {
82
- jest.useFakeTimers();
83
- });
84
- afterAll(() => {
85
- jest.useRealTimers();
86
- });
87
-
88
- it('should focus on first focusable element when modal opens', async () => {
89
- const mockFirstFocusableElement = {focus: jest.fn()};
90
- // @ts-ignore
91
- getFirstFocusableElement.mockImplementation(
92
- () => mockFirstFocusableElement
93
- );
94
-
95
- const element = createTestComponent();
96
-
97
- const headerSlot = element.shadowRoot.querySelector(
98
- selectors.headerSlot
99
- );
100
-
101
- const headerSlotSpy = jest
102
- .spyOn(headerSlot, 'assignedElements')
103
- .mockImplementation(() => [document.createElement('div')]);
104
-
105
- element.openModal();
106
- jest.runAllTimers();
107
- expect(getFirstFocusableElement).toHaveBeenCalled();
108
- expect(mockFirstFocusableElement.focus).toHaveBeenCalled();
109
-
110
- headerSlotSpy.mockRestore();
111
- });
112
- });
113
- });
114
-
115
- describe('when using slide to left animation', () => {
116
- it('should have slide-to-left animation class', async () => {
117
- const element = createTestComponent({animation: 'slideToLeft'});
118
- await flushPromises();
119
-
120
- const modal = element.shadowRoot.querySelector(selectors.modal);
121
- expect(modal.classList.contains('hidden-modal_slide-to-left')).toBe(true);
122
- });
123
-
124
- it('should display the modal with slide-to-left animation when opened', async () => {
125
- const element = createTestComponent({animation: 'slideToLeft'});
126
- await flushPromises();
127
- element.openModal();
128
- await flushPromises();
129
-
130
- const modal = element.shadowRoot.querySelector(selectors.modal);
131
- expect(modal.classList.contains('modal_hidden')).toBe(false);
132
- expect(modal.classList.contains('part-screen')).toBe(true);
133
- });
134
- });
135
-
136
- describe('when fullScreen is set to true', () => {
137
- it('should apply full-screen class to the modal', async () => {
138
- const element = createTestComponent({fullScreen: true});
139
- await flushPromises();
140
- const modal = element.shadowRoot.querySelector(selectors.modal);
141
- expect(modal.classList.contains('full-screen')).toBe(true);
142
- });
143
-
144
- it('should display the modal in full screen when opened', async () => {
145
- const element = createTestComponent({fullScreen: true});
146
- await flushPromises();
147
- element.openModal();
148
- await flushPromises();
149
- const modal = element.shadowRoot.querySelector(selectors.modal);
150
- expect(modal.classList.contains('modal_hidden')).toBe(false);
151
- expect(modal.classList.contains('full-screen')).toBe(true);
152
- });
153
- });
154
-
155
- describe('when setting an invalid animation', () => {
156
- it('should display an error message', async () => {
157
- const invalidAnimation = 'invalid animation';
158
- const element = createTestComponent({animation: invalidAnimation});
159
- await flushPromises();
160
-
161
- const errorElement = element.shadowRoot.querySelector(
162
- selectors.renderingError
163
- );
164
- expect(errorElement).not.toBeNull();
165
- expect(errorElement.textContent).toContain(
166
- `"${invalidAnimation}" is an invalid value for the animation property`
167
- );
168
- });
169
- });
170
-
171
- describe('when setting an invalid fullscreen value', () => {
172
- it('should display an error message', async () => {
173
- const element = createTestComponent({fullScreen: 'patate'});
174
- await flushPromises();
175
-
176
- const errorElement = element.shadowRoot.querySelector(
177
- selectors.renderingError
178
- );
179
- expect(errorElement).not.toBeNull();
180
- expect(errorElement.textContent).toContain(
181
- `"patate" is an invalid value for the full-screen property`
182
- );
183
- });
184
- });
185
-
186
- describe('focus management and accessibility', () => {
187
- it('should set appropriate ARIA attributes', async () => {
188
- const element = createTestComponent();
189
- await flushPromises();
190
- element.openModal();
191
- await flushPromises();
192
-
193
- const modalElement = element.shadowRoot.querySelector('[role="dialog"]');
194
-
195
- expect(modalElement).not.toBeNull();
196
- expect(modalElement.getAttribute('aria-modal')).toBe('true');
197
-
198
- const labelledBy = modalElement.getAttribute('aria-labelledby');
199
- expect(labelledBy).toMatch(/^modal-heading/);
200
-
201
- const describedBy = modalElement.getAttribute('aria-describedby');
202
- expect(describedBy).toMatch(/^modal-content/);
203
- });
204
- });
205
- });