diff --git a/projects/aca-content/src/lib/utils/aca-search-utils.spec.ts b/projects/aca-content/src/lib/utils/aca-search-utils.spec.ts index f1c38f6ee..4503d54c6 100644 --- a/projects/aca-content/src/lib/utils/aca-search-utils.spec.ts +++ b/projects/aca-content/src/lib/utils/aca-search-utils.spec.ts @@ -149,6 +149,21 @@ describe('SearchUtils', () => { const query = { userQuery: '"test"' }; expect(extractSearchedWordFromEncodedQuery(encodeQuery(query))).toBe('test'); }); + + it('should properly extract search term when userQuery does not contain quotes', () => { + const query = { userQuery: 'TEXT:abcdef' }; + expect(extractSearchedWordFromEncodedQuery(encodeQuery(query))).toBe('TEXT:abcdef'); + }); + + it('should properly extract search term when userQuery contains field without quotes', () => { + const query = { userQuery: 'cm:name:searchterm' }; + expect(extractSearchedWordFromEncodedQuery(encodeQuery(query))).toBe('cm:name:searchterm'); + }); + + it('should handle mixed conditions with and without quotes', () => { + const query = { userQuery: 'cm:name:"quoted term" AND TEXT:unquoted' }; + expect(extractSearchedWordFromEncodedQuery(encodeQuery(query))).toBe('quoted term TEXT:unquoted'); + }); }); describe('extractFiltersFromEncodedQuery', () => { diff --git a/projects/aca-content/src/lib/utils/aca-search-utils.ts b/projects/aca-content/src/lib/utils/aca-search-utils.ts index bad9ad4f8..c3e2f15fc 100644 --- a/projects/aca-content/src/lib/utils/aca-search-utils.ts +++ b/projects/aca-content/src/lib/utils/aca-search-utils.ts @@ -117,7 +117,7 @@ export function extractSearchedWordFromEncodedQuery(encodedQuery: string): strin ? userQuery .split('AND') .map((searchCondition) => { - const searchTerm = searchCondition.split('"')[1]; + const searchTerm = searchCondition.includes('"') ? searchCondition.split('"')[1] : searchCondition.trim(); return searchTerm?.endsWith('*') && searchTerm !== '*' ? searchTerm.slice(0, -1) : searchTerm; }) .join(' ')