Improve multi word filtering (#5034)

improve multi word search

closes #4212 
closes #3386
This commit is contained in:
martmull
2024-04-18 15:46:59 +02:00
committed by GitHub
parent 88c14b7e52
commit 1c1a055c94
54 changed files with 212 additions and 146 deletions

View File

@ -0,0 +1,64 @@
import { generateILikeFiltersForCompositeFields } from '~/utils/array/generateILikeFiltersForCompositeFields';
describe('generateILikeFiltersForCompositeFields', () => {
it('should format composite filters for simple filter string', () => {
expect(
generateILikeFiltersForCompositeFields('john', 'baseField', [
'subField1',
'subField2',
]),
).toEqual([
{
baseField: {
subField1: {
ilike: '%john%',
},
},
},
{
baseField: {
subField2: {
ilike: '%john%',
},
},
},
]);
});
it('should format composite filters for complex filter string', () => {
expect(
generateILikeFiltersForCompositeFields('john doe', 'name', [
'firstName',
'lastName',
]),
).toEqual([
{
name: {
firstName: {
ilike: '%john%',
},
},
},
{
name: {
lastName: {
ilike: '%john%',
},
},
},
{
name: {
firstName: {
ilike: '%doe%',
},
},
},
{
name: {
lastName: {
ilike: '%doe%',
},
},
},
]);
});
});