@coveo/quantic 3.44.0 → 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.
- package/force-app/main/default/classes/OrganizationEndpointsTest.cls +71 -15
- package/force-app/main/default/classes/RecommendationsControllerTest.cls +1 -1
- package/force-app/main/default/lwc/quanticNumberButton/quanticNumberButton.js +5 -1
- package/force-app/main/default/lwc/quanticPager/quanticPager.html +8 -5
- package/force-app/main/default/lwc/quanticTabBar/quanticTabBar.js +148 -125
- package/force-app/main/default/staticresources/coveoheadless/case-assist/headless.js +16 -16
- package/force-app/main/default/staticresources/coveoheadless/headless.js +17 -17
- package/force-app/main/default/staticresources/coveoheadless/insight/headless.js +16 -16
- package/force-app/main/default/staticresources/coveoheadless/recommendation/headless.js +16 -16
- package/package.json +37 -34
- package/force-app/main/default/lwc/quanticAriaLive/__tests__/quanticAriaLive.test.js +0 -106
- package/force-app/main/default/lwc/quanticBreadcrumbManager/__tests__/quanticBreadcrumbManager.test.js +0 -752
- package/force-app/main/default/lwc/quanticBreadcrumbManager/e2e/data.ts +0 -130
- package/force-app/main/default/lwc/quanticBreadcrumbManager/e2e/fixture.ts +0 -87
- package/force-app/main/default/lwc/quanticBreadcrumbManager/e2e/pageObject.ts +0 -282
- package/force-app/main/default/lwc/quanticBreadcrumbManager/e2e/quanticBreadcrumbManager.e2e.ts +0 -208
- package/force-app/main/default/lwc/quanticCarousel/__tests__/quanticCarousel.test.js +0 -262
- package/force-app/main/default/lwc/quanticCaseClassification/__tests__/quanticCaseClassification.test.js +0 -819
- package/force-app/main/default/lwc/quanticCaseClassification/e2e/data.ts +0 -23
- package/force-app/main/default/lwc/quanticCaseClassification/e2e/fixture.ts +0 -51
- package/force-app/main/default/lwc/quanticCaseClassification/e2e/pageObject.ts +0 -152
- package/force-app/main/default/lwc/quanticCaseClassification/e2e/quanticCaseClassification.e2e.ts +0 -269
- package/force-app/main/default/lwc/quanticCategoryFacet/__tests__/quanticCategoryFacet.test.js +0 -1183
- package/force-app/main/default/lwc/quanticCategoryFacet/e2e/data.ts +0 -91
- package/force-app/main/default/lwc/quanticCategoryFacet/e2e/fixture.ts +0 -79
- package/force-app/main/default/lwc/quanticCategoryFacet/e2e/pageObject.ts +0 -55
- package/force-app/main/default/lwc/quanticCategoryFacet/e2e/quanticCategoryFacet.e2e.ts +0 -219
- package/force-app/main/default/lwc/quanticCitation/__tests__/quanticCitation.test.js +0 -581
- package/force-app/main/default/lwc/quanticColoredResultBadge/__tests__/quanticColoredResultBadge.test.js +0 -212
- package/force-app/main/default/lwc/quanticDateFacet/__tests__/quanticDateFacet.test.js +0 -688
- package/force-app/main/default/lwc/quanticDateFacet/e2e/data.ts +0 -44
- package/force-app/main/default/lwc/quanticDateFacet/e2e/fixture.ts +0 -72
- package/force-app/main/default/lwc/quanticDateFacet/e2e/pageObject.ts +0 -27
- package/force-app/main/default/lwc/quanticDateFacet/e2e/quanticDateFacet.e2e.ts +0 -167
- package/force-app/main/default/lwc/quanticDidYouMean/__tests__/quanticDidYouMean.test.js +0 -348
- package/force-app/main/default/lwc/quanticDidYouMean/e2e/data.ts +0 -48
- package/force-app/main/default/lwc/quanticDidYouMean/e2e/fixture.ts +0 -84
- package/force-app/main/default/lwc/quanticDidYouMean/e2e/pageObject.ts +0 -173
- package/force-app/main/default/lwc/quanticDidYouMean/e2e/quanticDidYouMean.e2e.ts +0 -219
- package/force-app/main/default/lwc/quanticDocumentSuggestion/__tests__/quanticDocumentSuggestion.test.js +0 -404
- package/force-app/main/default/lwc/quanticDocumentSuggestion/e2e/fixture.ts +0 -38
- package/force-app/main/default/lwc/quanticDocumentSuggestion/e2e/pageObject.ts +0 -52
- package/force-app/main/default/lwc/quanticDocumentSuggestion/e2e/quanticDocumentSuggestion.e2e.ts +0 -102
- package/force-app/main/default/lwc/quanticFacet/__tests__/quanticFacet.test.js +0 -1105
- package/force-app/main/default/lwc/quanticFacet/e2e/data.ts +0 -62
- package/force-app/main/default/lwc/quanticFacet/e2e/fixture.ts +0 -78
- package/force-app/main/default/lwc/quanticFacet/e2e/pageObject.ts +0 -67
- package/force-app/main/default/lwc/quanticFacet/e2e/quanticFacet.e2e.ts +0 -242
- package/force-app/main/default/lwc/quanticFacetCaption/__tests__/quanticFacetCaption.test.js +0 -28
- package/force-app/main/default/lwc/quanticFacetManager/__tests__/quanticFacetManager.test.js +0 -178
- package/force-app/main/default/lwc/quanticFacetManager/e2e/data.ts +0 -59
- package/force-app/main/default/lwc/quanticFacetManager/e2e/fixture.ts +0 -75
- package/force-app/main/default/lwc/quanticFacetManager/e2e/pageObject.ts +0 -23
- package/force-app/main/default/lwc/quanticFacetManager/e2e/quanticFacetManager.e2e.ts +0 -82
- package/force-app/main/default/lwc/quanticFeedback/__tests__/quanticFeedback.test.js +0 -403
- package/force-app/main/default/lwc/quanticFeedbackModal/__tests__/quanticFeedbackModal.test.js +0 -448
- package/force-app/main/default/lwc/quanticFeedbackModalQna/__tests__/quanticFeedbackModalQna.test.js +0 -298
- package/force-app/main/default/lwc/quanticFoldedResultList/__tests__/quanticFoldedResultList.test.js +0 -323
- package/force-app/main/default/lwc/quanticFoldedResultList/e2e/fixture.ts +0 -74
- package/force-app/main/default/lwc/quanticFoldedResultList/e2e/pageObject.ts +0 -81
- package/force-app/main/default/lwc/quanticFoldedResultList/e2e/quanticFoldedResultList.e2e.ts +0 -69
- package/force-app/main/default/lwc/quanticGeneratedAnswer/__tests__/quanticGeneratedAnswer.test.js +0 -1575
- package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/agentData.ts +0 -279
- package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/data.ts +0 -56
- package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/fixture-agent.ts +0 -77
- package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/fixture.ts +0 -194
- package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/pageObject.ts +0 -599
- package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/quanticGeneratedAnswer.e2e.ts +0 -333
- package/force-app/main/default/lwc/quanticGeneratedAnswer/e2e/quanticGeneratedAnswerAgent.e2e.ts +0 -298
- package/force-app/main/default/lwc/quanticGeneratedAnswerBody/__tests__/quanticGeneratedAnswerBody.test.js +0 -418
- package/force-app/main/default/lwc/quanticGeneratedAnswerContent/__tests__/quanticGeneratedAnswerContent.test.js +0 -447
- package/force-app/main/default/lwc/quanticGeneratedAnswerCopyToClipboard/__tests__/quanticGeneratedAnswerCopyToClipboard.test.js +0 -129
- package/force-app/main/default/lwc/quanticGeneratedAnswerFollowUpInput/__tests__/quanticGeneratedAnswerFollowUpInput.test.js +0 -466
- package/force-app/main/default/lwc/quanticGeneratedAnswerStreamOfThought/__tests__/quanticGeneratedAnswerStreamOfThought.test.js +0 -402
- package/force-app/main/default/lwc/quanticGeneratedAnswerStreamOfThought/__tests__/stepsUtils.test.js +0 -118
- package/force-app/main/default/lwc/quanticGeneratedAnswerThread/__tests__/quanticGeneratedAnswerThread.test.js +0 -285
- package/force-app/main/default/lwc/quanticHeading/__tests__/quanticHeading.test.js +0 -71
- package/force-app/main/default/lwc/quanticHeadlessLoader/__tests__/quanticHeadlessLoader.test.js +0 -651
- package/force-app/main/default/lwc/quanticInsightInterface/__tests__/quanticInsightInterface.test.js +0 -194
- package/force-app/main/default/lwc/quanticInsightSummary/__tests__/quanticInsightSummary.test.js +0 -230
- package/force-app/main/default/lwc/quanticModal/__tests__/quanticModal.test.js +0 -205
- package/force-app/main/default/lwc/quanticNotifications/__tests__/quanticNotifications.test.js +0 -309
- package/force-app/main/default/lwc/quanticNotifications/e2e/fixture.ts +0 -62
- package/force-app/main/default/lwc/quanticNotifications/e2e/pageObject.ts +0 -55
- package/force-app/main/default/lwc/quanticNotifications/e2e/quanticNotifications.e2e.ts +0 -47
- package/force-app/main/default/lwc/quanticNumericFacet/__tests__/quanticNumericFacet.test.js +0 -953
- package/force-app/main/default/lwc/quanticNumericFacet/e2e/data.ts +0 -48
- package/force-app/main/default/lwc/quanticNumericFacet/e2e/fixture.ts +0 -75
- package/force-app/main/default/lwc/quanticNumericFacet/e2e/pageObject.ts +0 -59
- package/force-app/main/default/lwc/quanticNumericFacet/e2e/quanticNumericFacet.e2e.ts +0 -186
- package/force-app/main/default/lwc/quanticPager/__tests__/quanticPager.test.js +0 -430
- package/force-app/main/default/lwc/quanticPager/e2e/fixture.ts +0 -65
- package/force-app/main/default/lwc/quanticPager/e2e/pageObject.ts +0 -69
- package/force-app/main/default/lwc/quanticPager/e2e/quanticPager.e2e.ts +0 -106
- package/force-app/main/default/lwc/quanticPlaceholder/__tests__/quanticPlaceholder.test.js +0 -47
- package/force-app/main/default/lwc/quanticQuickviewContent/__tests__/data/defaultTestCase.json +0 -13
- package/force-app/main/default/lwc/quanticQuickviewContent/__tests__/data/youtubeTestCase.json +0 -14
- package/force-app/main/default/lwc/quanticQuickviewContent/__tests__/quanticQuickviewContent.test.js +0 -82
- package/force-app/main/default/lwc/quanticRadioButtonsGroup/__tests__/quanticRadioButtonsGroup.test.js +0 -273
- package/force-app/main/default/lwc/quanticRecentQueriesList/__tests__/quanticRecentQueriesList.test.js +0 -448
- package/force-app/main/default/lwc/quanticRecentQueriesList/e2e/fixture.ts +0 -43
- package/force-app/main/default/lwc/quanticRecentQueriesList/e2e/pageObject.ts +0 -55
- package/force-app/main/default/lwc/quanticRecentQueriesList/e2e/quanticRecentQueriesList.e2e.ts +0 -93
- package/force-app/main/default/lwc/quanticRecentResultsList/__tests__/quanticRecentResultsList.test.js +0 -516
- package/force-app/main/default/lwc/quanticRecentResultsList/e2e/fixture.ts +0 -43
- package/force-app/main/default/lwc/quanticRecentResultsList/e2e/pageObject.ts +0 -61
- package/force-app/main/default/lwc/quanticRecentResultsList/e2e/quanticRecentResultsList.e2e.ts +0 -48
- package/force-app/main/default/lwc/quanticRecommendationList/__tests__/quanticRecommendationList.test.js +0 -491
- package/force-app/main/default/lwc/quanticRecommendationList/e2e/fixture.ts +0 -36
- package/force-app/main/default/lwc/quanticRecommendationList/e2e/pageObject.ts +0 -52
- package/force-app/main/default/lwc/quanticRecommendationList/e2e/quanticRecommendationList.e2e.ts +0 -53
- package/force-app/main/default/lwc/quanticRefineModalContent/__tests__/quanticRefineModalContent.test.js +0 -747
- package/force-app/main/default/lwc/quanticRefineToggle/__tests__/quanticRefineToggle.test.js +0 -544
- package/force-app/main/default/lwc/quanticResultAction/__tests__/quanticResultAction.test.js +0 -262
- package/force-app/main/default/lwc/quanticResultActionBar/__tests__/quanticResultActionBar.test.js +0 -141
- package/force-app/main/default/lwc/quanticResultChildren/__tests__/quanticResultChildren.test.js +0 -340
- package/force-app/main/default/lwc/quanticResultCopyToClipboard/__tests__/quanticResultCopyToClipboard.test.js +0 -300
- package/force-app/main/default/lwc/quanticResultCopyToClipboard/e2e/fixture.ts +0 -49
- package/force-app/main/default/lwc/quanticResultCopyToClipboard/e2e/pageObject.ts +0 -49
- package/force-app/main/default/lwc/quanticResultCopyToClipboard/e2e/quanticResultCopyToClipboard.e2e.ts +0 -40
- package/force-app/main/default/lwc/quanticResultDate/__tests__/quanticResultDate.test.js +0 -144
- package/force-app/main/default/lwc/quanticResultField/__tests__/quanticResultField.test.js +0 -120
- package/force-app/main/default/lwc/quanticResultHighlightedTextField/__tests__/quanticResultHighlightedTextField.test.js +0 -209
- package/force-app/main/default/lwc/quanticResultLink/__tests__/quanticResultLink.test.js +0 -302
- package/force-app/main/default/lwc/quanticResultList/__tests__/quanticResultList.test.js +0 -342
- package/force-app/main/default/lwc/quanticResultList/e2e/fixture.ts +0 -70
- package/force-app/main/default/lwc/quanticResultList/e2e/pageObject.ts +0 -81
- package/force-app/main/default/lwc/quanticResultList/e2e/quanticResultList.e2e.ts +0 -69
- package/force-app/main/default/lwc/quanticResultMultiValueText/__tests__/quanticResultMultiValueText.test.js +0 -235
- package/force-app/main/default/lwc/quanticResultNumber/__tests__/quanticResultNumber.test.js +0 -144
- package/force-app/main/default/lwc/quanticResultPrintableUri/__tests__/quanticResultPrintableUri.test.js +0 -324
- package/force-app/main/default/lwc/quanticResultQuickview/__tests__/quanticResultQuickview.test.js +0 -308
- package/force-app/main/default/lwc/quanticResultQuickview/e2e/fixture.ts +0 -85
- package/force-app/main/default/lwc/quanticResultQuickview/e2e/pageObject.ts +0 -38
- package/force-app/main/default/lwc/quanticResultQuickview/e2e/quanticResultQuickView.e2e.ts +0 -66
- package/force-app/main/default/lwc/quanticResultTemplate/__tests__/quanticResultTemplate.test.js +0 -90
- package/force-app/main/default/lwc/quanticResultText/__tests__/quanticResultText.test.js +0 -155
- package/force-app/main/default/lwc/quanticResultsPerPage/__tests__/quanticResultsPerPage.test.js +0 -464
- package/force-app/main/default/lwc/quanticResultsPerPage/e2e/fixture.ts +0 -78
- package/force-app/main/default/lwc/quanticResultsPerPage/e2e/pageObject.ts +0 -85
- package/force-app/main/default/lwc/quanticResultsPerPage/e2e/quanticResultsPerPage.e2e.ts +0 -97
- package/force-app/main/default/lwc/quanticSearchBox/__tests__/quanticSearchBox.test.js +0 -487
- package/force-app/main/default/lwc/quanticSearchBox/e2e/fixture.ts +0 -86
- package/force-app/main/default/lwc/quanticSearchBox/e2e/pageObject.ts +0 -45
- package/force-app/main/default/lwc/quanticSearchBox/e2e/quanticSearchBox.e2e.ts +0 -159
- package/force-app/main/default/lwc/quanticSearchBoxInput/__tests__/quanticSearchBoxInput.test.js +0 -743
- package/force-app/main/default/lwc/quanticSearchBoxSuggestionsList/__tests__/quanticSearchBoxSuggestionsList.test.js +0 -571
- package/force-app/main/default/lwc/quanticSearchBoxSuggestionsList/e2e/fixture.ts +0 -113
- package/force-app/main/default/lwc/quanticSearchBoxSuggestionsList/e2e/pageObject.ts +0 -113
- package/force-app/main/default/lwc/quanticSearchBoxSuggestionsList/e2e/quanticSearchBoxSuggestionsList.e2e.ts +0 -282
- package/force-app/main/default/lwc/quanticSmartSnippet/__tests__/quanticSmartSnippet.test.js +0 -341
- package/force-app/main/default/lwc/quanticSmartSnippet/e2e/data.ts +0 -21
- package/force-app/main/default/lwc/quanticSmartSnippet/e2e/fixture.ts +0 -93
- package/force-app/main/default/lwc/quanticSmartSnippet/e2e/pageObject.ts +0 -196
- package/force-app/main/default/lwc/quanticSmartSnippet/e2e/quanticSmartSnippet.e2e.ts +0 -168
- package/force-app/main/default/lwc/quanticSmartSnippetAnswer/__tests__/quanticSmartSnippetAnswer.test.js +0 -126
- package/force-app/main/default/lwc/quanticSmartSnippetSource/__tests__/quanticSmartSnippetSource.test.js +0 -290
- package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/__tests__/quanticSmartSnippetSuggestions.test.js +0 -329
- package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/e2e/data.ts +0 -31
- package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/e2e/fixture.ts +0 -95
- package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/e2e/pageObject.ts +0 -160
- package/force-app/main/default/lwc/quanticSmartSnippetSuggestions/e2e/quanticSmartSnippetSuggestions.e2e.ts +0 -127
- package/force-app/main/default/lwc/quanticSort/__tests__/quanticSort.test.js +0 -416
- package/force-app/main/default/lwc/quanticSort/e2e/fixture.ts +0 -62
- package/force-app/main/default/lwc/quanticSort/e2e/pageObject.ts +0 -100
- package/force-app/main/default/lwc/quanticSort/e2e/quanticSort.e2e.ts +0 -86
- package/force-app/main/default/lwc/quanticSourceCitations/__tests__/quanticSourceCitations.test.js +0 -156
- package/force-app/main/default/lwc/quanticStandaloneSearchBox/__tests__/quanticStandaloneSearchBox.test.js +0 -387
- package/force-app/main/default/lwc/quanticStandaloneSearchBox/e2e/fixture.ts +0 -54
- package/force-app/main/default/lwc/quanticStandaloneSearchBox/e2e/pageObject.ts +0 -54
- package/force-app/main/default/lwc/quanticStandaloneSearchBox/e2e/quanticStandaloneSearchBox.e2e.ts +0 -72
- package/force-app/main/default/lwc/quanticStatefulButton/__tests__/quanticStatefulButton.test.js +0 -222
- package/force-app/main/default/lwc/quanticSummary/__tests__/quanticSummary.test.js +0 -244
- package/force-app/main/default/lwc/quanticTab/__tests__/quanticTab.test.js +0 -333
- package/force-app/main/default/lwc/quanticTab/e2e/fixture.ts +0 -60
- package/force-app/main/default/lwc/quanticTab/e2e/pageObject.ts +0 -68
- package/force-app/main/default/lwc/quanticTab/e2e/quanticTab.e2e.ts +0 -72
- package/force-app/main/default/lwc/quanticTabBar/__tests__/quanticTabBar.test.js +0 -331
- package/force-app/main/default/lwc/quanticTabBar/e2e/fixture.ts +0 -65
- package/force-app/main/default/lwc/quanticTabBar/e2e/pageObject.ts +0 -80
- package/force-app/main/default/lwc/quanticTabBar/e2e/quanticTabBar.e2e.ts +0 -172
- package/force-app/main/default/lwc/quanticThreadItem/__tests__/quanticThreadItem.test.js +0 -314
- package/force-app/main/default/lwc/quanticTimeframeFacet/__tests__/quanticTimeframeFacet.test.js +0 -1059
- package/force-app/main/default/lwc/quanticTimeframeFacet/e2e/data.ts +0 -66
- package/force-app/main/default/lwc/quanticTimeframeFacet/e2e/fixture.ts +0 -74
- package/force-app/main/default/lwc/quanticTimeframeFacet/e2e/pageObject.ts +0 -43
- package/force-app/main/default/lwc/quanticTimeframeFacet/e2e/quanticTimeframeFacet.e2e.ts +0 -184
- package/force-app/main/default/lwc/quanticTooltip/__tests__/quanticTooltip.test.js +0 -107
- package/force-app/main/default/lwc/quanticUserAction/__tests__/quanticUserAction.test.js +0 -427
- package/force-app/main/default/lwc/quanticUserActionsSession/__tests__/quanticUserActionsSession.test.js +0 -269
- package/force-app/main/default/lwc/quanticUserActionsTimeline/__tests__/data/userActionsState.json +0 -89
- package/force-app/main/default/lwc/quanticUserActionsTimeline/__tests__/quanticUserActionsTimeline.test.js +0 -511
- package/force-app/main/default/lwc/quanticUserActionsToggle/__tests__/quanticUserActionsToggle.test.js +0 -229
- package/force-app/main/default/lwc/quanticUserActionsToggle/e2e/data.ts +0 -32
- package/force-app/main/default/lwc/quanticUserActionsToggle/e2e/fixture.ts +0 -32
- package/force-app/main/default/lwc/quanticUserActionsToggle/e2e/pageObject.ts +0 -71
- package/force-app/main/default/lwc/quanticUserActionsToggle/e2e/quanticUserActionsToggle.e2e.ts +0 -39
- package/force-app/main/default/lwc/quanticUtils/__tests__/accessibilityUtils.test.js +0 -214
- package/force-app/main/default/lwc/quanticUtils/__tests__/citationAnchoringUtils.test.js +0 -84
- package/force-app/main/default/lwc/quanticUtils/__tests__/facetDependenciesUtils.test.js +0 -92
- package/force-app/main/default/lwc/quanticUtils/__tests__/facetStoreUtils.test.js +0 -86
- package/force-app/main/default/lwc/quanticUtils/__tests__/markdownUtils.test.js +0 -109
- package/force-app/main/default/lwc/quanticUtils/__tests__/quanticUtils.test.js +0 -233
- package/force-app/main/default/lwc/quanticUtils/__tests__/timeAndDateUtils.test.js +0 -22
- package/force-app/main/default/lwc/quanticViewedByCustomerBadge/__tests__/quanticViewedByCustomerBadge.test.js +0 -131
|
@@ -1,516 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-import-assign */
|
|
2
|
-
import QuanticRecentResultsList from 'c/quanticRecentResultsList';
|
|
3
|
-
import {cleanup, flushPromises, buildCreateTestComponent} from 'c/testUtils';
|
|
4
|
-
import * as mockHeadlessLoader from 'c/quanticHeadlessLoader';
|
|
5
|
-
import * as utils from 'c/quanticUtils';
|
|
6
|
-
|
|
7
|
-
const exampleEngine = {
|
|
8
|
-
id: 'exampleEngineId',
|
|
9
|
-
};
|
|
10
|
-
const localStorageKey = `${exampleEngine.id}_quantic-recent-results`;
|
|
11
|
-
|
|
12
|
-
jest.mock('c/quanticHeadlessLoader');
|
|
13
|
-
jest.mock(
|
|
14
|
-
'@salesforce/label/c.quantic_RecentResults',
|
|
15
|
-
() => ({default: 'Recent Results'}),
|
|
16
|
-
{
|
|
17
|
-
virtual: true,
|
|
18
|
-
}
|
|
19
|
-
);
|
|
20
|
-
jest.mock(
|
|
21
|
-
'@salesforce/label/c.quantic_Expand',
|
|
22
|
-
() => ({default: 'Expand Recent results'}),
|
|
23
|
-
{
|
|
24
|
-
virtual: true,
|
|
25
|
-
}
|
|
26
|
-
);
|
|
27
|
-
jest.mock(
|
|
28
|
-
'@salesforce/label/c.quantic_Collapse',
|
|
29
|
-
() => ({default: 'Collapse Recent results'}),
|
|
30
|
-
{
|
|
31
|
-
virtual: true,
|
|
32
|
-
}
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
const mockResults = [
|
|
36
|
-
{
|
|
37
|
-
title: 'Result 1',
|
|
38
|
-
clickUri: 'https://example.com/result1',
|
|
39
|
-
uri: 'https://example.com/result1',
|
|
40
|
-
excerpt: 'This is the first result.',
|
|
41
|
-
uniqueId: '1',
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
title: 'Result 2',
|
|
45
|
-
clickUri: 'https://example.com/result2',
|
|
46
|
-
uri: 'https://example.com/result2',
|
|
47
|
-
excerpt: 'This is the second result.',
|
|
48
|
-
uniqueId: '2',
|
|
49
|
-
},
|
|
50
|
-
];
|
|
51
|
-
|
|
52
|
-
const defaultRecentResultsTitle = 'Recent Results';
|
|
53
|
-
const defaultResults = [];
|
|
54
|
-
const defaultMaxLength = 10;
|
|
55
|
-
let isInitialized = false;
|
|
56
|
-
let updateRecentResultsState;
|
|
57
|
-
|
|
58
|
-
const initialRecentResultsListState = {
|
|
59
|
-
results: defaultResults,
|
|
60
|
-
maxLength: defaultMaxLength,
|
|
61
|
-
};
|
|
62
|
-
let recentResultsListState = initialRecentResultsListState;
|
|
63
|
-
|
|
64
|
-
const functionMocks = {
|
|
65
|
-
buildRecentResultsList: jest.fn(() => ({
|
|
66
|
-
state: recentResultsListState,
|
|
67
|
-
subscribe: functionMocks.recentResultsListSubscriber,
|
|
68
|
-
clear: functionMocks.clear,
|
|
69
|
-
})),
|
|
70
|
-
recentResultsListSubscriber: jest.fn((callback) => {
|
|
71
|
-
updateRecentResultsState = async () => {
|
|
72
|
-
callback();
|
|
73
|
-
await flushPromises();
|
|
74
|
-
};
|
|
75
|
-
return () => {};
|
|
76
|
-
}),
|
|
77
|
-
clear: jest.fn(),
|
|
78
|
-
buildInteractiveRecentResult: jest.fn(),
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
const defaultOptions = {
|
|
82
|
-
engineId: exampleEngine.id,
|
|
83
|
-
maxLength: defaultMaxLength,
|
|
84
|
-
label: defaultRecentResultsTitle,
|
|
85
|
-
hideWhenEmpty: false,
|
|
86
|
-
target: '_self',
|
|
87
|
-
isCollapsed: false,
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
const selectors = {
|
|
91
|
-
initializationError: 'c-quantic-component-error',
|
|
92
|
-
placeholder: 'c-quantic-placeholder',
|
|
93
|
-
quanticCardContainer: 'c-quantic-card-container',
|
|
94
|
-
recentResultItem: '[data-testid="recent-result-item"]',
|
|
95
|
-
toggleButton: '[data-testid="action-button"]',
|
|
96
|
-
quanticRecentResultLink: 'c-quantic-recent-result-link',
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const createTestComponent = buildCreateTestComponent(
|
|
100
|
-
QuanticRecentResultsList,
|
|
101
|
-
'c-quantic-recent-results-list',
|
|
102
|
-
defaultOptions
|
|
103
|
-
);
|
|
104
|
-
|
|
105
|
-
function prepareHeadlessState() {
|
|
106
|
-
// @ts-ignore
|
|
107
|
-
mockHeadlessLoader.getHeadlessBundle = () => {
|
|
108
|
-
return {
|
|
109
|
-
buildRecentResultsList: functionMocks.buildRecentResultsList,
|
|
110
|
-
};
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
function mockSuccessfulHeadlessInitialization() {
|
|
115
|
-
// @ts-ignore
|
|
116
|
-
mockHeadlessLoader.initializeWithHeadless = (element, _, initialize) => {
|
|
117
|
-
if (element instanceof QuanticRecentResultsList && !isInitialized) {
|
|
118
|
-
isInitialized = true;
|
|
119
|
-
initialize(exampleEngine);
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
function mockErroneousHeadlessInitialization() {
|
|
125
|
-
// @ts-ignore
|
|
126
|
-
mockHeadlessLoader.initializeWithHeadless = (element) => {
|
|
127
|
-
if (element instanceof QuanticRecentResultsList) {
|
|
128
|
-
element.setInitializationError();
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
describe('c-quantic-recent-results-list', () => {
|
|
134
|
-
beforeEach(() => {
|
|
135
|
-
// @ts-ignore
|
|
136
|
-
global.CoveoHeadless = {
|
|
137
|
-
buildInteractiveRecentResult: functionMocks.buildInteractiveRecentResult,
|
|
138
|
-
};
|
|
139
|
-
});
|
|
140
|
-
|
|
141
|
-
afterEach(() => {
|
|
142
|
-
cleanup();
|
|
143
|
-
recentResultsListState = initialRecentResultsListState;
|
|
144
|
-
isInitialized = false;
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
describe('controller initialization', () => {
|
|
148
|
-
beforeEach(() => {
|
|
149
|
-
mockSuccessfulHeadlessInitialization();
|
|
150
|
-
prepareHeadlessState();
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
it('should display the placeholder component', async () => {
|
|
154
|
-
const element = createTestComponent();
|
|
155
|
-
await flushPromises();
|
|
156
|
-
|
|
157
|
-
const placeholder = element.shadowRoot.querySelector(
|
|
158
|
-
selectors.placeholder
|
|
159
|
-
);
|
|
160
|
-
|
|
161
|
-
expect(placeholder).not.toBeNull();
|
|
162
|
-
expect(
|
|
163
|
-
element.shadowRoot.querySelector(selectors.quanticCardContainer)
|
|
164
|
-
).toBeNull();
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
it('should build the controller and subscribe to its state', async () => {
|
|
168
|
-
createTestComponent();
|
|
169
|
-
await flushPromises();
|
|
170
|
-
|
|
171
|
-
expect(functionMocks.buildRecentResultsList).toHaveBeenCalledTimes(1);
|
|
172
|
-
expect(functionMocks.buildRecentResultsList).toHaveBeenCalledWith(
|
|
173
|
-
exampleEngine,
|
|
174
|
-
{
|
|
175
|
-
initialState: {results: defaultResults},
|
|
176
|
-
options: expect.objectContaining({
|
|
177
|
-
maxLength: defaultMaxLength,
|
|
178
|
-
}),
|
|
179
|
-
}
|
|
180
|
-
);
|
|
181
|
-
expect(functionMocks.recentResultsListSubscriber).toHaveBeenCalledTimes(
|
|
182
|
-
1
|
|
183
|
-
);
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
describe('when an initialization error occurs', () => {
|
|
188
|
-
beforeEach(() => {
|
|
189
|
-
mockErroneousHeadlessInitialization();
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
it('should display the error component', async () => {
|
|
193
|
-
const element = createTestComponent();
|
|
194
|
-
await flushPromises();
|
|
195
|
-
|
|
196
|
-
const initializationError = element.shadowRoot.querySelector(
|
|
197
|
-
selectors.initializationError
|
|
198
|
-
);
|
|
199
|
-
|
|
200
|
-
expect(initializationError).not.toBeNull();
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
|
|
204
|
-
describe('when the component is initialized', () => {
|
|
205
|
-
beforeEach(() => {
|
|
206
|
-
mockSuccessfulHeadlessInitialization();
|
|
207
|
-
prepareHeadlessState();
|
|
208
|
-
jest
|
|
209
|
-
.spyOn(mockHeadlessLoader, 'getHeadlessEnginePromise')
|
|
210
|
-
.mockImplementation(() => Promise.resolve(exampleEngine));
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
describe('when there are recent results', () => {
|
|
214
|
-
const exampleResults = mockResults;
|
|
215
|
-
|
|
216
|
-
beforeEach(() => {
|
|
217
|
-
recentResultsListState = {
|
|
218
|
-
...recentResultsListState,
|
|
219
|
-
results: exampleResults,
|
|
220
|
-
};
|
|
221
|
-
});
|
|
222
|
-
|
|
223
|
-
it('should display the recent results list with the default options and no longer display the placeholder component', async () => {
|
|
224
|
-
recentResultsListState = {
|
|
225
|
-
results: exampleResults,
|
|
226
|
-
maxLength: defaultMaxLength,
|
|
227
|
-
};
|
|
228
|
-
const element = createTestComponent();
|
|
229
|
-
updateRecentResultsState();
|
|
230
|
-
await flushPromises();
|
|
231
|
-
|
|
232
|
-
const placeholder = element.shadowRoot.querySelector(
|
|
233
|
-
selectors.placeholder
|
|
234
|
-
);
|
|
235
|
-
|
|
236
|
-
expect(placeholder).toBeNull();
|
|
237
|
-
|
|
238
|
-
const recentResultsContainer = element.shadowRoot.querySelector(
|
|
239
|
-
selectors.quanticCardContainer
|
|
240
|
-
);
|
|
241
|
-
expect(recentResultsContainer).not.toBeNull();
|
|
242
|
-
expect(recentResultsContainer.title).toBe(defaultRecentResultsTitle);
|
|
243
|
-
|
|
244
|
-
const recentResultsListItems = element.shadowRoot.querySelectorAll(
|
|
245
|
-
selectors.recentResultItem
|
|
246
|
-
);
|
|
247
|
-
|
|
248
|
-
expect(recentResultsListItems.length).toBe(exampleResults.length);
|
|
249
|
-
recentResultsListItems.forEach((item, index) => {
|
|
250
|
-
const resultLink = item.querySelector(
|
|
251
|
-
selectors.quanticRecentResultLink
|
|
252
|
-
);
|
|
253
|
-
expect(resultLink.result).toEqual(mockResults[index]);
|
|
254
|
-
});
|
|
255
|
-
});
|
|
256
|
-
|
|
257
|
-
it('should use the correct initial state retrieved from the localstorage', async () => {
|
|
258
|
-
const getItemFromLocalStorageSpy = jest
|
|
259
|
-
.spyOn(utils, 'getItemFromLocalStorage')
|
|
260
|
-
.mockReturnValue(exampleResults);
|
|
261
|
-
createTestComponent();
|
|
262
|
-
await flushPromises();
|
|
263
|
-
|
|
264
|
-
expect(functionMocks.buildRecentResultsList).toHaveBeenCalledTimes(1);
|
|
265
|
-
expect(functionMocks.buildRecentResultsList).toHaveBeenCalledWith(
|
|
266
|
-
exampleEngine,
|
|
267
|
-
{
|
|
268
|
-
initialState: {results: exampleResults},
|
|
269
|
-
options: {maxLength: defaultMaxLength},
|
|
270
|
-
}
|
|
271
|
-
);
|
|
272
|
-
|
|
273
|
-
expect(getItemFromLocalStorageSpy).toHaveBeenCalledTimes(1);
|
|
274
|
-
expect(getItemFromLocalStorageSpy).toHaveBeenCalledWith(
|
|
275
|
-
localStorageKey
|
|
276
|
-
);
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
it('should call #setItemInLocalStorage function with the proper parameters when the recent result change in the state', async () => {
|
|
280
|
-
const setItemInLocalStorageSpy = jest.spyOn(
|
|
281
|
-
utils,
|
|
282
|
-
'setItemInLocalStorage'
|
|
283
|
-
);
|
|
284
|
-
createTestComponent();
|
|
285
|
-
recentResultsListState.results = exampleResults;
|
|
286
|
-
updateRecentResultsState();
|
|
287
|
-
await flushPromises();
|
|
288
|
-
|
|
289
|
-
expect(setItemInLocalStorageSpy).toHaveBeenCalledWith(
|
|
290
|
-
localStorageKey,
|
|
291
|
-
exampleResults
|
|
292
|
-
);
|
|
293
|
-
expect(setItemInLocalStorageSpy).toHaveBeenCalledTimes(1);
|
|
294
|
-
});
|
|
295
|
-
});
|
|
296
|
-
|
|
297
|
-
describe('with a custom #maxLength value', () => {
|
|
298
|
-
it('should set the #maxLength value in the controller', async () => {
|
|
299
|
-
const exampleResults = mockResults;
|
|
300
|
-
const customMaxLength = 5;
|
|
301
|
-
createTestComponent({...defaultOptions, maxLength: customMaxLength});
|
|
302
|
-
updateRecentResultsState();
|
|
303
|
-
await flushPromises();
|
|
304
|
-
|
|
305
|
-
expect(functionMocks.buildRecentResultsList).toHaveBeenCalledTimes(1);
|
|
306
|
-
expect(functionMocks.buildRecentResultsList).toHaveBeenCalledWith(
|
|
307
|
-
exampleEngine,
|
|
308
|
-
{
|
|
309
|
-
initialState: {results: exampleResults},
|
|
310
|
-
options: {maxLength: customMaxLength},
|
|
311
|
-
}
|
|
312
|
-
);
|
|
313
|
-
});
|
|
314
|
-
|
|
315
|
-
it('should not render more results than the #maxLength value', async () => {
|
|
316
|
-
const customMaxLength = 1;
|
|
317
|
-
// The component does not manage the length of the results list, the reducer does. So we need to set the state directly.
|
|
318
|
-
recentResultsListState = {
|
|
319
|
-
...recentResultsListState,
|
|
320
|
-
results: mockResults.slice(0, customMaxLength),
|
|
321
|
-
};
|
|
322
|
-
const element = createTestComponent({
|
|
323
|
-
...defaultOptions,
|
|
324
|
-
maxLength: customMaxLength,
|
|
325
|
-
});
|
|
326
|
-
updateRecentResultsState();
|
|
327
|
-
await flushPromises();
|
|
328
|
-
|
|
329
|
-
const recentResultsListItems = element.shadowRoot.querySelectorAll(
|
|
330
|
-
selectors.recentResultItem
|
|
331
|
-
);
|
|
332
|
-
|
|
333
|
-
expect(recentResultsListItems.length).toBe(customMaxLength);
|
|
334
|
-
recentResultsListItems.forEach((item, index) => {
|
|
335
|
-
const resultLink = item.querySelector(
|
|
336
|
-
selectors.quanticRecentResultLink
|
|
337
|
-
);
|
|
338
|
-
expect(resultLink.result).toEqual(mockResults[index]);
|
|
339
|
-
});
|
|
340
|
-
});
|
|
341
|
-
});
|
|
342
|
-
|
|
343
|
-
describe('with a custom #label value', () => {
|
|
344
|
-
it('should display the custom label in the title of the component', async () => {
|
|
345
|
-
const customLabel = 'My Custom Label';
|
|
346
|
-
const element = createTestComponent({
|
|
347
|
-
...defaultOptions,
|
|
348
|
-
label: customLabel,
|
|
349
|
-
});
|
|
350
|
-
updateRecentResultsState();
|
|
351
|
-
await flushPromises();
|
|
352
|
-
|
|
353
|
-
const recentResultsContainer = element.shadowRoot.querySelector(
|
|
354
|
-
selectors.quanticCardContainer
|
|
355
|
-
);
|
|
356
|
-
expect(recentResultsContainer).not.toBeNull();
|
|
357
|
-
expect(recentResultsContainer.title).toBe(customLabel);
|
|
358
|
-
});
|
|
359
|
-
});
|
|
360
|
-
|
|
361
|
-
describe('the #hideWhenEmpty property', () => {
|
|
362
|
-
describe('when there are recent results', () => {
|
|
363
|
-
it('should display the recent results card when set to true', async () => {
|
|
364
|
-
recentResultsListState = {
|
|
365
|
-
...recentResultsListState,
|
|
366
|
-
results: mockResults,
|
|
367
|
-
};
|
|
368
|
-
const element = createTestComponent({
|
|
369
|
-
...defaultOptions,
|
|
370
|
-
hideWhenEmpty: true,
|
|
371
|
-
});
|
|
372
|
-
updateRecentResultsState();
|
|
373
|
-
await flushPromises();
|
|
374
|
-
|
|
375
|
-
const recentResultsContainer = element.shadowRoot.querySelector(
|
|
376
|
-
selectors.quanticCardContainer
|
|
377
|
-
);
|
|
378
|
-
expect(recentResultsContainer).not.toBeNull();
|
|
379
|
-
});
|
|
380
|
-
});
|
|
381
|
-
|
|
382
|
-
describe('when there are no recent results', () => {
|
|
383
|
-
beforeEach(() => {
|
|
384
|
-
recentResultsListState = {
|
|
385
|
-
...recentResultsListState,
|
|
386
|
-
results: [],
|
|
387
|
-
};
|
|
388
|
-
});
|
|
389
|
-
it('should display an empty list when it is set to false', async () => {
|
|
390
|
-
const element = createTestComponent({
|
|
391
|
-
...defaultOptions,
|
|
392
|
-
hideWhenEmpty: false,
|
|
393
|
-
});
|
|
394
|
-
updateRecentResultsState();
|
|
395
|
-
await flushPromises();
|
|
396
|
-
|
|
397
|
-
const recentResultsContainer = element.shadowRoot.querySelector(
|
|
398
|
-
selectors.quanticCardContainer
|
|
399
|
-
);
|
|
400
|
-
expect(recentResultsContainer).not.toBeNull();
|
|
401
|
-
expect(recentResultsContainer.title).toBe(defaultRecentResultsTitle);
|
|
402
|
-
|
|
403
|
-
const recentResultsListItems = element.shadowRoot.querySelectorAll(
|
|
404
|
-
selectors.recentResultItem
|
|
405
|
-
);
|
|
406
|
-
expect(recentResultsListItems.length).toBe(0);
|
|
407
|
-
});
|
|
408
|
-
|
|
409
|
-
it('should not display a recent results card when it is set to true', async () => {
|
|
410
|
-
const element = createTestComponent({
|
|
411
|
-
...defaultOptions,
|
|
412
|
-
hideWhenEmpty: true,
|
|
413
|
-
});
|
|
414
|
-
await flushPromises();
|
|
415
|
-
|
|
416
|
-
const recentResultsContainer = element.shadowRoot.querySelector(
|
|
417
|
-
selectors.quanticCardContainer
|
|
418
|
-
);
|
|
419
|
-
expect(recentResultsContainer).toBeNull();
|
|
420
|
-
});
|
|
421
|
-
});
|
|
422
|
-
});
|
|
423
|
-
|
|
424
|
-
describe('with a custom #target value', () => {
|
|
425
|
-
it('should pass the target property to the result link component', async () => {
|
|
426
|
-
const customTarget = '_blank';
|
|
427
|
-
const exampleResults = mockResults;
|
|
428
|
-
recentResultsListState = {
|
|
429
|
-
...recentResultsListState,
|
|
430
|
-
results: exampleResults,
|
|
431
|
-
};
|
|
432
|
-
const element = createTestComponent({
|
|
433
|
-
...defaultOptions,
|
|
434
|
-
target: customTarget,
|
|
435
|
-
});
|
|
436
|
-
await flushPromises();
|
|
437
|
-
|
|
438
|
-
const recentResultLinks = element.shadowRoot.querySelectorAll(
|
|
439
|
-
selectors.recentResultItem
|
|
440
|
-
);
|
|
441
|
-
|
|
442
|
-
recentResultLinks.forEach((link) => {
|
|
443
|
-
expect(link.getAttribute('target')).toBe(customTarget);
|
|
444
|
-
});
|
|
445
|
-
});
|
|
446
|
-
});
|
|
447
|
-
|
|
448
|
-
describe('when the #isCollapsed property is false', () => {
|
|
449
|
-
it('should display the card title, the collapse button icon and the recent results list', async () => {
|
|
450
|
-
const collapseRecentResultsLabel = 'Collapse Recent results';
|
|
451
|
-
const collapseRecentResultsIcon = 'utility:dash';
|
|
452
|
-
const element = createTestComponent({
|
|
453
|
-
...defaultOptions,
|
|
454
|
-
isCollapsed: false,
|
|
455
|
-
});
|
|
456
|
-
updateRecentResultsState();
|
|
457
|
-
await flushPromises();
|
|
458
|
-
|
|
459
|
-
const recentResultsContainer = element.shadowRoot.querySelector(
|
|
460
|
-
selectors.quanticCardContainer
|
|
461
|
-
);
|
|
462
|
-
expect(recentResultsContainer).not.toBeNull();
|
|
463
|
-
expect(recentResultsContainer.title).toBe(defaultRecentResultsTitle);
|
|
464
|
-
|
|
465
|
-
const toggleButton = element.shadowRoot.querySelector(
|
|
466
|
-
selectors.toggleButton
|
|
467
|
-
);
|
|
468
|
-
|
|
469
|
-
expect(toggleButton).not.toBeNull();
|
|
470
|
-
expect(toggleButton.alternativeText).toBe(collapseRecentResultsLabel);
|
|
471
|
-
expect(toggleButton.iconName).toBe(collapseRecentResultsIcon);
|
|
472
|
-
|
|
473
|
-
const recentResultsListItems = element.shadowRoot.querySelectorAll(
|
|
474
|
-
selectors.recentResultItem
|
|
475
|
-
);
|
|
476
|
-
|
|
477
|
-
expect(recentResultsListItems.length).toBe(
|
|
478
|
-
recentResultsListState.results.length
|
|
479
|
-
);
|
|
480
|
-
});
|
|
481
|
-
});
|
|
482
|
-
|
|
483
|
-
describe('when the #isCollapsed property is true', () => {
|
|
484
|
-
it('should display the card title and the expand button icon but not the recent results list', async () => {
|
|
485
|
-
const expandRecentResultsLabel = 'Expand Recent results';
|
|
486
|
-
const expandRecentResultsIcon = 'utility:add';
|
|
487
|
-
const element = createTestComponent({
|
|
488
|
-
...defaultOptions,
|
|
489
|
-
isCollapsed: true,
|
|
490
|
-
});
|
|
491
|
-
updateRecentResultsState();
|
|
492
|
-
await flushPromises();
|
|
493
|
-
|
|
494
|
-
const recentResultsContainer = element.shadowRoot.querySelector(
|
|
495
|
-
selectors.quanticCardContainer
|
|
496
|
-
);
|
|
497
|
-
expect(recentResultsContainer).not.toBeNull();
|
|
498
|
-
expect(recentResultsContainer.title).toBe(defaultRecentResultsTitle);
|
|
499
|
-
|
|
500
|
-
const toggleButton = element.shadowRoot.querySelector(
|
|
501
|
-
selectors.toggleButton
|
|
502
|
-
);
|
|
503
|
-
|
|
504
|
-
expect(toggleButton).not.toBeNull();
|
|
505
|
-
expect(toggleButton.alternativeText).toBe(expandRecentResultsLabel);
|
|
506
|
-
expect(toggleButton.iconName).toBe(expandRecentResultsIcon);
|
|
507
|
-
|
|
508
|
-
const recentResultsListItems = element.shadowRoot.querySelectorAll(
|
|
509
|
-
selectors.recentQueryItem
|
|
510
|
-
);
|
|
511
|
-
expect(recentResultsListItems[0]).toBeFalsy();
|
|
512
|
-
expect(recentResultsListItems.length).toBe(0);
|
|
513
|
-
});
|
|
514
|
-
});
|
|
515
|
-
});
|
|
516
|
-
});
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import {RecentResultsListObject} from './pageObject';
|
|
2
|
-
import {quanticBase} from '../../../../../../playwright/fixtures/baseFixture';
|
|
3
|
-
import {SearchObject} from '../../../../../../playwright/page-object/searchObject';
|
|
4
|
-
import {searchRequestRegex} from '../../../../../../playwright/utils/requests';
|
|
5
|
-
import {AnalyticsModeEnum} from '../../../../../../playwright/utils/analyticsMode';
|
|
6
|
-
|
|
7
|
-
const pageUrl = 's/quantic-recent-results-list';
|
|
8
|
-
|
|
9
|
-
interface RecentResultsListOptions {
|
|
10
|
-
engineId: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
type QuanticRecentResultsListE2ESearchFixtures = {
|
|
14
|
-
recentResultList: RecentResultsListObject;
|
|
15
|
-
search: SearchObject;
|
|
16
|
-
options: Partial<RecentResultsListOptions>;
|
|
17
|
-
urlHash: string;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export const testSearch =
|
|
21
|
-
quanticBase.extend<QuanticRecentResultsListE2ESearchFixtures>({
|
|
22
|
-
options: {},
|
|
23
|
-
pageUrl: pageUrl,
|
|
24
|
-
urlHash: '',
|
|
25
|
-
analyticsMode: AnalyticsModeEnum.legacy,
|
|
26
|
-
search: async ({page}, use) => {
|
|
27
|
-
await use(new SearchObject(page, searchRequestRegex));
|
|
28
|
-
},
|
|
29
|
-
recentResultList: async (
|
|
30
|
-
{page, options, configuration, search, urlHash, analytics},
|
|
31
|
-
use
|
|
32
|
-
) => {
|
|
33
|
-
await search.mockSearchWithBaseResponse();
|
|
34
|
-
await page.goto(urlHash ? `${pageUrl}#${urlHash}` : pageUrl);
|
|
35
|
-
const searchResponsePromise = search.waitForSearchResponse();
|
|
36
|
-
await configuration.configure(options);
|
|
37
|
-
await searchResponsePromise;
|
|
38
|
-
|
|
39
|
-
await use(new RecentResultsListObject(page, analytics));
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
export {expect} from '@playwright/test';
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import type {Locator, Page, Request} from '@playwright/test';
|
|
2
|
-
import {
|
|
3
|
-
AnalyticsMode,
|
|
4
|
-
AnalyticsModeEnum,
|
|
5
|
-
} from '../../../../../../playwright/utils/analyticsMode';
|
|
6
|
-
import {AnalyticsObject} from '../../../../../../playwright/page-object/analytics';
|
|
7
|
-
|
|
8
|
-
export class RecentResultsListObject {
|
|
9
|
-
private analyticsMode: AnalyticsMode;
|
|
10
|
-
|
|
11
|
-
constructor(
|
|
12
|
-
public page: Page,
|
|
13
|
-
private analytics: AnalyticsObject
|
|
14
|
-
) {
|
|
15
|
-
this.page = page;
|
|
16
|
-
this.analytics = analytics;
|
|
17
|
-
this.analyticsMode = this.analytics.analyticsMode;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
get recentResultsList(): Locator {
|
|
21
|
-
return this.page.locator('c-quantic-recent-results-list');
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
get recentResultListItemLinks(): Locator {
|
|
25
|
-
return this.page.locator('c-quantic-recent-result-link');
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
get selectResultButton(): Locator {
|
|
29
|
-
return this.page.locator('c-action-select-results button');
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
async clickSelectResultButton(): Promise<void> {
|
|
33
|
-
await this.selectResultButton.click();
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
getRecentResultLinkByIndex(index: number): Locator {
|
|
37
|
-
return this.recentResultListItemLinks.nth(index);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
async waitForRecentResultClickAnalytics(
|
|
41
|
-
expectedCustomMetadata: Record<string, any>
|
|
42
|
-
): Promise<Request> {
|
|
43
|
-
if (this.analyticsMode === AnalyticsModeEnum.legacy) {
|
|
44
|
-
return this.analytics.waitForCustomUaAnalytics(
|
|
45
|
-
{
|
|
46
|
-
eventType: 'recentlyClickedDocuments',
|
|
47
|
-
eventValue: 'recentResultClick',
|
|
48
|
-
},
|
|
49
|
-
(event) =>
|
|
50
|
-
Object.keys(expectedCustomMetadata).every(
|
|
51
|
-
(key) =>
|
|
52
|
-
// @ts-ignore
|
|
53
|
-
event?.customData?.info?.[key] === expectedCustomMetadata[key]
|
|
54
|
-
)
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
throw new Error(
|
|
58
|
-
`Analytics mode ${this.analyticsMode} is not supported for click recent result analytics`
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
}
|
package/force-app/main/default/lwc/quanticRecentResultsList/e2e/quanticRecentResultsList.e2e.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import {testSearch, expect} from './fixture';
|
|
2
|
-
import {
|
|
3
|
-
AnalyticsModeEnum,
|
|
4
|
-
analyticsModeTest,
|
|
5
|
-
} from '../../../../../../playwright/utils/analyticsMode';
|
|
6
|
-
|
|
7
|
-
let test = testSearch;
|
|
8
|
-
|
|
9
|
-
// Next analytics mode not supported in recent results list.
|
|
10
|
-
const supportedAnalyticsModes = analyticsModeTest.filter(
|
|
11
|
-
(analyticsProtocol) => analyticsProtocol.mode === AnalyticsModeEnum.legacy
|
|
12
|
-
);
|
|
13
|
-
|
|
14
|
-
test.describe('quantic recent results list', () => {
|
|
15
|
-
supportedAnalyticsModes.forEach((analytics) => {
|
|
16
|
-
test.describe(analytics.label, () => {
|
|
17
|
-
test.use({
|
|
18
|
-
analyticsMode: analytics.mode,
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test.describe('when clicking on a recent result', () => {
|
|
22
|
-
test('should log the custom recent result click analytics event', async ({
|
|
23
|
-
recentResultList,
|
|
24
|
-
}) => {
|
|
25
|
-
await recentResultList.clickSelectResultButton();
|
|
26
|
-
|
|
27
|
-
const firstRecentResultItemLink =
|
|
28
|
-
recentResultList.getRecentResultLinkByIndex(0);
|
|
29
|
-
await firstRecentResultItemLink.scrollIntoViewIfNeeded();
|
|
30
|
-
expect(firstRecentResultItemLink).toBeVisible();
|
|
31
|
-
expect(firstRecentResultItemLink).not.toBeNull();
|
|
32
|
-
await firstRecentResultItemLink.evaluate((el) => {
|
|
33
|
-
el.addEventListener('click', (e) => e.preventDefault());
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
const recentResultClickAnalyticsPromise =
|
|
37
|
-
recentResultList.waitForRecentResultClickAnalytics({
|
|
38
|
-
documentTitle: '1',
|
|
39
|
-
documentUrl: 'https://github.com/coveo/ui-kit/',
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
await firstRecentResultItemLink.click();
|
|
43
|
-
await recentResultClickAnalyticsPromise;
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
});
|