[AAE-4661] Fix not showing results when filtering by content model properties (#6723)

This commit is contained in:
arditdomi
2021-02-23 16:02:57 +00:00
committed by GitHub
parent c4030684b9
commit 52930dec6d
2 changed files with 17 additions and 7 deletions

View File

@@ -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);

View File

@@ -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);
}
});