@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,581 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getNavigateCalledWith,
|
|
3
|
-
getGenerateUrlCalledWith,
|
|
4
|
-
} from 'lightning/navigation';
|
|
5
|
-
// @ts-ignore
|
|
6
|
-
import {createElement} from 'lwc';
|
|
7
|
-
import QuanticCitation from '../quanticCitation';
|
|
8
|
-
|
|
9
|
-
const functionsMocks = {
|
|
10
|
-
eventHandler: jest.fn((event) => event),
|
|
11
|
-
exampleSelect: jest.fn(() => {}),
|
|
12
|
-
exampleBeginDelayedSelect: jest.fn(() => {}),
|
|
13
|
-
exampleCancelPendingSelect: jest.fn(() => {}),
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const exampleCitation = {
|
|
17
|
-
index: '1',
|
|
18
|
-
id: '123',
|
|
19
|
-
title: 'Example title 1',
|
|
20
|
-
uri: 'https://example.com/',
|
|
21
|
-
clickUri: 'https://example.com/',
|
|
22
|
-
permanentid: '1',
|
|
23
|
-
text: 'text 01',
|
|
24
|
-
fields: {
|
|
25
|
-
filetype: 'html',
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const exampleSalesforceCitation = {
|
|
30
|
-
...exampleCitation,
|
|
31
|
-
fields: {
|
|
32
|
-
filetype: 'SalesforceItem',
|
|
33
|
-
sfid: '123',
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
const exampleSalesforceKnowledgeArticleCitation = {
|
|
37
|
-
...exampleCitation,
|
|
38
|
-
fields: {
|
|
39
|
-
...exampleCitation.fields,
|
|
40
|
-
sfid: '123',
|
|
41
|
-
sfkbid: 'foo',
|
|
42
|
-
sfkavid: 'bar',
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
const exampleSalesforceLink = 'https://www.example-salesforce.com';
|
|
46
|
-
const urlFragment = '#:~:text=text%2001';
|
|
47
|
-
const exampleCitationUrl = 'https://example.com/';
|
|
48
|
-
|
|
49
|
-
const activeCitationLinkClass = 'citation__link--active';
|
|
50
|
-
const activeCitationTitleClass = 'citation__title--active';
|
|
51
|
-
const activeCitationIconClass = 'citation__icon--active';
|
|
52
|
-
const testIconName = 'utility:attach';
|
|
53
|
-
|
|
54
|
-
const defaultOptions = {
|
|
55
|
-
citation: exampleCitation,
|
|
56
|
-
interactiveCitation: {
|
|
57
|
-
select: () => functionsMocks.exampleSelect(),
|
|
58
|
-
beginDelayedSelect: () => functionsMocks.exampleBeginDelayedSelect(),
|
|
59
|
-
cancelPendingSelect: () => functionsMocks.exampleCancelPendingSelect(),
|
|
60
|
-
},
|
|
61
|
-
disableCitationAnchoring: false,
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
const selectors = {
|
|
65
|
-
citation: '.citation',
|
|
66
|
-
citationLink: '.citation__link',
|
|
67
|
-
citationTitle: '.citation__title',
|
|
68
|
-
citationTooltip: 'c-quantic-tooltip',
|
|
69
|
-
citationTooltipUrl: '[data-testid="citation__tooltip-uri"]',
|
|
70
|
-
citationIcon: '.citation__icon',
|
|
71
|
-
actionsSlot: 'slot[name="actions"]',
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Mocks the return value of the assignedNodes method.
|
|
76
|
-
* @param {Array<Element>} assignedElements
|
|
77
|
-
*/
|
|
78
|
-
function mockSlotAssignedNodes(assignedElements) {
|
|
79
|
-
HTMLSlotElement.prototype.assignedNodes = function () {
|
|
80
|
-
return assignedElements;
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function createTestComponent(options = defaultOptions, assignedElements = []) {
|
|
85
|
-
mockSlotAssignedNodes(assignedElements);
|
|
86
|
-
|
|
87
|
-
const element = createElement('c-quantic-citation', {
|
|
88
|
-
is: QuanticCitation,
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
for (const [key, value] of Object.entries(options)) {
|
|
92
|
-
element[key] = value;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
document.body.appendChild(element);
|
|
96
|
-
return element;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Helper function to wait until the microtask queue is empty.
|
|
100
|
-
async function flushPromises() {
|
|
101
|
-
return Promise.resolve();
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
const bindingsMap = {
|
|
105
|
-
contextmenu: functionsMocks.exampleSelect,
|
|
106
|
-
click: functionsMocks.exampleSelect,
|
|
107
|
-
mouseup: functionsMocks.exampleSelect,
|
|
108
|
-
mousedown: functionsMocks.exampleSelect,
|
|
109
|
-
touchstart: functionsMocks.exampleBeginDelayedSelect,
|
|
110
|
-
touchend: functionsMocks.exampleCancelPendingSelect,
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
function setupEventDispatchTest(eventName) {
|
|
114
|
-
const handler = (event) => {
|
|
115
|
-
functionsMocks.eventHandler(event?.detail);
|
|
116
|
-
document.removeEventListener(eventName, handler);
|
|
117
|
-
};
|
|
118
|
-
document.addEventListener(eventName, handler);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
describe('c-quantic-citation', () => {
|
|
122
|
-
function cleanup() {
|
|
123
|
-
// The jsdom instance is shared across test cases in a single file so reset the DOM
|
|
124
|
-
while (document.body.firstChild) {
|
|
125
|
-
document.body.removeChild(document.body.firstChild);
|
|
126
|
-
}
|
|
127
|
-
jest.clearAllMocks();
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
afterEach(() => {
|
|
131
|
-
cleanup();
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
it('should properly display the citation', async () => {
|
|
135
|
-
const element = createTestComponent();
|
|
136
|
-
await flushPromises();
|
|
137
|
-
|
|
138
|
-
const citation = element.shadowRoot.querySelector(selectors.citation);
|
|
139
|
-
const citationLink = element.shadowRoot.querySelector(
|
|
140
|
-
selectors.citationLink
|
|
141
|
-
);
|
|
142
|
-
const citationTitle = element.shadowRoot.querySelector(
|
|
143
|
-
selectors.citationTitle
|
|
144
|
-
);
|
|
145
|
-
const citationTooltip = element.shadowRoot.querySelector(
|
|
146
|
-
selectors.citationTooltip
|
|
147
|
-
);
|
|
148
|
-
|
|
149
|
-
expect(citation).not.toBeNull();
|
|
150
|
-
expect(citationLink).not.toBeNull();
|
|
151
|
-
expect(citationTitle).not.toBeNull();
|
|
152
|
-
expect(citationTooltip).not.toBeNull();
|
|
153
|
-
|
|
154
|
-
expect(citationLink.href).toBe(`${exampleCitationUrl}${urlFragment}`);
|
|
155
|
-
expect(citationLink.target).toBe('_blank');
|
|
156
|
-
expect(citationTitle.textContent).toBe(exampleCitation.title);
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
describe('the analytics bindings of the link within the citation', () => {
|
|
160
|
-
for (const [eventName, action] of Object.entries(bindingsMap)) {
|
|
161
|
-
it(`should execute the proper action when the ${eventName} is triggered on the link`, async () => {
|
|
162
|
-
const element = createTestComponent();
|
|
163
|
-
await flushPromises();
|
|
164
|
-
|
|
165
|
-
const link = element.shadowRoot.querySelector(selectors.citationLink);
|
|
166
|
-
link.dispatchEvent(new CustomEvent(eventName));
|
|
167
|
-
|
|
168
|
-
expect(action).toHaveBeenCalledTimes(1);
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
describe('hovering over the citation', () => {
|
|
174
|
-
beforeAll(() => {
|
|
175
|
-
jest.useFakeTimers();
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
afterAll(() => {
|
|
179
|
-
jest.useRealTimers();
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
it('should display the citation tooltip after 200ms delay', async () => {
|
|
183
|
-
const element = createTestComponent();
|
|
184
|
-
await flushPromises();
|
|
185
|
-
|
|
186
|
-
const citationLink = element.shadowRoot.querySelector(
|
|
187
|
-
selectors.citationLink
|
|
188
|
-
);
|
|
189
|
-
const citationTooltip = element.shadowRoot.querySelector(
|
|
190
|
-
selectors.citationTooltip
|
|
191
|
-
);
|
|
192
|
-
|
|
193
|
-
expect(citationLink).not.toBeNull();
|
|
194
|
-
expect(citationTooltip).not.toBeNull();
|
|
195
|
-
|
|
196
|
-
const showTooltipSpy = jest.spyOn(citationTooltip, 'showTooltip');
|
|
197
|
-
|
|
198
|
-
await citationLink.dispatchEvent(
|
|
199
|
-
new CustomEvent('mouseenter', {bubbles: true})
|
|
200
|
-
);
|
|
201
|
-
expect(showTooltipSpy).toHaveBeenCalledTimes(0);
|
|
202
|
-
jest.advanceTimersByTime(200);
|
|
203
|
-
expect(showTooltipSpy).toHaveBeenCalledTimes(1);
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
it('should dispatch a citation hover event after hovering over the the citation for more than 1200ms, 200ms delay before hover + 1000ms minimum hover duration', async () => {
|
|
207
|
-
const element = createTestComponent();
|
|
208
|
-
await flushPromises();
|
|
209
|
-
setupEventDispatchTest('quantic__citationhover');
|
|
210
|
-
|
|
211
|
-
const citationLink = element.shadowRoot.querySelector(
|
|
212
|
-
selectors.citationLink
|
|
213
|
-
);
|
|
214
|
-
expect(citationLink).not.toBeNull();
|
|
215
|
-
|
|
216
|
-
await citationLink.dispatchEvent(
|
|
217
|
-
new CustomEvent('mouseenter', {bubbles: true})
|
|
218
|
-
);
|
|
219
|
-
// Wait for show delay - this triggers the tooltip to show and sets hoverStartTimestamp
|
|
220
|
-
jest.advanceTimersByTime(200);
|
|
221
|
-
// Now wait for minimum hover time
|
|
222
|
-
jest.advanceTimersByTime(1000);
|
|
223
|
-
await citationLink.dispatchEvent(
|
|
224
|
-
new CustomEvent('mouseleave', {bubbles: true})
|
|
225
|
-
);
|
|
226
|
-
// Additional 200ms delay for the hide tooltip logic
|
|
227
|
-
jest.advanceTimersByTime(200);
|
|
228
|
-
|
|
229
|
-
expect(functionsMocks.eventHandler).toHaveBeenCalledTimes(1);
|
|
230
|
-
expect(functionsMocks.eventHandler).toHaveBeenCalledWith({
|
|
231
|
-
citationHoverTimeMs: 1100,
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
it('should not dispatch a citation hover event after hovering over the citation for less than 1200ms', async () => {
|
|
236
|
-
const element = createTestComponent();
|
|
237
|
-
await flushPromises();
|
|
238
|
-
setupEventDispatchTest('quantic__citationhover');
|
|
239
|
-
|
|
240
|
-
const citationLink = element.shadowRoot.querySelector(
|
|
241
|
-
selectors.citationLink
|
|
242
|
-
);
|
|
243
|
-
expect(citationLink).not.toBeNull();
|
|
244
|
-
|
|
245
|
-
await citationLink.dispatchEvent(
|
|
246
|
-
new CustomEvent('mouseenter', {bubbles: true})
|
|
247
|
-
);
|
|
248
|
-
jest.advanceTimersByTime(500);
|
|
249
|
-
await citationLink.dispatchEvent(
|
|
250
|
-
new CustomEvent('mouseleave', {bubbles: true})
|
|
251
|
-
);
|
|
252
|
-
// Additional 200ms delay for the new hide tooltip logic
|
|
253
|
-
jest.advanceTimersByTime(200);
|
|
254
|
-
|
|
255
|
-
expect(functionsMocks.eventHandler).toHaveBeenCalledTimes(0);
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
describe('when moving the cursor between the citation link and the tooltip', () => {
|
|
259
|
-
it('should keep the tooltip displayed', async () => {
|
|
260
|
-
const element = createTestComponent();
|
|
261
|
-
await flushPromises();
|
|
262
|
-
|
|
263
|
-
const citationLink = element.shadowRoot.querySelector(
|
|
264
|
-
selectors.citationLink
|
|
265
|
-
);
|
|
266
|
-
const citationTooltip = element.shadowRoot.querySelector(
|
|
267
|
-
selectors.citationTooltip
|
|
268
|
-
);
|
|
269
|
-
|
|
270
|
-
expect(citationLink).not.toBeNull();
|
|
271
|
-
expect(citationTooltip).not.toBeNull();
|
|
272
|
-
|
|
273
|
-
const hideTooltipSpy = jest.spyOn(citationTooltip, 'hideTooltip');
|
|
274
|
-
|
|
275
|
-
// Hover over the citation - tooltip shows after 200ms delay
|
|
276
|
-
await citationLink.dispatchEvent(
|
|
277
|
-
new CustomEvent('mouseenter', {bubbles: true})
|
|
278
|
-
);
|
|
279
|
-
jest.advanceTimersByTime(200);
|
|
280
|
-
|
|
281
|
-
// Move cursor to tooltip quickly (before hide delay expires)
|
|
282
|
-
await citationLink.dispatchEvent(
|
|
283
|
-
new CustomEvent('mouseleave', {bubbles: true})
|
|
284
|
-
);
|
|
285
|
-
|
|
286
|
-
await citationTooltip.dispatchEvent(
|
|
287
|
-
new CustomEvent('mouseenter', {bubbles: true})
|
|
288
|
-
);
|
|
289
|
-
|
|
290
|
-
// Move cursor back to citation quickly (before hide delay expires)
|
|
291
|
-
await citationTooltip.dispatchEvent(
|
|
292
|
-
new CustomEvent('mouseleave', {bubbles: true})
|
|
293
|
-
);
|
|
294
|
-
|
|
295
|
-
await citationLink.dispatchEvent(
|
|
296
|
-
new CustomEvent('mouseenter', {bubbles: true})
|
|
297
|
-
);
|
|
298
|
-
|
|
299
|
-
// Advance time beyond 100ms to see if tooltip is hidden
|
|
300
|
-
jest.advanceTimersByTime(200);
|
|
301
|
-
|
|
302
|
-
expect(hideTooltipSpy).toHaveBeenCalledTimes(0);
|
|
303
|
-
});
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
describe('when citation anchoring is enabled', () => {
|
|
308
|
-
describe('when the citation source is of type Salesforce', () => {
|
|
309
|
-
it('should not prevent default behavior and not call the navigation mixin to open the link', async () => {
|
|
310
|
-
const element = createTestComponent({
|
|
311
|
-
...defaultOptions,
|
|
312
|
-
citation: exampleSalesforceCitation,
|
|
313
|
-
});
|
|
314
|
-
await flushPromises();
|
|
315
|
-
|
|
316
|
-
const link = element.shadowRoot.querySelector(selectors.citationLink);
|
|
317
|
-
link.click();
|
|
318
|
-
|
|
319
|
-
const {pageReference} = getNavigateCalledWith();
|
|
320
|
-
expect(pageReference).toBeUndefined();
|
|
321
|
-
|
|
322
|
-
expect(link.href).toBe(`${exampleSalesforceLink}/${urlFragment}`);
|
|
323
|
-
expect(link.target).toBe('_blank');
|
|
324
|
-
});
|
|
325
|
-
});
|
|
326
|
-
|
|
327
|
-
describe('when the citation filetype is HTML', () => {
|
|
328
|
-
it('should generate a text fragment URL', async () => {
|
|
329
|
-
const element = createTestComponent({
|
|
330
|
-
...defaultOptions,
|
|
331
|
-
citation: {
|
|
332
|
-
...exampleCitation,
|
|
333
|
-
fields: {
|
|
334
|
-
...exampleCitation.fields,
|
|
335
|
-
filetype: 'html',
|
|
336
|
-
},
|
|
337
|
-
},
|
|
338
|
-
});
|
|
339
|
-
await flushPromises();
|
|
340
|
-
|
|
341
|
-
const link = element.shadowRoot.querySelector(selectors.citationLink);
|
|
342
|
-
expect(link.href).toBe(`${exampleCitationUrl}${urlFragment}`);
|
|
343
|
-
});
|
|
344
|
-
});
|
|
345
|
-
|
|
346
|
-
describe('when the citation filetype is not HTML', () => {
|
|
347
|
-
it('should not generate a text fragment URL', async () => {
|
|
348
|
-
const element = createTestComponent({
|
|
349
|
-
...defaultOptions,
|
|
350
|
-
citation: {
|
|
351
|
-
...exampleCitation,
|
|
352
|
-
fields: {
|
|
353
|
-
...exampleCitation.fields,
|
|
354
|
-
filetype: 'pdf',
|
|
355
|
-
},
|
|
356
|
-
},
|
|
357
|
-
});
|
|
358
|
-
await flushPromises();
|
|
359
|
-
|
|
360
|
-
const link = element.shadowRoot.querySelector(selectors.citationLink);
|
|
361
|
-
expect(link.href).toBe(exampleCitationUrl);
|
|
362
|
-
});
|
|
363
|
-
});
|
|
364
|
-
|
|
365
|
-
describe('when the citation does not contain text', () => {
|
|
366
|
-
it('should not generate a text fragment URL', async () => {
|
|
367
|
-
const element = createTestComponent({
|
|
368
|
-
...defaultOptions,
|
|
369
|
-
citation: {
|
|
370
|
-
...exampleCitation,
|
|
371
|
-
text: '',
|
|
372
|
-
},
|
|
373
|
-
});
|
|
374
|
-
await flushPromises();
|
|
375
|
-
|
|
376
|
-
const link = element.shadowRoot.querySelector(selectors.citationLink);
|
|
377
|
-
expect(link.href).toBe(exampleCitationUrl);
|
|
378
|
-
});
|
|
379
|
-
});
|
|
380
|
-
});
|
|
381
|
-
|
|
382
|
-
describe('when citation anchoring is disabled', () => {
|
|
383
|
-
describe('when the citation source is not of type Salesforce', () => {
|
|
384
|
-
it('should leave the hrefValue as the citation uri', async () => {
|
|
385
|
-
const element = createTestComponent({
|
|
386
|
-
...defaultOptions,
|
|
387
|
-
disableCitationAnchoring: true,
|
|
388
|
-
});
|
|
389
|
-
await flushPromises();
|
|
390
|
-
|
|
391
|
-
const link = element.shadowRoot.querySelector(selectors.citationLink);
|
|
392
|
-
expect(link.href).toBe(element.citation.uri);
|
|
393
|
-
});
|
|
394
|
-
});
|
|
395
|
-
|
|
396
|
-
describe('when the citation source is of type Salesforce', () => {
|
|
397
|
-
it('should call the navigation mixin to get the Salesforce record URL', async () => {
|
|
398
|
-
const element = createTestComponent({
|
|
399
|
-
...defaultOptions,
|
|
400
|
-
citation: exampleSalesforceCitation,
|
|
401
|
-
disableCitationAnchoring: true,
|
|
402
|
-
});
|
|
403
|
-
await flushPromises();
|
|
404
|
-
|
|
405
|
-
const link = element.shadowRoot.querySelector(selectors.citationLink);
|
|
406
|
-
const {pageReference} = getGenerateUrlCalledWith();
|
|
407
|
-
|
|
408
|
-
expect(pageReference.attributes.recordId).toBe(
|
|
409
|
-
exampleSalesforceCitation.fields.sfid
|
|
410
|
-
);
|
|
411
|
-
expect(link.href).toBe(`${exampleSalesforceLink}/`);
|
|
412
|
-
});
|
|
413
|
-
|
|
414
|
-
it('should open the citation link inside Salesforce', async () => {
|
|
415
|
-
const element = createTestComponent({
|
|
416
|
-
...defaultOptions,
|
|
417
|
-
citation: exampleSalesforceCitation,
|
|
418
|
-
disableCitationAnchoring: true,
|
|
419
|
-
});
|
|
420
|
-
await flushPromises();
|
|
421
|
-
|
|
422
|
-
const link = element.shadowRoot.querySelector(selectors.citationLink);
|
|
423
|
-
link.click();
|
|
424
|
-
|
|
425
|
-
const {pageReference} = getNavigateCalledWith();
|
|
426
|
-
|
|
427
|
-
expect(pageReference.attributes.recordId).toBe(
|
|
428
|
-
exampleSalesforceCitation.fields.sfid
|
|
429
|
-
);
|
|
430
|
-
});
|
|
431
|
-
|
|
432
|
-
it('should display the salesforce link inside the tooltip url', async () => {
|
|
433
|
-
const element = createTestComponent({
|
|
434
|
-
...defaultOptions,
|
|
435
|
-
citation: exampleSalesforceCitation,
|
|
436
|
-
disableCitationAnchoring: true,
|
|
437
|
-
});
|
|
438
|
-
await flushPromises();
|
|
439
|
-
|
|
440
|
-
const citationTooltipUrl = element.shadowRoot.querySelector(
|
|
441
|
-
selectors.citationTooltipUrl
|
|
442
|
-
);
|
|
443
|
-
expect(citationTooltipUrl).not.toBeNull();
|
|
444
|
-
expect(citationTooltipUrl.textContent).toBe(exampleSalesforceLink);
|
|
445
|
-
});
|
|
446
|
-
|
|
447
|
-
describe('when the result is a knowledge article', () => {
|
|
448
|
-
it('should open the citation link inside Salesforce', async () => {
|
|
449
|
-
const element = createTestComponent({
|
|
450
|
-
...defaultOptions,
|
|
451
|
-
citation: exampleSalesforceKnowledgeArticleCitation,
|
|
452
|
-
disableCitationAnchoring: true,
|
|
453
|
-
});
|
|
454
|
-
await flushPromises();
|
|
455
|
-
|
|
456
|
-
const link = element.shadowRoot.querySelector(selectors.citationLink);
|
|
457
|
-
link.click();
|
|
458
|
-
|
|
459
|
-
const {pageReference} = getNavigateCalledWith();
|
|
460
|
-
|
|
461
|
-
expect(pageReference.attributes.recordId).toBe(
|
|
462
|
-
exampleSalesforceKnowledgeArticleCitation.fields.sfkavid
|
|
463
|
-
);
|
|
464
|
-
expect(link.href).toBe(`${exampleSalesforceLink}/`);
|
|
465
|
-
});
|
|
466
|
-
});
|
|
467
|
-
});
|
|
468
|
-
});
|
|
469
|
-
|
|
470
|
-
describe('when the citation is active', () => {
|
|
471
|
-
it('should apply the active styles to the citation link, title and icon', async () => {
|
|
472
|
-
const element = createTestComponent({
|
|
473
|
-
...defaultOptions,
|
|
474
|
-
citation: exampleCitation,
|
|
475
|
-
isActive: true,
|
|
476
|
-
iconName: testIconName,
|
|
477
|
-
});
|
|
478
|
-
await flushPromises();
|
|
479
|
-
|
|
480
|
-
const citationLink = element.shadowRoot.querySelector(
|
|
481
|
-
selectors.citationLink
|
|
482
|
-
);
|
|
483
|
-
const citationTitle = element.shadowRoot.querySelector(
|
|
484
|
-
selectors.citationTitle
|
|
485
|
-
);
|
|
486
|
-
const citationIcon = element.shadowRoot.querySelector(
|
|
487
|
-
selectors.citationIcon
|
|
488
|
-
);
|
|
489
|
-
|
|
490
|
-
expect(citationLink.classList).toContain(activeCitationLinkClass);
|
|
491
|
-
expect(citationTitle.classList).toContain(activeCitationTitleClass);
|
|
492
|
-
expect(citationIcon.classList).toContain(activeCitationIconClass);
|
|
493
|
-
});
|
|
494
|
-
});
|
|
495
|
-
|
|
496
|
-
describe('when the citation is not active', () => {
|
|
497
|
-
it('should not apply the active styles to the citation link, title and icon', async () => {
|
|
498
|
-
const element = createTestComponent({
|
|
499
|
-
...defaultOptions,
|
|
500
|
-
citation: exampleCitation,
|
|
501
|
-
isActive: false,
|
|
502
|
-
iconName: testIconName,
|
|
503
|
-
});
|
|
504
|
-
await flushPromises();
|
|
505
|
-
|
|
506
|
-
const citationLink = element.shadowRoot.querySelector(
|
|
507
|
-
selectors.citationLink
|
|
508
|
-
);
|
|
509
|
-
const citationTitle = element.shadowRoot.querySelector(
|
|
510
|
-
selectors.citationTitle
|
|
511
|
-
);
|
|
512
|
-
const citationIcon = element.shadowRoot.querySelector(
|
|
513
|
-
selectors.citationIcon
|
|
514
|
-
);
|
|
515
|
-
|
|
516
|
-
expect(citationLink.classList).not.toContain(activeCitationLinkClass);
|
|
517
|
-
expect(citationTitle.classList).not.toContain(activeCitationTitleClass);
|
|
518
|
-
expect(citationIcon.classList).not.toContain(activeCitationIconClass);
|
|
519
|
-
});
|
|
520
|
-
});
|
|
521
|
-
|
|
522
|
-
describe('when an icon name is provided', () => {
|
|
523
|
-
it('should set the icon name on the citation icon', async () => {
|
|
524
|
-
const element = createTestComponent({
|
|
525
|
-
...defaultOptions,
|
|
526
|
-
citation: exampleCitation,
|
|
527
|
-
iconName: testIconName,
|
|
528
|
-
});
|
|
529
|
-
await flushPromises();
|
|
530
|
-
|
|
531
|
-
const citationIcon = element.shadowRoot.querySelector('lightning-icon');
|
|
532
|
-
expect(citationIcon.iconName).toBe(testIconName);
|
|
533
|
-
});
|
|
534
|
-
});
|
|
535
|
-
|
|
536
|
-
describe('when no icon name is provided', () => {
|
|
537
|
-
it('should not display any icon in the citation', async () => {
|
|
538
|
-
const element = createTestComponent({
|
|
539
|
-
...defaultOptions,
|
|
540
|
-
citation: exampleCitation,
|
|
541
|
-
iconName: undefined,
|
|
542
|
-
});
|
|
543
|
-
await flushPromises();
|
|
544
|
-
|
|
545
|
-
const citationIcon = element.shadowRoot.querySelector('lightning-icon');
|
|
546
|
-
expect(citationIcon).toBeNull();
|
|
547
|
-
});
|
|
548
|
-
});
|
|
549
|
-
|
|
550
|
-
describe('citation actions slot', () => {
|
|
551
|
-
it('should render provided actions in the slot', async () => {
|
|
552
|
-
const exampleAction = document.createElement('span');
|
|
553
|
-
exampleAction.textContent = 'Test Action';
|
|
554
|
-
const exampleAssignedElements = [exampleAction];
|
|
555
|
-
|
|
556
|
-
const element = createTestComponent(
|
|
557
|
-
defaultOptions,
|
|
558
|
-
exampleAssignedElements
|
|
559
|
-
);
|
|
560
|
-
await flushPromises();
|
|
561
|
-
|
|
562
|
-
const slot = element.shadowRoot.querySelector(selectors.actionsSlot);
|
|
563
|
-
expect(slot).not.toBeNull();
|
|
564
|
-
|
|
565
|
-
const assignedActions = slot.assignedNodes();
|
|
566
|
-
expect(assignedActions).toHaveLength(1);
|
|
567
|
-
expect(assignedActions[0].textContent).toBe('Test Action');
|
|
568
|
-
});
|
|
569
|
-
|
|
570
|
-
it('should have no assigned actions when none are provided', async () => {
|
|
571
|
-
const element = createTestComponent();
|
|
572
|
-
await flushPromises();
|
|
573
|
-
|
|
574
|
-
const slot = element.shadowRoot.querySelector(selectors.actionsSlot);
|
|
575
|
-
expect(slot).not.toBeNull();
|
|
576
|
-
|
|
577
|
-
const assignedActions = element.querySelectorAll('[slot="actions"]');
|
|
578
|
-
expect(assignedActions).toHaveLength(0);
|
|
579
|
-
});
|
|
580
|
-
});
|
|
581
|
-
});
|