@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
package/force-app/main/default/lwc/quanticInsightInterface/__tests__/quanticInsightInterface.test.js
DELETED
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
/* eslint-disable jest/no-conditional-expect */
|
|
2
|
-
/* eslint-disable no-import-assign */
|
|
3
|
-
import QuanticInsightInterface from 'c/quanticInsightInterface';
|
|
4
|
-
import * as mockHeadlessLoader from 'c/quanticHeadlessLoader';
|
|
5
|
-
import {cleanup, buildCreateTestComponent, flushPromises} from 'c/testUtils';
|
|
6
|
-
|
|
7
|
-
jest.mock('c/quanticUtils', () => ({
|
|
8
|
-
generateFacetDependencyConditions: jest.fn(),
|
|
9
|
-
regexEncode: jest.fn(),
|
|
10
|
-
Store: {
|
|
11
|
-
facetTypes: {
|
|
12
|
-
FACETS: 'facets',
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
I18nUtils: {
|
|
16
|
-
format: jest.fn(),
|
|
17
|
-
getLabelNameWithCount: jest.fn(),
|
|
18
|
-
},
|
|
19
|
-
}));
|
|
20
|
-
jest.mock('c/quanticHeadlessLoader');
|
|
21
|
-
jest.mock(
|
|
22
|
-
'@salesforce/apex/InsightController.getHeadlessConfiguration',
|
|
23
|
-
() => {
|
|
24
|
-
return {
|
|
25
|
-
default: () =>
|
|
26
|
-
new Promise((resolve) => {
|
|
27
|
-
resolve(
|
|
28
|
-
JSON.stringify({
|
|
29
|
-
locale: 'en-US',
|
|
30
|
-
timezone: 'America/New_York',
|
|
31
|
-
insightId: 'dummyInsightId',
|
|
32
|
-
})
|
|
33
|
-
);
|
|
34
|
-
}),
|
|
35
|
-
};
|
|
36
|
-
},
|
|
37
|
-
{virtual: true}
|
|
38
|
-
);
|
|
39
|
-
|
|
40
|
-
const initialInsightInterfaceState = {
|
|
41
|
-
values: [],
|
|
42
|
-
enabled: true,
|
|
43
|
-
};
|
|
44
|
-
let insightInterfaceState = initialInsightInterfaceState;
|
|
45
|
-
|
|
46
|
-
let isInitialized = false;
|
|
47
|
-
|
|
48
|
-
const exampleEngine = {
|
|
49
|
-
id: 'example engine id',
|
|
50
|
-
};
|
|
51
|
-
const exampleInsightId = 'example insight id';
|
|
52
|
-
|
|
53
|
-
const defaultOptions = {
|
|
54
|
-
engineId: exampleEngine.id,
|
|
55
|
-
insightId: exampleInsightId,
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
const functionsMocks = {
|
|
59
|
-
buildInsightInterface: jest.fn(() => ({
|
|
60
|
-
state: insightInterfaceState,
|
|
61
|
-
subscribe: functionsMocks.insightInterfaceStateSubscriber,
|
|
62
|
-
})),
|
|
63
|
-
buildInsightEngine: jest.fn(() => ({
|
|
64
|
-
executeFirstSearch: functionsMocks.executeFirstSearch,
|
|
65
|
-
})),
|
|
66
|
-
insightInterfaceStateSubscriber: jest.fn((cb) => {
|
|
67
|
-
cb();
|
|
68
|
-
return functionsMocks.insightInterfaceStateUnsubscriber;
|
|
69
|
-
}),
|
|
70
|
-
executeFirstSearch: jest.fn(() => {}),
|
|
71
|
-
insightInterfaceStateUnsubscriber: jest.fn(),
|
|
72
|
-
eventListener: jest.fn(),
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
const CoveoHeadlessStub = {
|
|
76
|
-
buildInsightEngine: function () {
|
|
77
|
-
return {
|
|
78
|
-
executeFirstSearch: jest.fn(() => {}),
|
|
79
|
-
};
|
|
80
|
-
},
|
|
81
|
-
buildInsightInterface: functionsMocks.buildInsightInterface,
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const createTestComponent = buildCreateTestComponent(
|
|
85
|
-
QuanticInsightInterface,
|
|
86
|
-
'c-quantic-insight-interface',
|
|
87
|
-
defaultOptions
|
|
88
|
-
);
|
|
89
|
-
|
|
90
|
-
function prepareHeadlessState() {
|
|
91
|
-
jest
|
|
92
|
-
.spyOn(mockHeadlessLoader, 'getHeadlessBundle')
|
|
93
|
-
.mockImplementation(() => ({
|
|
94
|
-
buildFacet: functionsMocks.buildFacet,
|
|
95
|
-
}));
|
|
96
|
-
jest.spyOn(mockHeadlessLoader, 'loadDependencies').mockImplementation(
|
|
97
|
-
() =>
|
|
98
|
-
new Promise((resolve) => {
|
|
99
|
-
resolve();
|
|
100
|
-
})
|
|
101
|
-
);
|
|
102
|
-
jest
|
|
103
|
-
.spyOn(mockHeadlessLoader, 'setInitializedCallback')
|
|
104
|
-
.mockImplementation((callback) => {
|
|
105
|
-
callback();
|
|
106
|
-
});
|
|
107
|
-
jest.spyOn(mockHeadlessLoader, 'getHeadlessBindings').mockReturnValue({
|
|
108
|
-
engine: exampleEngine,
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
function mockSuccessfulHeadlessInitialization() {
|
|
113
|
-
// @ts-ignore
|
|
114
|
-
mockHeadlessLoader.initializeWithHeadless = (element, _, initialize) => {
|
|
115
|
-
if (element instanceof QuanticInsightInterface && !isInitialized) {
|
|
116
|
-
isInitialized = true;
|
|
117
|
-
initialize(exampleEngine);
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
describe('c-quantic-insight-interface', () => {
|
|
123
|
-
beforeAll(() => {
|
|
124
|
-
document.addEventListener(
|
|
125
|
-
'quantic__insightinterfaceinitialized',
|
|
126
|
-
functionsMocks.eventListener,
|
|
127
|
-
{once: true}
|
|
128
|
-
);
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
beforeEach(() => {
|
|
132
|
-
// @ts-ignore
|
|
133
|
-
global.CoveoHeadlessInsight = CoveoHeadlessStub;
|
|
134
|
-
mockSuccessfulHeadlessInitialization();
|
|
135
|
-
prepareHeadlessState();
|
|
136
|
-
});
|
|
137
|
-
|
|
138
|
-
afterEach(() => {
|
|
139
|
-
cleanup();
|
|
140
|
-
insightInterfaceState = initialInsightInterfaceState;
|
|
141
|
-
isInitialized = false;
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
describe('when the insight interface is loading', () => {
|
|
145
|
-
beforeEach(() => {
|
|
146
|
-
insightInterfaceState = {
|
|
147
|
-
...initialInsightInterfaceState,
|
|
148
|
-
loading: true,
|
|
149
|
-
config: {},
|
|
150
|
-
};
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
it('should not dispatch the insight interface initialized event', async () => {
|
|
154
|
-
createTestComponent();
|
|
155
|
-
await flushPromises();
|
|
156
|
-
|
|
157
|
-
expect(functionsMocks.eventListener).not.toHaveBeenCalled();
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
describe('when the insight config is null', () => {
|
|
162
|
-
beforeEach(() => {
|
|
163
|
-
insightInterfaceState = {
|
|
164
|
-
...initialInsightInterfaceState,
|
|
165
|
-
loading: false,
|
|
166
|
-
config: null,
|
|
167
|
-
};
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
it('should not dispatch the insight interface initialized event', async () => {
|
|
171
|
-
createTestComponent();
|
|
172
|
-
await flushPromises();
|
|
173
|
-
|
|
174
|
-
expect(functionsMocks.eventListener).not.toHaveBeenCalled();
|
|
175
|
-
});
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
describe('when the insight interface is not loading and the insight config is defined', () => {
|
|
179
|
-
beforeEach(() => {
|
|
180
|
-
insightInterfaceState = {
|
|
181
|
-
...initialInsightInterfaceState,
|
|
182
|
-
loading: false,
|
|
183
|
-
config: {},
|
|
184
|
-
};
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
it('should dispatch the insight interface initialized event', async () => {
|
|
188
|
-
createTestComponent();
|
|
189
|
-
await flushPromises();
|
|
190
|
-
|
|
191
|
-
expect(functionsMocks.eventListener).toHaveBeenCalledTimes(1);
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
});
|
package/force-app/main/default/lwc/quanticInsightSummary/__tests__/quanticInsightSummary.test.js
DELETED
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-import-assign */
|
|
2
|
-
import QuanticInsightSummary from '../quanticInsightSummary';
|
|
3
|
-
import * as mockHeadlessLoader from 'c/quanticHeadlessLoader';
|
|
4
|
-
import {cleanup, flushPromises, buildCreateTestComponent} from 'c/testUtils';
|
|
5
|
-
|
|
6
|
-
const initialSummaryLabel = 'Insights related to this cases';
|
|
7
|
-
|
|
8
|
-
let isInitialized = false;
|
|
9
|
-
|
|
10
|
-
jest.mock('c/quanticHeadlessLoader');
|
|
11
|
-
jest.mock(
|
|
12
|
-
'@salesforce/label/c.quantic_InsightRelatedToThisCase',
|
|
13
|
-
() => ({default: initialSummaryLabel}),
|
|
14
|
-
{
|
|
15
|
-
virtual: true,
|
|
16
|
-
}
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
const initialSearchBoxState = {
|
|
20
|
-
value: '',
|
|
21
|
-
};
|
|
22
|
-
let searchBoxState = initialSearchBoxState;
|
|
23
|
-
|
|
24
|
-
const initialQuerySummaryState = {hasError: false};
|
|
25
|
-
let querySummaryState = initialQuerySummaryState;
|
|
26
|
-
|
|
27
|
-
const exampleEngine = {
|
|
28
|
-
id: 'example engine',
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const defaultOptions = {
|
|
32
|
-
engineId: exampleEngine.id,
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const functionsMocks = {
|
|
36
|
-
buildSearchBox: jest.fn(() => ({
|
|
37
|
-
state: searchBoxState,
|
|
38
|
-
subscribe: functionsMocks.searchBoxStateSubscriber,
|
|
39
|
-
})),
|
|
40
|
-
buildQuerySummary: jest.fn(() => ({
|
|
41
|
-
state: querySummaryState,
|
|
42
|
-
subscribe: functionsMocks.querySummaryStateSubscriber,
|
|
43
|
-
})),
|
|
44
|
-
searchBoxStateSubscriber: jest.fn((cb) => {
|
|
45
|
-
cb();
|
|
46
|
-
return functionsMocks.searchBoxStateUnsubscriber;
|
|
47
|
-
}),
|
|
48
|
-
querySummaryStateSubscriber: jest.fn((cb) => {
|
|
49
|
-
cb();
|
|
50
|
-
return functionsMocks.querySummaryStateUnsubscriber;
|
|
51
|
-
}),
|
|
52
|
-
searchBoxStateUnsubscriber: jest.fn(),
|
|
53
|
-
querySummaryStateUnsubscriber: jest.fn(),
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
const selectors = {
|
|
57
|
-
initializationError: 'c-quantic-component-error',
|
|
58
|
-
initialSummaryMessage: '[data-testid="initial-summary-message"]',
|
|
59
|
-
quanticSummary: 'c-quantic-summary',
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
function prepareHeadlessState() {
|
|
63
|
-
// @ts-ignore
|
|
64
|
-
mockHeadlessLoader.getHeadlessBundle = () => {
|
|
65
|
-
return {
|
|
66
|
-
buildSearchBox: functionsMocks.buildSearchBox,
|
|
67
|
-
buildQuerySummary: functionsMocks.buildQuerySummary,
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function mockSuccessfulHeadlessInitialization() {
|
|
73
|
-
// @ts-ignore
|
|
74
|
-
mockHeadlessLoader.initializeWithHeadless = (element, _, initialize) => {
|
|
75
|
-
if (element instanceof QuanticInsightSummary && !isInitialized) {
|
|
76
|
-
isInitialized = true;
|
|
77
|
-
initialize(exampleEngine);
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
function mockErroneousHeadlessInitialization() {
|
|
83
|
-
// @ts-ignore
|
|
84
|
-
mockHeadlessLoader.initializeWithHeadless = (element) => {
|
|
85
|
-
if (element instanceof QuanticInsightSummary) {
|
|
86
|
-
element.setInitializationError();
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
const createTestComponent = buildCreateTestComponent(
|
|
92
|
-
QuanticInsightSummary,
|
|
93
|
-
'c-quantic-insight-summary',
|
|
94
|
-
{defaultOptions}
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
describe('c-quantic-insight-summary', () => {
|
|
98
|
-
beforeEach(() => {
|
|
99
|
-
mockSuccessfulHeadlessInitialization();
|
|
100
|
-
prepareHeadlessState();
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
afterEach(() => {
|
|
104
|
-
cleanup();
|
|
105
|
-
searchBoxState = initialSearchBoxState;
|
|
106
|
-
querySummaryState = initialQuerySummaryState;
|
|
107
|
-
isInitialized = false;
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
describe('component initialization', () => {
|
|
111
|
-
it('should initialize the search box and query summary headless controllers', async () => {
|
|
112
|
-
createTestComponent();
|
|
113
|
-
await flushPromises();
|
|
114
|
-
|
|
115
|
-
expect(functionsMocks.buildSearchBox).toHaveBeenCalledTimes(1);
|
|
116
|
-
expect(functionsMocks.buildSearchBox).toHaveBeenCalledWith(exampleEngine);
|
|
117
|
-
expect(functionsMocks.buildQuerySummary).toHaveBeenCalledTimes(1);
|
|
118
|
-
expect(functionsMocks.buildQuerySummary).toHaveBeenCalledWith(
|
|
119
|
-
exampleEngine
|
|
120
|
-
);
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
it('should subscribe the search box and query summary state changes', async () => {
|
|
124
|
-
createTestComponent();
|
|
125
|
-
await flushPromises();
|
|
126
|
-
|
|
127
|
-
expect(functionsMocks.searchBoxStateSubscriber).toHaveBeenCalledTimes(1);
|
|
128
|
-
expect(functionsMocks.querySummaryStateSubscriber).toHaveBeenCalledTimes(
|
|
129
|
-
1
|
|
130
|
-
);
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
describe('component disconnection', () => {
|
|
135
|
-
it('should unsubscribe from the search box and query summary state changes', async () => {
|
|
136
|
-
const element = createTestComponent();
|
|
137
|
-
await flushPromises();
|
|
138
|
-
|
|
139
|
-
document.body.removeChild(element);
|
|
140
|
-
|
|
141
|
-
expect(functionsMocks.searchBoxStateUnsubscriber).toHaveBeenCalledTimes(
|
|
142
|
-
1
|
|
143
|
-
);
|
|
144
|
-
expect(
|
|
145
|
-
functionsMocks.querySummaryStateUnsubscriber
|
|
146
|
-
).toHaveBeenCalledTimes(1);
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
describe('when an initialization error occurs', () => {
|
|
151
|
-
beforeEach(() => {
|
|
152
|
-
mockErroneousHeadlessInitialization();
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
it('should display the initialization error component', async () => {
|
|
156
|
-
const element = createTestComponent();
|
|
157
|
-
await flushPromises();
|
|
158
|
-
|
|
159
|
-
const initializationError = element.shadowRoot.querySelector(
|
|
160
|
-
selectors.initializationError
|
|
161
|
-
);
|
|
162
|
-
|
|
163
|
-
expect(initializationError).not.toBeNull();
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
describe('when the searchbox state query value is empty', () => {
|
|
168
|
-
it('should display the default insight summary message', async () => {
|
|
169
|
-
const element = createTestComponent();
|
|
170
|
-
await flushPromises();
|
|
171
|
-
|
|
172
|
-
const initialSummaryMessage = element.shadowRoot.querySelector(
|
|
173
|
-
selectors.initialSummaryMessage
|
|
174
|
-
);
|
|
175
|
-
const quanticQuerySummary = element.shadowRoot.querySelector(
|
|
176
|
-
selectors.quanticSummary
|
|
177
|
-
);
|
|
178
|
-
|
|
179
|
-
expect(initialSummaryMessage).not.toBeNull();
|
|
180
|
-
expect(initialSummaryMessage.textContent).toBe(initialSummaryLabel);
|
|
181
|
-
expect(quanticQuerySummary).toBeNull();
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
describe('when the searchbox state query value is not empty', () => {
|
|
186
|
-
beforeEach(() => {
|
|
187
|
-
searchBoxState = {
|
|
188
|
-
value: 'test',
|
|
189
|
-
};
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
it('should display the quantic summary component', async () => {
|
|
193
|
-
const element = createTestComponent();
|
|
194
|
-
await flushPromises();
|
|
195
|
-
|
|
196
|
-
const initialSummaryMessage = await element.shadowRoot.querySelector(
|
|
197
|
-
selectors.initialSummaryMessage
|
|
198
|
-
);
|
|
199
|
-
const quanticQuerySummary = await element.shadowRoot.querySelector(
|
|
200
|
-
selectors.quanticSummary
|
|
201
|
-
);
|
|
202
|
-
|
|
203
|
-
expect(quanticQuerySummary).not.toBeNull();
|
|
204
|
-
expect(initialSummaryMessage).toBeNull();
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
describe('when there is a query error', () => {
|
|
209
|
-
beforeEach(() => {
|
|
210
|
-
querySummaryState = {
|
|
211
|
-
hasError: true,
|
|
212
|
-
};
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
it('should not display the Insight Summary component', async () => {
|
|
216
|
-
const element = createTestComponent();
|
|
217
|
-
await flushPromises();
|
|
218
|
-
|
|
219
|
-
const title = await element.shadowRoot.querySelector(
|
|
220
|
-
selectors.initialSummaryMessage
|
|
221
|
-
);
|
|
222
|
-
const quanticQuerySummary = await element.shadowRoot.querySelector(
|
|
223
|
-
selectors.quanticSummary
|
|
224
|
-
);
|
|
225
|
-
|
|
226
|
-
expect(quanticQuerySummary).toBeNull();
|
|
227
|
-
expect(title).toBeNull();
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
});
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
// @ts-ignore
|
|
2
|
-
import QuanticModal from 'c/quanticModal';
|
|
3
|
-
import {getFirstFocusableElement} from 'c/quanticUtils';
|
|
4
|
-
import {buildCreateTestComponent, cleanup, flushPromises} from 'c/testUtils';
|
|
5
|
-
|
|
6
|
-
jest.mock('c/quanticUtils', () => {
|
|
7
|
-
return {
|
|
8
|
-
getFirstFocusableElement: jest.fn(),
|
|
9
|
-
getLastFocusableElement: jest.fn(),
|
|
10
|
-
};
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
const createTestComponent = buildCreateTestComponent(
|
|
14
|
-
QuanticModal,
|
|
15
|
-
'c-quantic-modal'
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
const selectors = {
|
|
19
|
-
modal: '.modal',
|
|
20
|
-
modalHeader: '.modal__header',
|
|
21
|
-
modalContent: '.modal__content',
|
|
22
|
-
modalFooter: '.modal__footer',
|
|
23
|
-
renderingError: '.error-message',
|
|
24
|
-
headerSlot: 'slot[name="header"]',
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
describe('c-quantic-modal', () => {
|
|
28
|
-
afterEach(() => {
|
|
29
|
-
cleanup();
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
describe('when using default options', () => {
|
|
33
|
-
it('should not display the modal by default', async () => {
|
|
34
|
-
const element = createTestComponent();
|
|
35
|
-
await flushPromises();
|
|
36
|
-
const modal = element.shadowRoot.querySelector(selectors.modal);
|
|
37
|
-
expect(modal.classList.contains('modal_hidden')).toBe(true);
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
it('should have slide-to-top animation class by default', async () => {
|
|
41
|
-
const element = createTestComponent();
|
|
42
|
-
await flushPromises();
|
|
43
|
-
|
|
44
|
-
const modal = element.shadowRoot.querySelector(selectors.modal);
|
|
45
|
-
expect(modal.classList.contains('hidden-modal_slide-to-top')).toBe(true);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
it('should display the modal when openModal is called', async () => {
|
|
49
|
-
const element = createTestComponent();
|
|
50
|
-
element.openModal();
|
|
51
|
-
await flushPromises();
|
|
52
|
-
|
|
53
|
-
const modal = element.shadowRoot.querySelector(selectors.modal);
|
|
54
|
-
expect(modal.classList.contains('modal_hidden')).toBe(false);
|
|
55
|
-
|
|
56
|
-
expect(
|
|
57
|
-
element.shadowRoot.querySelector(selectors.modalHeader)
|
|
58
|
-
).not.toBeNull();
|
|
59
|
-
expect(
|
|
60
|
-
element.shadowRoot.querySelector(selectors.modalContent)
|
|
61
|
-
).not.toBeNull();
|
|
62
|
-
expect(
|
|
63
|
-
element.shadowRoot.querySelector(selectors.modalFooter)
|
|
64
|
-
).not.toBeNull();
|
|
65
|
-
|
|
66
|
-
expect(modal.classList.contains('full-screen')).toBe(false);
|
|
67
|
-
expect(modal.classList.contains('part-screen')).toBe(true);
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
it('should hide the modal when closeModal is called', async () => {
|
|
71
|
-
const element = createTestComponent();
|
|
72
|
-
element.openModal();
|
|
73
|
-
await flushPromises();
|
|
74
|
-
element.closeModal();
|
|
75
|
-
await flushPromises();
|
|
76
|
-
const modal = element.shadowRoot.querySelector(selectors.modal);
|
|
77
|
-
expect(modal.classList.contains('modal_hidden')).toBe(true);
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
describe('when the modal is opened', () => {
|
|
81
|
-
beforeAll(() => {
|
|
82
|
-
jest.useFakeTimers();
|
|
83
|
-
});
|
|
84
|
-
afterAll(() => {
|
|
85
|
-
jest.useRealTimers();
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
it('should focus on first focusable element when modal opens', async () => {
|
|
89
|
-
const mockFirstFocusableElement = {focus: jest.fn()};
|
|
90
|
-
// @ts-ignore
|
|
91
|
-
getFirstFocusableElement.mockImplementation(
|
|
92
|
-
() => mockFirstFocusableElement
|
|
93
|
-
);
|
|
94
|
-
|
|
95
|
-
const element = createTestComponent();
|
|
96
|
-
|
|
97
|
-
const headerSlot = element.shadowRoot.querySelector(
|
|
98
|
-
selectors.headerSlot
|
|
99
|
-
);
|
|
100
|
-
|
|
101
|
-
const headerSlotSpy = jest
|
|
102
|
-
.spyOn(headerSlot, 'assignedElements')
|
|
103
|
-
.mockImplementation(() => [document.createElement('div')]);
|
|
104
|
-
|
|
105
|
-
element.openModal();
|
|
106
|
-
jest.runAllTimers();
|
|
107
|
-
expect(getFirstFocusableElement).toHaveBeenCalled();
|
|
108
|
-
expect(mockFirstFocusableElement.focus).toHaveBeenCalled();
|
|
109
|
-
|
|
110
|
-
headerSlotSpy.mockRestore();
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
describe('when using slide to left animation', () => {
|
|
116
|
-
it('should have slide-to-left animation class', async () => {
|
|
117
|
-
const element = createTestComponent({animation: 'slideToLeft'});
|
|
118
|
-
await flushPromises();
|
|
119
|
-
|
|
120
|
-
const modal = element.shadowRoot.querySelector(selectors.modal);
|
|
121
|
-
expect(modal.classList.contains('hidden-modal_slide-to-left')).toBe(true);
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
it('should display the modal with slide-to-left animation when opened', async () => {
|
|
125
|
-
const element = createTestComponent({animation: 'slideToLeft'});
|
|
126
|
-
await flushPromises();
|
|
127
|
-
element.openModal();
|
|
128
|
-
await flushPromises();
|
|
129
|
-
|
|
130
|
-
const modal = element.shadowRoot.querySelector(selectors.modal);
|
|
131
|
-
expect(modal.classList.contains('modal_hidden')).toBe(false);
|
|
132
|
-
expect(modal.classList.contains('part-screen')).toBe(true);
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
describe('when fullScreen is set to true', () => {
|
|
137
|
-
it('should apply full-screen class to the modal', async () => {
|
|
138
|
-
const element = createTestComponent({fullScreen: true});
|
|
139
|
-
await flushPromises();
|
|
140
|
-
const modal = element.shadowRoot.querySelector(selectors.modal);
|
|
141
|
-
expect(modal.classList.contains('full-screen')).toBe(true);
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
it('should display the modal in full screen when opened', async () => {
|
|
145
|
-
const element = createTestComponent({fullScreen: true});
|
|
146
|
-
await flushPromises();
|
|
147
|
-
element.openModal();
|
|
148
|
-
await flushPromises();
|
|
149
|
-
const modal = element.shadowRoot.querySelector(selectors.modal);
|
|
150
|
-
expect(modal.classList.contains('modal_hidden')).toBe(false);
|
|
151
|
-
expect(modal.classList.contains('full-screen')).toBe(true);
|
|
152
|
-
});
|
|
153
|
-
});
|
|
154
|
-
|
|
155
|
-
describe('when setting an invalid animation', () => {
|
|
156
|
-
it('should display an error message', async () => {
|
|
157
|
-
const invalidAnimation = 'invalid animation';
|
|
158
|
-
const element = createTestComponent({animation: invalidAnimation});
|
|
159
|
-
await flushPromises();
|
|
160
|
-
|
|
161
|
-
const errorElement = element.shadowRoot.querySelector(
|
|
162
|
-
selectors.renderingError
|
|
163
|
-
);
|
|
164
|
-
expect(errorElement).not.toBeNull();
|
|
165
|
-
expect(errorElement.textContent).toContain(
|
|
166
|
-
`"${invalidAnimation}" is an invalid value for the animation property`
|
|
167
|
-
);
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
describe('when setting an invalid fullscreen value', () => {
|
|
172
|
-
it('should display an error message', async () => {
|
|
173
|
-
const element = createTestComponent({fullScreen: 'patate'});
|
|
174
|
-
await flushPromises();
|
|
175
|
-
|
|
176
|
-
const errorElement = element.shadowRoot.querySelector(
|
|
177
|
-
selectors.renderingError
|
|
178
|
-
);
|
|
179
|
-
expect(errorElement).not.toBeNull();
|
|
180
|
-
expect(errorElement.textContent).toContain(
|
|
181
|
-
`"patate" is an invalid value for the full-screen property`
|
|
182
|
-
);
|
|
183
|
-
});
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
describe('focus management and accessibility', () => {
|
|
187
|
-
it('should set appropriate ARIA attributes', async () => {
|
|
188
|
-
const element = createTestComponent();
|
|
189
|
-
await flushPromises();
|
|
190
|
-
element.openModal();
|
|
191
|
-
await flushPromises();
|
|
192
|
-
|
|
193
|
-
const modalElement = element.shadowRoot.querySelector('[role="dialog"]');
|
|
194
|
-
|
|
195
|
-
expect(modalElement).not.toBeNull();
|
|
196
|
-
expect(modalElement.getAttribute('aria-modal')).toBe('true');
|
|
197
|
-
|
|
198
|
-
const labelledBy = modalElement.getAttribute('aria-labelledby');
|
|
199
|
-
expect(labelledBy).toMatch(/^modal-heading/);
|
|
200
|
-
|
|
201
|
-
const describedBy = modalElement.getAttribute('aria-describedby');
|
|
202
|
-
expect(describedBy).toMatch(/^modal-content/);
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
});
|