[MNT-25647] Handle facets label wrapped in quotes (#11866)

* [MNT-25647] Handle facets label wrapped in quotes

* [MNT-25647] CR fix
This commit is contained in:
Michal Kinas
2026-05-12 08:34:35 +02:00
committed by GitHub
parent e5eb90f93b
commit 1860fefd42
3 changed files with 52 additions and 1 deletions
@@ -109,7 +109,10 @@ describe('SearchChipListComponent', () => {
label: 'test',
filterQuery: 'query'
},
field: null
field: {
field: 'test',
label: 'test'
}
}
];
@@ -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',
@@ -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);