diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts index bea949854a..3c90d74ae9 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.spec.ts @@ -243,7 +243,8 @@ describe('ContentNodeSelectorPanelComponent', () => { }); it('should not show the breadcrumb if search was performed as last action', async () => { - component.searchTerm = 'mock-search-term'; + searchQueryBuilderService.userQuery = 'mock-search-term'; + searchQueryBuilderService.update(); triggerSearchResults(fakeResultSetPaging); fixture.detectChanges(); @@ -264,7 +265,8 @@ describe('ContentNodeSelectorPanelComponent', () => { }); it('should show the breadcrumb for the selected node when search results are displayed', async () => { - component.searchTerm = 'mock-search-term'; + searchQueryBuilderService.userQuery = 'mock-search-term'; + searchQueryBuilderService.update(); triggerSearchResults(fakeResultSetPaging); const chosenNode = new Node({ path: { elements: ['one'] } }); @@ -644,7 +646,8 @@ describe('ContentNodeSelectorPanelComponent', () => { })); it('should emit showingSearch event with true while searching', async () => { - component.searchTerm = 'mock-search-term'; + searchQueryBuilderService.userQuery = 'mock-search-term'; + searchQueryBuilderService.update(); spyOn(customResourcesService, 'hasCorrespondingNodeIds').and.returnValue(true); const showingSearchSpy = spyOn(component.showingSearch, 'emit'); @@ -688,7 +691,8 @@ describe('ContentNodeSelectorPanelComponent', () => { }); it('should emit showingResults event with false if search api fails', async () => { - component.searchTerm = 'mock-search-term'; + searchQueryBuilderService.userQuery = 'mock-search-term'; + searchQueryBuilderService.update(); getCorrespondingNodeIdsSpy.and.throwError('Failed'); const showingSearchSpy = spyOn(component.showingSearch, 'emit'); component.queryBuilderService.execute({ query: { query: 'search' } }); @@ -852,18 +856,21 @@ describe('ContentNodeSelectorPanelComponent', () => { fixture.detectChanges(); const documentList = fixture.debugElement.query(By.css('[data-automation-id="content-node-selector-document-list"]')); expect(documentList).not.toBeNull('Document list should be shown'); + expect(component.hasValidQuery).toEqual(true); expect(documentList.componentInstance.currentFolderId).toBeNull(); done(); }, 300); }); it('should not show the result list when results are returned but there is no search term typed', (done) => { - component.searchTerm = ''; + searchQueryBuilderService.userQuery = ''; + searchQueryBuilderService.update(); setTimeout(() => { triggerSearchResults(fakeResultSetPaging); fixture.detectChanges(); + expect(component.hasValidQuery).toEqual(false); expect(component.showingSearchResults).toEqual(false); done(); }, 300); diff --git a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts index bc480fe2f6..18e33ef8df 100644 --- a/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts +++ b/lib/content-services/src/lib/content-node-selector/content-node-selector-panel.component.ts @@ -242,6 +242,7 @@ export class ContentNodeSelectorPanelComponent implements OnInit, OnDestroy { folderIdToShow: string | null = null; breadcrumbFolderTitle: string | null = null; startSiteGuid: string | null = null; + hasValidQuery: boolean = false; @ViewChild(InfinitePaginationComponent, { static: true }) infinitePaginationComponent: InfinitePaginationComponent; @@ -293,9 +294,11 @@ export class ContentNodeSelectorPanelComponent implements OnInit, OnDestroy { .pipe(takeUntil(this.onDestroy$)) .subscribe((queryBody: QueryBody) => { if (queryBody) { + this.hasValidQuery = true; this.prepareDialogForNewSearch(queryBody); this.queryBuilderService.execute(queryBody); } else { + this.hasValidQuery = false; this.resetFolderToShow(); this.clearSearch(); } @@ -303,8 +306,8 @@ export class ContentNodeSelectorPanelComponent implements OnInit, OnDestroy { this.queryBuilderService.executed .pipe(takeUntil(this.onDestroy$)) - .subscribe( (results: NodePaging) => { - if (this.searchTerm) { + .subscribe((results: NodePaging) => { + if (this.hasValidQuery) { this.showSearchResults(results); } });