From 2f12f518ef7277366517fd3ddc367f5e76f55202 Mon Sep 17 00:00:00 2001 From: Cilibiu Bogdan Date: Fri, 1 Jun 2018 00:05:46 +0300 Subject: [PATCH] [ADF-3108] Search - facetQueries panel renders when not defined in configuration (#3417) * show facetQueries based on configuration definition * tests * FacetQueries is defined --- .../search-filter.component.html | 2 +- .../search-filter.component.spec.ts | 32 +++++++++++++++++++ .../search-filter/search-filter.component.ts | 4 +++ .../search/search-query-builder.service.ts | 23 +++++++------ 4 files changed, 50 insertions(+), 11 deletions(-) diff --git a/lib/content-services/search/components/search-filter/search-filter.component.html b/lib/content-services/search/components/search-filter/search-filter.component.html index d949d9d007..82d3f566d4 100644 --- a/lib/content-services/search/components/search-filter/search-filter.component.html +++ b/lib/content-services/search/components/search-filter/search-filter.component.html @@ -17,7 +17,7 @@ - + {{ facetQueriesLabel | translate }} diff --git a/lib/content-services/search/components/search-filter/search-filter.component.spec.ts b/lib/content-services/search/components/search-filter/search-filter.component.spec.ts index 4cff4b373b..b10334aa8a 100644 --- a/lib/content-services/search/components/search-filter/search-filter.component.spec.ts +++ b/lib/content-services/search/components/search-filter/search-filter.component.spec.ts @@ -162,6 +162,38 @@ describe('SearchSettingsComponent', () => { expect(queryBuilder.update).toHaveBeenCalled(); }); + it('should allow facetQueries when defined in configuration', () => { + component.queryBuilder.config = { + categories: [], + facetQueries: { + queries: [ + { label: 'q1', query: 'query1' } + ] + } + }; + + expect(component.isFacetQueriesDefined).toBe(true); + }); + + it('should not allow facetQueries when not defined in configuration', () => { + component.queryBuilder.config = { + categories: [] + }; + + expect(component.isFacetQueriesDefined).toBe(false); + }); + + it('should not allow facetQueries when queries are not defined in configuration', () => { + component.queryBuilder.config = { + categories: [], + facetQueries: { + queries: [] + } + }; + + expect(component.isFacetQueriesDefined).toBe(false); + }); + it('should fetch facet queries from response payload', () => { component.responseFacetQueries = new ResponseFacetQueryList(); const queries = [ diff --git a/lib/content-services/search/components/search-filter/search-filter.component.ts b/lib/content-services/search/components/search-filter/search-filter.component.ts index c8bd6e1eca..a7c28ad1c7 100644 --- a/lib/content-services/search/components/search-filter/search-filter.component.ts +++ b/lib/content-services/search/components/search-filter/search-filter.component.ts @@ -71,6 +71,10 @@ export class SearchFilterComponent implements OnInit { } } + get isFacetQueriesDefined() { + return this.queryBuilder.hasFacetQueries; + } + onCategoryExpanded(category: SearchCategory) { category.expanded = true; } diff --git a/lib/content-services/search/search-query-builder.service.ts b/lib/content-services/search/search-query-builder.service.ts index 9fb59cc2ce..aeffa533df 100644 --- a/lib/content-services/search/search-query-builder.service.ts +++ b/lib/content-services/search/search-query-builder.service.ts @@ -159,6 +159,19 @@ export class SearchQueryBuilderService { return []; } + /** + * Check if FacetQueries has been defined + */ + get hasFacetQueries(): boolean { + if (this.config + && this.config.facetQueries + && this.config.facetQueries.queries + && this.config.facetQueries.queries.length > 0) { + return true; + } + return false; + } + private get sort(): RequestSortDefinitionInner[] { return this.sorting.map(def => { return { @@ -217,14 +230,4 @@ export class SearchQueryBuilderService { return null; } - - private get hasFacetQueries(): boolean { - if (this.config - && this.config.facetQueries - && this.config.facetQueries.queries - && this.config.facetQueries.queries.length > 0) { - return true; - } - return false; - } }