@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.
- 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/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 +33 -31
- 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,44 +0,0 @@
|
|
|
1
|
-
const facetId = 'Date';
|
|
2
|
-
const field = 'Date';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Facet response before any value is selected.
|
|
6
|
-
*/
|
|
7
|
-
export const initialFacetData = {
|
|
8
|
-
facetId,
|
|
9
|
-
field,
|
|
10
|
-
moreValuesAvailable: true,
|
|
11
|
-
values: [
|
|
12
|
-
{
|
|
13
|
-
start: '2025/01/01@00:00:00',
|
|
14
|
-
end: '2024/01/01@00:00:00',
|
|
15
|
-
endInclusive: false,
|
|
16
|
-
state: 'idle',
|
|
17
|
-
numberOfResults: 35,
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
start: '2024/01/01@00:00:00',
|
|
21
|
-
end: '2023/01/01@00:00:00',
|
|
22
|
-
endInclusive: false,
|
|
23
|
-
state: 'idle',
|
|
24
|
-
numberOfResults: 35,
|
|
25
|
-
},
|
|
26
|
-
],
|
|
27
|
-
indexScore: 0.40500903971252294,
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const [firstRange, secondRange] = initialFacetData.values;
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Facet response after the first value is selected.
|
|
34
|
-
*/
|
|
35
|
-
export const selectedFacetData = {
|
|
36
|
-
...initialFacetData,
|
|
37
|
-
values: [
|
|
38
|
-
{
|
|
39
|
-
...firstRange,
|
|
40
|
-
state: 'selected',
|
|
41
|
-
},
|
|
42
|
-
secondRange,
|
|
43
|
-
],
|
|
44
|
-
};
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import {DateFacetObject} from './pageObject';
|
|
2
|
-
import {useCaseEnum} from '../../../../../../playwright/utils/useCase';
|
|
3
|
-
import {InsightSetupObject} from '../../../../../../playwright/page-object/insightSetupObject';
|
|
4
|
-
import {
|
|
5
|
-
searchRequestRegex,
|
|
6
|
-
insightSearchRequestRegex,
|
|
7
|
-
} from '../../../../../../playwright/utils/requests';
|
|
8
|
-
import {BaseFacetObject} from '../../../../../../playwright/page-object/baseFacetObject';
|
|
9
|
-
import {facetBase} from '../../../../../../playwright/fixtures/baseFacetFixture';
|
|
10
|
-
import {initialFacetData} from './data';
|
|
11
|
-
|
|
12
|
-
const pageUrl = 's/quantic-date-facet';
|
|
13
|
-
|
|
14
|
-
interface FacetOptions {}
|
|
15
|
-
|
|
16
|
-
type QuanticFacetE2EFixtures = {
|
|
17
|
-
facet: DateFacetObject;
|
|
18
|
-
options: Partial<FacetOptions>;
|
|
19
|
-
insightSetup?: InsightSetupObject;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export const testSearch = facetBase.extend<QuanticFacetE2EFixtures>({
|
|
23
|
-
options: {},
|
|
24
|
-
facetResponses: {responses: [[initialFacetData]]},
|
|
25
|
-
baseFacet: async ({page}, use) => {
|
|
26
|
-
await use(new BaseFacetObject(page, searchRequestRegex));
|
|
27
|
-
},
|
|
28
|
-
facet: async (
|
|
29
|
-
{page, options, configuration, baseFacet, urlHash, facetResponses},
|
|
30
|
-
use
|
|
31
|
-
) => {
|
|
32
|
-
// search use case: interface auto-triggers a search on load, hence the mockSearchWithBaseResponse call below
|
|
33
|
-
await baseFacet.mockSearchWithBaseResponse();
|
|
34
|
-
await page.goto(`${pageUrl}#${urlHash ? urlHash : ''}`);
|
|
35
|
-
await baseFacet.mockSearchWithFacetResponseSequence(
|
|
36
|
-
facetResponses?.responses
|
|
37
|
-
);
|
|
38
|
-
configuration.configure(options);
|
|
39
|
-
await baseFacet.waitForSearchResponse();
|
|
40
|
-
|
|
41
|
-
await use(new DateFacetObject(page));
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
export const testInsight = facetBase.extend<QuanticFacetE2EFixtures>({
|
|
46
|
-
options: {},
|
|
47
|
-
facetResponses: {responses: [[initialFacetData]]},
|
|
48
|
-
baseFacet: async ({page}, use) => {
|
|
49
|
-
await use(new BaseFacetObject(page, insightSearchRequestRegex));
|
|
50
|
-
},
|
|
51
|
-
insightSetup: async ({page}, use) => {
|
|
52
|
-
await use(new InsightSetupObject(page));
|
|
53
|
-
},
|
|
54
|
-
facet: async (
|
|
55
|
-
{page, options, baseFacet, configuration, insightSetup, facetResponses},
|
|
56
|
-
use
|
|
57
|
-
) => {
|
|
58
|
-
await page.goto(pageUrl);
|
|
59
|
-
await baseFacet.mockSearchWithFacetResponseSequence(
|
|
60
|
-
facetResponses?.responses
|
|
61
|
-
);
|
|
62
|
-
configuration.configure({...options, useCase: useCaseEnum.insight});
|
|
63
|
-
await insightSetup?.waitForInsightInterfaceInitialization();
|
|
64
|
-
await Promise.all([
|
|
65
|
-
baseFacet.waitForSearchResponse(),
|
|
66
|
-
baseFacet.performSearch(),
|
|
67
|
-
]);
|
|
68
|
-
await use(new DateFacetObject(page));
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
export {expect} from '@playwright/test';
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type {Locator, Page} from '@playwright/test';
|
|
2
|
-
|
|
3
|
-
export class DateFacetObject {
|
|
4
|
-
constructor(public page: Page) {
|
|
5
|
-
this.page = page;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
get facet(): Locator {
|
|
9
|
-
return this.page.locator('c-quantic-date-facet');
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
get facetValue(): Locator {
|
|
13
|
-
return this.facet.getByTestId('facet__value');
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
get clearSelectionButton(): Locator {
|
|
17
|
-
return this.facet.getByRole('button', {name: /Clear filter/i});
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
async getFacetValueWithText(text: string): Promise<Locator> {
|
|
21
|
-
return this.facetValue.filter({hasText: text}).first();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
async clickOnFacetValueWithText(text: string): Promise<void> {
|
|
25
|
-
await this.facetValue.filter({hasText: text}).first().click();
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import {testSearch, testInsight, expect} from './fixture';
|
|
2
|
-
import {
|
|
3
|
-
useCaseEnum,
|
|
4
|
-
useCaseTestCases,
|
|
5
|
-
} from '../../../../../../playwright/utils/useCase';
|
|
6
|
-
import {initialFacetData, selectedFacetData} from './data';
|
|
7
|
-
const fixtures = {
|
|
8
|
-
search: testSearch,
|
|
9
|
-
insight: testInsight,
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const exampleField = 'Date';
|
|
13
|
-
|
|
14
|
-
function formatFacetRange(facetValue: {start: string; end: string}): string {
|
|
15
|
-
const formatDate = (dateTime: string) => {
|
|
16
|
-
const [date] = dateTime.split('@');
|
|
17
|
-
return date.replaceAll('/', '-');
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
return `${formatDate(facetValue.start)} - ${formatDate(facetValue.end)}`;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
useCaseTestCases.forEach((useCase) => {
|
|
24
|
-
let test = fixtures[useCase.value];
|
|
25
|
-
test.describe(`quantic date facet ${useCase.label}`, () => {
|
|
26
|
-
test.describe('when selecting and deselecting a facet value', () => {
|
|
27
|
-
test.use({
|
|
28
|
-
facetResponses: {
|
|
29
|
-
responses: [
|
|
30
|
-
[initialFacetData],
|
|
31
|
-
[selectedFacetData],
|
|
32
|
-
[initialFacetData],
|
|
33
|
-
],
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test('should trigger a new search and log the corresponding UA analytics events', async ({
|
|
38
|
-
baseFacet,
|
|
39
|
-
facet,
|
|
40
|
-
page,
|
|
41
|
-
}) => {
|
|
42
|
-
const selectedIndex = 0;
|
|
43
|
-
const {facetId, field, values} = initialFacetData;
|
|
44
|
-
const expectedFacetData = {
|
|
45
|
-
facetId,
|
|
46
|
-
facetField: field,
|
|
47
|
-
facetValue: `${values[selectedIndex].start}..${values[selectedIndex].end}`,
|
|
48
|
-
};
|
|
49
|
-
const facetSelectUaRequest =
|
|
50
|
-
baseFacet.waitForFacetSelectUaAnalytics(expectedFacetData);
|
|
51
|
-
let searchResponsePromise = baseFacet.waitForSearchResponse();
|
|
52
|
-
await facet.clickOnFacetValueWithText(
|
|
53
|
-
formatFacetRange(values[selectedIndex])
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
await facetSelectUaRequest;
|
|
57
|
-
let searchResponse = await searchResponsePromise;
|
|
58
|
-
|
|
59
|
-
const {analytics: analyticsForFacetSelect} =
|
|
60
|
-
baseFacet.extractDataFromResponse(searchResponse);
|
|
61
|
-
expect(analyticsForFacetSelect.actionCause).toEqual('facetSelect');
|
|
62
|
-
|
|
63
|
-
if (useCase.value === useCaseEnum.search) {
|
|
64
|
-
expect(analyticsForFacetSelect.customData).toEqual(
|
|
65
|
-
expect.objectContaining(expectedFacetData)
|
|
66
|
-
);
|
|
67
|
-
const url = page.url();
|
|
68
|
-
expect(decodeURIComponent(url)).toContain(
|
|
69
|
-
`df-${field}=${values[selectedIndex].start}..${values[selectedIndex].end}`
|
|
70
|
-
);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
const facetDeselectUaRequest =
|
|
74
|
-
baseFacet.waitForFacetDeselectUaAnalytics({
|
|
75
|
-
facetId,
|
|
76
|
-
facetField: field,
|
|
77
|
-
facetValue: `${values[selectedIndex].start}..${values[selectedIndex].end}`,
|
|
78
|
-
});
|
|
79
|
-
searchResponsePromise = baseFacet.waitForSearchResponse();
|
|
80
|
-
|
|
81
|
-
await facet.clickOnFacetValueWithText(
|
|
82
|
-
formatFacetRange(values[selectedIndex])
|
|
83
|
-
);
|
|
84
|
-
|
|
85
|
-
await facetDeselectUaRequest;
|
|
86
|
-
searchResponse = await searchResponsePromise;
|
|
87
|
-
const {analytics: analyticsForFacetDeselect} =
|
|
88
|
-
baseFacet.extractDataFromResponse(searchResponse);
|
|
89
|
-
expect(analyticsForFacetDeselect.actionCause).toEqual('facetDeselect');
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
test.describe('when selecting a facet value and clicking the clear filter button', () => {
|
|
94
|
-
test.use({
|
|
95
|
-
facetResponses: {
|
|
96
|
-
responses: [
|
|
97
|
-
[initialFacetData],
|
|
98
|
-
[selectedFacetData],
|
|
99
|
-
[initialFacetData],
|
|
100
|
-
],
|
|
101
|
-
},
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
test('should trigger a new search and log the corresponding UA analytics events', async ({
|
|
105
|
-
baseFacet,
|
|
106
|
-
facet,
|
|
107
|
-
}) => {
|
|
108
|
-
const selectedIndex = 0;
|
|
109
|
-
const {facetId, field, values} = initialFacetData;
|
|
110
|
-
const expectedFacetData = {
|
|
111
|
-
facetId,
|
|
112
|
-
facetField: field,
|
|
113
|
-
facetValue: `${values[selectedIndex].start}..${values[selectedIndex].end}`,
|
|
114
|
-
};
|
|
115
|
-
const facetSelectUaRequest =
|
|
116
|
-
baseFacet.waitForFacetSelectUaAnalytics(expectedFacetData);
|
|
117
|
-
let searchResponsePromise = baseFacet.waitForSearchResponse();
|
|
118
|
-
await facet.clickOnFacetValueWithText(
|
|
119
|
-
formatFacetRange(values[selectedIndex])
|
|
120
|
-
);
|
|
121
|
-
|
|
122
|
-
await facetSelectUaRequest;
|
|
123
|
-
let searchResponse = await searchResponsePromise;
|
|
124
|
-
|
|
125
|
-
const {analytics: analyticsForFacetSelect} =
|
|
126
|
-
baseFacet.extractDataFromResponse(searchResponse);
|
|
127
|
-
expect(analyticsForFacetSelect.actionCause).toEqual('facetSelect');
|
|
128
|
-
|
|
129
|
-
const clearAllUaRequest = baseFacet.waitForFacetClearAllUaAnalytics({
|
|
130
|
-
facetId: exampleField,
|
|
131
|
-
facetField: exampleField,
|
|
132
|
-
});
|
|
133
|
-
searchResponsePromise = baseFacet.waitForSearchResponse();
|
|
134
|
-
|
|
135
|
-
await facet.clearSelectionButton.click();
|
|
136
|
-
|
|
137
|
-
await clearAllUaRequest;
|
|
138
|
-
searchResponse = await searchResponsePromise;
|
|
139
|
-
const {analytics: analyticsForFacetDeselect} =
|
|
140
|
-
baseFacet.extractDataFromResponse(searchResponse);
|
|
141
|
-
expect(analyticsForFacetDeselect.actionCause).toEqual('facetClearAll');
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
if (useCase.value === useCaseEnum.search) {
|
|
146
|
-
test.describe('with a selected value in the URL', () => {
|
|
147
|
-
const date = new Date();
|
|
148
|
-
const todayDate = date.toISOString().slice(0, 10);
|
|
149
|
-
date.setDate(date.getDate() - 1);
|
|
150
|
-
const yesterdayDate = date.toISOString().slice(0, 10);
|
|
151
|
-
|
|
152
|
-
test.use({
|
|
153
|
-
urlHash: `df-${exampleField}=${yesterdayDate.replaceAll('-', '/')}@00:00:00..${todayDate.replaceAll('-', '/')}@23:59:59`,
|
|
154
|
-
facetResponses: {
|
|
155
|
-
responses: [],
|
|
156
|
-
},
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
test('should select the correct facet value', async ({facet}) => {
|
|
160
|
-
await expect(
|
|
161
|
-
await facet.getFacetValueWithText(`${yesterdayDate} - ${todayDate}`)
|
|
162
|
-
).toHaveAttribute('aria-pressed', 'true');
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
});
|
|
@@ -1,348 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-import-assign */
|
|
2
|
-
import QuanticDidYouMean from '../quanticDidYouMean';
|
|
3
|
-
import * as mockHeadlessLoader from 'c/quanticHeadlessLoader';
|
|
4
|
-
import {buildCreateTestComponent, cleanup, flushPromises} from 'c/testUtils';
|
|
5
|
-
|
|
6
|
-
jest.mock('c/quanticHeadlessLoader');
|
|
7
|
-
jest.mock(
|
|
8
|
-
'@salesforce/label/c.quantic_NoResultsFor',
|
|
9
|
-
() => ({default: 'No Results for {{0}}'}),
|
|
10
|
-
{
|
|
11
|
-
virtual: true,
|
|
12
|
-
}
|
|
13
|
-
);
|
|
14
|
-
jest.mock(
|
|
15
|
-
'@salesforce/label/c.quantic_QueryCorrectedTo',
|
|
16
|
-
() => ({default: 'Query was automatically corrected to {{0}}'}),
|
|
17
|
-
{
|
|
18
|
-
virtual: true,
|
|
19
|
-
}
|
|
20
|
-
);
|
|
21
|
-
jest.mock(
|
|
22
|
-
'@salesforce/label/c.quantic_ShowingResultsFor',
|
|
23
|
-
() => ({default: 'Showing results for {{0}}'}),
|
|
24
|
-
{
|
|
25
|
-
virtual: true,
|
|
26
|
-
}
|
|
27
|
-
);
|
|
28
|
-
jest.mock(
|
|
29
|
-
'@salesforce/label/c.quantic_SearchInsteadFor',
|
|
30
|
-
() => ({default: 'Search instead for'}),
|
|
31
|
-
{
|
|
32
|
-
virtual: true,
|
|
33
|
-
}
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
let isInitialized = false;
|
|
37
|
-
|
|
38
|
-
const exampleEngine = {
|
|
39
|
-
id: 'exampleEngineId',
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const defaultQueryCorrectionMode = 'legacy';
|
|
43
|
-
const defaultDisableQueryAutoCorrection = false;
|
|
44
|
-
|
|
45
|
-
const defaultOptions = {
|
|
46
|
-
engineId: exampleEngine.id,
|
|
47
|
-
disableQueryAutoCorrection: false,
|
|
48
|
-
queryCorrectionMode: defaultQueryCorrectionMode,
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const selectors = {
|
|
52
|
-
didYouMeanNoResultsLabel: '[data-testid="no-result-label"]',
|
|
53
|
-
didYouMeanAutomaticQueryCorrectionLabel:
|
|
54
|
-
'[data-testid="automatic-query-correction-label"]',
|
|
55
|
-
didYouMeanApplyCorrectionButton: '[data-testid="apply-correction-button"]',
|
|
56
|
-
queryTriggerShowingResultsForLabel:
|
|
57
|
-
'[data-testid="showing-results-for-label"]',
|
|
58
|
-
queryTriggerSearchInsteadForLabel: '[data-testid="search-instead-for-label"]',
|
|
59
|
-
queryTriggerUndoButton: '[data-testid="undo-button"]',
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
const initialDidYouMeanState = {
|
|
63
|
-
wasCorrectedTo: 'example corrected query',
|
|
64
|
-
originalQuery: 'example original query',
|
|
65
|
-
wasAutomaticallyCorrected: true,
|
|
66
|
-
queryCorrection: {
|
|
67
|
-
correctedQuery: 'example corrected query',
|
|
68
|
-
wordCorrected: 'example',
|
|
69
|
-
},
|
|
70
|
-
hasQueryCorrection: true,
|
|
71
|
-
};
|
|
72
|
-
let didYouMeanState = initialDidYouMeanState;
|
|
73
|
-
|
|
74
|
-
const initialQueryTriggerState = {
|
|
75
|
-
newQuery: 'example new query',
|
|
76
|
-
originalQuery: 'example original query',
|
|
77
|
-
wasQueryModified: true,
|
|
78
|
-
};
|
|
79
|
-
let queryTriggerState = initialQueryTriggerState;
|
|
80
|
-
|
|
81
|
-
const functionsMocks = {
|
|
82
|
-
undoQueryTrigger: jest.fn(() => {}),
|
|
83
|
-
applyCorrection: jest.fn(() => {}),
|
|
84
|
-
buildDidYouMean: jest.fn(() => ({
|
|
85
|
-
applyCorrection: functionsMocks.applyCorrection,
|
|
86
|
-
state: didYouMeanState,
|
|
87
|
-
subscribe: functionsMocks.subscribeDidYouMean,
|
|
88
|
-
})),
|
|
89
|
-
buildQueryTrigger: jest.fn(() => ({
|
|
90
|
-
undo: functionsMocks.undoQueryTrigger,
|
|
91
|
-
state: queryTriggerState,
|
|
92
|
-
subscribe: functionsMocks.subscribeQueryTrigger,
|
|
93
|
-
})),
|
|
94
|
-
subscribeDidYouMean: jest.fn((cb) => {
|
|
95
|
-
cb();
|
|
96
|
-
return functionsMocks.unsubscribeDidYouMean;
|
|
97
|
-
}),
|
|
98
|
-
unsubscribeDidYouMean: jest.fn(() => {}),
|
|
99
|
-
subscribeQueryTrigger: jest.fn((cb) => {
|
|
100
|
-
cb();
|
|
101
|
-
return functionsMocks.unsubscribeQueryTrigger;
|
|
102
|
-
}),
|
|
103
|
-
unsubscribeQueryTrigger: jest.fn(() => {}),
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
function prepareHeadlessState() {
|
|
107
|
-
// @ts-ignore
|
|
108
|
-
mockHeadlessLoader.getHeadlessBundle = () => {
|
|
109
|
-
return {
|
|
110
|
-
buildDidYouMean: functionsMocks.buildDidYouMean,
|
|
111
|
-
buildQueryTrigger: functionsMocks.buildQueryTrigger,
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
function mockSuccessfulHeadlessInitialization() {
|
|
117
|
-
// @ts-ignore
|
|
118
|
-
mockHeadlessLoader.initializeWithHeadless = (element, _, initialize) => {
|
|
119
|
-
if (element instanceof QuanticDidYouMean && !isInitialized) {
|
|
120
|
-
isInitialized = true;
|
|
121
|
-
initialize(exampleEngine);
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
const createTestComponent = buildCreateTestComponent(
|
|
127
|
-
QuanticDidYouMean,
|
|
128
|
-
'c-quantic-did-you-mean',
|
|
129
|
-
defaultOptions
|
|
130
|
-
);
|
|
131
|
-
|
|
132
|
-
describe('c-quantic-did-you-mean', () => {
|
|
133
|
-
afterEach(() => {
|
|
134
|
-
cleanup();
|
|
135
|
-
isInitialized = false;
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
describe('controller initialization', () => {
|
|
139
|
-
beforeEach(() => {
|
|
140
|
-
mockSuccessfulHeadlessInitialization();
|
|
141
|
-
prepareHeadlessState();
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
it('should subscribe to the headless state changes', async () => {
|
|
145
|
-
createTestComponent();
|
|
146
|
-
await flushPromises();
|
|
147
|
-
|
|
148
|
-
expect(functionsMocks.buildDidYouMean).toHaveBeenCalledTimes(1);
|
|
149
|
-
expect(functionsMocks.buildDidYouMean).toHaveBeenCalledWith(
|
|
150
|
-
exampleEngine,
|
|
151
|
-
expect.objectContaining({
|
|
152
|
-
options: expect.objectContaining({
|
|
153
|
-
queryCorrectionMode: defaultQueryCorrectionMode,
|
|
154
|
-
automaticallyCorrectQuery: !defaultDisableQueryAutoCorrection,
|
|
155
|
-
}),
|
|
156
|
-
})
|
|
157
|
-
);
|
|
158
|
-
expect(functionsMocks.subscribeDidYouMean).toHaveBeenCalledTimes(1);
|
|
159
|
-
expect(functionsMocks.buildQueryTrigger).toHaveBeenCalledTimes(1);
|
|
160
|
-
expect(functionsMocks.subscribeQueryTrigger).toHaveBeenCalledTimes(1);
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
describe('#disableQueryAutoCorrection property', () => {
|
|
164
|
-
describe.each([
|
|
165
|
-
[false, true],
|
|
166
|
-
[true, false],
|
|
167
|
-
])(
|
|
168
|
-
'when disableQueryAutoCorrection is %s',
|
|
169
|
-
(disableQueryAutoCorrection, expectedAutomaticallyCorrectQuery) => {
|
|
170
|
-
it(`should initialize the controller with automaticallyCorrectQuery set to ${expectedAutomaticallyCorrectQuery}`, async () => {
|
|
171
|
-
createTestComponent({
|
|
172
|
-
disableQueryAutoCorrection,
|
|
173
|
-
});
|
|
174
|
-
await flushPromises();
|
|
175
|
-
|
|
176
|
-
expect(functionsMocks.buildDidYouMean).toHaveBeenCalledTimes(1);
|
|
177
|
-
expect(functionsMocks.buildDidYouMean).toHaveBeenCalledWith(
|
|
178
|
-
exampleEngine,
|
|
179
|
-
expect.objectContaining({
|
|
180
|
-
options: expect.objectContaining({
|
|
181
|
-
automaticallyCorrectQuery: expectedAutomaticallyCorrectQuery,
|
|
182
|
-
}),
|
|
183
|
-
})
|
|
184
|
-
);
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
);
|
|
188
|
-
});
|
|
189
|
-
|
|
190
|
-
describe('#queryCorrectionMode property', () => {
|
|
191
|
-
describe.each([['legacy'], ['next']])(
|
|
192
|
-
'when queryCorrectionMode is %s',
|
|
193
|
-
(queryCorrectionMode) => {
|
|
194
|
-
it(`should initialize the headless didYouMean controller with queryCorrectionMode set to ${queryCorrectionMode}`, async () => {
|
|
195
|
-
createTestComponent({
|
|
196
|
-
...defaultOptions,
|
|
197
|
-
queryCorrectionMode,
|
|
198
|
-
});
|
|
199
|
-
await flushPromises();
|
|
200
|
-
expect(functionsMocks.buildDidYouMean).toHaveBeenCalledTimes(1);
|
|
201
|
-
expect(functionsMocks.buildDidYouMean).toHaveBeenCalledWith(
|
|
202
|
-
exampleEngine,
|
|
203
|
-
expect.objectContaining({
|
|
204
|
-
options: expect.objectContaining({
|
|
205
|
-
automaticallyCorrectQuery: true,
|
|
206
|
-
queryCorrectionMode,
|
|
207
|
-
}),
|
|
208
|
-
})
|
|
209
|
-
);
|
|
210
|
-
});
|
|
211
|
-
}
|
|
212
|
-
);
|
|
213
|
-
});
|
|
214
|
-
});
|
|
215
|
-
|
|
216
|
-
describe('when hasQueryCorrection is true', () => {
|
|
217
|
-
beforeEach(() => {
|
|
218
|
-
mockSuccessfulHeadlessInitialization();
|
|
219
|
-
prepareHeadlessState();
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
it('should render the didYouMean component template with the auto corrected query', async () => {
|
|
223
|
-
const expectedNoResultsLabel = initialDidYouMeanState.originalQuery;
|
|
224
|
-
const expectedAutomaticQueryCorrectionLabel =
|
|
225
|
-
initialDidYouMeanState.wasCorrectedTo;
|
|
226
|
-
const element = createTestComponent();
|
|
227
|
-
await flushPromises();
|
|
228
|
-
|
|
229
|
-
const didYouMeanNoResultsLabel = element.shadowRoot.querySelector(
|
|
230
|
-
selectors.didYouMeanNoResultsLabel
|
|
231
|
-
);
|
|
232
|
-
expect(didYouMeanNoResultsLabel).not.toBeNull();
|
|
233
|
-
expect(didYouMeanNoResultsLabel.value).toContain(expectedNoResultsLabel);
|
|
234
|
-
const didYouMeanAutomaticQueryCorrectionLabel =
|
|
235
|
-
element.shadowRoot.querySelector(
|
|
236
|
-
selectors.didYouMeanAutomaticQueryCorrectionLabel
|
|
237
|
-
);
|
|
238
|
-
expect(didYouMeanAutomaticQueryCorrectionLabel).not.toBeNull();
|
|
239
|
-
expect(didYouMeanAutomaticQueryCorrectionLabel.value).toContain(
|
|
240
|
-
expectedAutomaticQueryCorrectionLabel
|
|
241
|
-
);
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
describe('when wasAutomaticallyCorrected is false', () => {
|
|
245
|
-
beforeEach(() => {
|
|
246
|
-
didYouMeanState.wasAutomaticallyCorrected = false;
|
|
247
|
-
});
|
|
248
|
-
|
|
249
|
-
it('should render the apply correction button to apply the query correct', async () => {
|
|
250
|
-
const element = createTestComponent();
|
|
251
|
-
await flushPromises();
|
|
252
|
-
|
|
253
|
-
const applyCorrectionButton = element.shadowRoot.querySelector(
|
|
254
|
-
selectors.didYouMeanApplyCorrectionButton
|
|
255
|
-
);
|
|
256
|
-
expect(applyCorrectionButton).not.toBeNull();
|
|
257
|
-
expect(applyCorrectionButton.textContent).toBe(
|
|
258
|
-
initialDidYouMeanState.queryCorrection.correctedQuery
|
|
259
|
-
);
|
|
260
|
-
applyCorrectionButton.click();
|
|
261
|
-
await flushPromises();
|
|
262
|
-
expect(functionsMocks.applyCorrection).toHaveBeenCalledTimes(1);
|
|
263
|
-
});
|
|
264
|
-
});
|
|
265
|
-
});
|
|
266
|
-
|
|
267
|
-
describe('when hasQueryCorrection is false', () => {
|
|
268
|
-
beforeEach(() => {
|
|
269
|
-
didYouMeanState.hasQueryCorrection = false;
|
|
270
|
-
queryTriggerState = initialQueryTriggerState;
|
|
271
|
-
mockSuccessfulHeadlessInitialization();
|
|
272
|
-
prepareHeadlessState();
|
|
273
|
-
});
|
|
274
|
-
|
|
275
|
-
it('should render the queryTrigger component template', async () => {
|
|
276
|
-
const expectedNewQuery = initialQueryTriggerState.newQuery;
|
|
277
|
-
const expectedOriginalQuery = initialQueryTriggerState.originalQuery;
|
|
278
|
-
const element = createTestComponent();
|
|
279
|
-
await flushPromises();
|
|
280
|
-
|
|
281
|
-
const queryTriggerShowingResultsForLabel =
|
|
282
|
-
element.shadowRoot.querySelector(
|
|
283
|
-
selectors.queryTriggerShowingResultsForLabel
|
|
284
|
-
);
|
|
285
|
-
expect(queryTriggerShowingResultsForLabel).not.toBeNull();
|
|
286
|
-
expect(queryTriggerShowingResultsForLabel.value).toContain(
|
|
287
|
-
expectedNewQuery
|
|
288
|
-
);
|
|
289
|
-
const queryTriggerUndoButton = element.shadowRoot.querySelector(
|
|
290
|
-
selectors.queryTriggerUndoButton
|
|
291
|
-
);
|
|
292
|
-
expect(queryTriggerUndoButton).not.toBeNull();
|
|
293
|
-
expect(queryTriggerUndoButton.textContent).toContain(
|
|
294
|
-
expectedOriginalQuery
|
|
295
|
-
);
|
|
296
|
-
});
|
|
297
|
-
|
|
298
|
-
it('should call the queryTrigger undo method when the undo button is clicked', async () => {
|
|
299
|
-
const element = createTestComponent();
|
|
300
|
-
await flushPromises();
|
|
301
|
-
|
|
302
|
-
const queryTriggerUndoButton = element.shadowRoot.querySelector(
|
|
303
|
-
selectors.queryTriggerUndoButton
|
|
304
|
-
);
|
|
305
|
-
queryTriggerUndoButton.click();
|
|
306
|
-
await flushPromises();
|
|
307
|
-
|
|
308
|
-
expect(functionsMocks.undoQueryTrigger).toHaveBeenCalledTimes(1);
|
|
309
|
-
});
|
|
310
|
-
});
|
|
311
|
-
|
|
312
|
-
describe('when hasQueryCorrection is false and wasQueryModified is false', () => {
|
|
313
|
-
beforeEach(() => {
|
|
314
|
-
didYouMeanState.hasQueryCorrection = false;
|
|
315
|
-
queryTriggerState = {
|
|
316
|
-
...initialQueryTriggerState,
|
|
317
|
-
wasQueryModified: false,
|
|
318
|
-
};
|
|
319
|
-
mockSuccessfulHeadlessInitialization();
|
|
320
|
-
prepareHeadlessState();
|
|
321
|
-
});
|
|
322
|
-
|
|
323
|
-
it('should not render anything', async () => {
|
|
324
|
-
const element = createTestComponent();
|
|
325
|
-
await flushPromises();
|
|
326
|
-
|
|
327
|
-
const didYouMeanNoResultsLabel = element.shadowRoot.querySelector(
|
|
328
|
-
selectors.didYouMeanNoResultsLabel
|
|
329
|
-
);
|
|
330
|
-
expect(didYouMeanNoResultsLabel).toBeNull();
|
|
331
|
-
const didYouMeanAutomaticQueryCorrectionLabel =
|
|
332
|
-
element.shadowRoot.querySelector(
|
|
333
|
-
selectors.didYouMeanAutomaticQueryCorrectionLabel
|
|
334
|
-
);
|
|
335
|
-
expect(didYouMeanAutomaticQueryCorrectionLabel).toBeNull();
|
|
336
|
-
|
|
337
|
-
const queryTriggerShowingResultsForLabel =
|
|
338
|
-
element.shadowRoot.querySelector(
|
|
339
|
-
selectors.queryTriggerShowingResultsForLabel
|
|
340
|
-
);
|
|
341
|
-
expect(queryTriggerShowingResultsForLabel).toBeNull();
|
|
342
|
-
const queryTriggerUndoButton = element.shadowRoot.querySelector(
|
|
343
|
-
selectors.queryTriggerUndoButton
|
|
344
|
-
);
|
|
345
|
-
expect(queryTriggerUndoButton).toBeNull();
|
|
346
|
-
});
|
|
347
|
-
});
|
|
348
|
-
});
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DidYouMeanLegacyData,
|
|
3
|
-
DidYouMeanNextData,
|
|
4
|
-
QueryTriggerData,
|
|
5
|
-
} from '../../../../../../playwright/page-object/searchObjectWithDidYouMean';
|
|
6
|
-
|
|
7
|
-
const exampleOriginalQuery = 'original query';
|
|
8
|
-
const exampleCorrectedQuery = 'corrected query';
|
|
9
|
-
const exampleQueryTriggered = 'query triggered';
|
|
10
|
-
|
|
11
|
-
const exampleDidYouMeanData: DidYouMeanLegacyData = {
|
|
12
|
-
correctedQuery: exampleCorrectedQuery,
|
|
13
|
-
wordCorrections: [
|
|
14
|
-
{
|
|
15
|
-
correctedWord: exampleCorrectedQuery,
|
|
16
|
-
originalWord: exampleOriginalQuery,
|
|
17
|
-
length: exampleCorrectedQuery.length,
|
|
18
|
-
offset: 0,
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const exampleDidYouMeanNextData: DidYouMeanNextData = {
|
|
24
|
-
correctedQuery: exampleCorrectedQuery,
|
|
25
|
-
wordCorrections: [
|
|
26
|
-
{
|
|
27
|
-
correctedWord: exampleCorrectedQuery,
|
|
28
|
-
originalWord: exampleOriginalQuery,
|
|
29
|
-
length: exampleCorrectedQuery.length,
|
|
30
|
-
offset: 0,
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
originalQuery: exampleOriginalQuery,
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
const exampleQueryTriggerData: QueryTriggerData = {
|
|
37
|
-
type: 'query',
|
|
38
|
-
content: exampleQueryTriggered,
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export default {
|
|
42
|
-
originalQuery: exampleOriginalQuery,
|
|
43
|
-
correctedQuery: exampleCorrectedQuery,
|
|
44
|
-
triggeredQuery: exampleQueryTriggered,
|
|
45
|
-
didYouMeanData: exampleDidYouMeanData,
|
|
46
|
-
didYouMeanNextData: exampleDidYouMeanNextData,
|
|
47
|
-
queryTriggerData: exampleQueryTriggerData,
|
|
48
|
-
};
|