From 1860fefd42b326aaed4549f0cbd0d86448efaa78 Mon Sep 17 00:00:00 2001 From: Michal Kinas <113341662+MichalKinas@users.noreply.github.com> Date: Tue, 12 May 2026 08:34:35 +0200 Subject: [PATCH] [MNT-25647] Handle facets label wrapped in quotes (#11866) * [MNT-25647] Handle facets label wrapped in quotes * [MNT-25647] CR fix --- .../search-chip-list.component.spec.ts | 5 +- .../search-facet-filters.service.spec.ts | 47 +++++++++++++++++++ .../services/search-facet-filters.service.ts | 1 + 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.spec.ts b/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.spec.ts index d8a1417d86..66c67d8f3d 100644 --- a/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.spec.ts +++ b/lib/content-services/src/lib/search/components/search-chip-list/search-chip-list.component.spec.ts @@ -109,7 +109,10 @@ describe('SearchChipListComponent', () => { label: 'test', filterQuery: 'query' }, - field: null + field: { + field: 'test', + label: 'test' + } } ]; diff --git a/lib/content-services/src/lib/search/services/search-facet-filters.service.spec.ts b/lib/content-services/src/lib/search/services/search-facet-filters.service.spec.ts index 67c12c592c..178b697b19 100644 --- a/lib/content-services/src/lib/search/services/search-facet-filters.service.spec.ts +++ b/lib/content-services/src/lib/search/services/search-facet-filters.service.spec.ts @@ -198,6 +198,53 @@ describe('SearchFacetFiltersService', () => { expect(searchFacetFiltersService.responseFacets[1].buckets.length).toEqual(2); }); + it('should parse facets when response labels are wrapped in quotes', () => { + searchFacetFiltersService.responseFacets = null; + + queryBuilder.config = { + id: 'test-config', + categories: [], + facetFields: { + fields: [ + { label: 'test1', field: 'test1', mincount: 0 }, + { label: 'test2 test3', field: 'test2 test3', mincount: 0 }, + { label: 'test4 "" test5', field: 'test4 "" test5', mincount: 0 } + ] + } + }; + + const data = { + list: { + context: { + facets: [ + { + type: 'field', + label: 'test1', + buckets: [{ label: 'test1', metrics: [{ value: { count: 1 } }] }] + }, + { + type: 'field', + label: '"test2 test3"', + buckets: [{ label: 'test2 test3', metrics: [{ value: { count: 1 } }] }] + }, + { + type: 'field', + label: '"test4 "" test5"', + buckets: [{ label: 'test4 "" test5', metrics: [{ value: { count: 1 } }] }] + } + ] + } + } + }; + + searchFacetFiltersService.onDataLoaded(data); + + expect(searchFacetFiltersService.responseFacets.length).toBe(3); + expect(searchFacetFiltersService.responseFacets[0].label).toBe('test1'); + expect(searchFacetFiltersService.responseFacets[1].label).toBe('test2 test3'); + expect(searchFacetFiltersService.responseFacets[2].label).toBe('test4 "" test5'); + }); + it('should filter response facet fields based on search filter config method', () => { queryBuilder.config = { id: 'test-config', diff --git a/lib/content-services/src/lib/search/services/search-facet-filters.service.ts b/lib/content-services/src/lib/search/services/search-facet-filters.service.ts index 04e3ada95a..99a4e51ebd 100644 --- a/lib/content-services/src/lib/search/services/search-facet-filters.service.ts +++ b/lib/content-services/src/lib/search/services/search-facet-filters.service.ts @@ -89,6 +89,7 @@ export class SearchFacetFiltersService { } private parseFacets(context: ResultSetContext) { + context.facets?.forEach((facet) => (facet.label = facet.label ? facet.label.replace(/^"|"$/g, '') : '')); this.parseFacetFields(context); this.parseFacetIntervals(context); this.parseFacetQueries(context);