Skip to content

Commit 0557841

Browse files
authored
Grid validate filtering expressions tree (#15564)
* fix(grid): add test for filtering without condition operator * fix(grid): validate if condition exists before calling its logic function * chore(grid): use better naming for test * fix(grid): call codition.logic only if existing
1 parent 3fb0f11 commit 0557841

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

projects/igniteui-angular/src/lib/data-operations/filtering-strategy.spec.ts

+14
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,20 @@ describe('Unit testing FilteringStrategy', () => {
4949
const res = fs.matchRecord(rec, expressionTree);
5050
expect(res).toBeTruthy();
5151
});
52+
it ('tests `findMatchByExpression` for working with filtering operands with missing condition', () => {
53+
const rec = data[0];
54+
const expressionTree = new FilteringExpressionsTree(FilteringLogic.Or);
55+
expressionTree.filteringOperands = [
56+
{
57+
conditionName: 'contains',
58+
fieldName: 'string',
59+
ignoreCase: false,
60+
searchVal: 'ROW'
61+
}
62+
];
63+
const res = fs.matchRecord(rec, expressionTree);
64+
expect(res).toBeFalsy();
65+
});
5266
it ('tests `findMatch`', () => {
5367
const rec = data[0];
5468
const res = fs.findMatchByExpression(rec, {

projects/igniteui-angular/src/lib/data-operations/filtering-strategy.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,8 @@ export interface IgxFilterItem {
3939
export abstract class BaseFilteringStrategy implements IFilteringStrategy {
4040
// protected
4141
public findMatchByExpression(rec: any, expr: IFilteringExpression, isDate?: boolean, isTime?: boolean, grid?: GridType): boolean {
42-
const cond = expr.condition;
4342
const val = this.getFieldValue(rec, expr.fieldName, isDate, isTime, grid);
44-
return cond.logic(val, expr.searchVal, expr.ignoreCase);
43+
return expr.condition?.logic(val, expr.searchVal, expr.ignoreCase);
4544
}
4645

4746
// protected

0 commit comments

Comments
 (0)