Improve multi word filtering (#5034)
improve multi word search closes #4212 closes #3386
This commit is contained in:
@ -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%',
|
||||
},
|
||||
},
|
||||
},
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user