Skip to content

Commit f37e791

Browse files
authored
fix(grid): apply conditon on condition.logic, not on condition (#15568)
* fix(grid): apply conditon on condition.logic, not on condition * fix(grid): apply conditon on condition.logic, not on condition
1 parent 0557841 commit f37e791

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

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

+10
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,15 @@ describe('Unit testing FilteringStrategy', () => {
5050
expect(res).toBeTruthy();
5151
});
5252
it ('tests `findMatchByExpression` for working with filtering operands with missing condition', () => {
53+
const rec = data[0];
54+
const expressionTree = JSON.parse('{"filteringOperands":[{"fieldName":"Missing","condition":{"name":"notEmpty","isUnary":true,"iconName":"filter_not_empty"},"conditionName":"notEmpty","ignoreCase":true,"searchVal":null,"searchTree":null}],"operator":0,"returnFields":[],"type":1}');
55+
56+
57+
const res = fs.matchRecord(rec, expressionTree);
58+
expect(res).toBeFalsy();
59+
});
60+
61+
it ('no error when condition is missing in the filtering expressions tree', () => {
5362
const rec = data[0];
5463
const expressionTree = new FilteringExpressionsTree(FilteringLogic.Or);
5564
expressionTree.filteringOperands = [
@@ -63,6 +72,7 @@ describe('Unit testing FilteringStrategy', () => {
6372
const res = fs.matchRecord(rec, expressionTree);
6473
expect(res).toBeFalsy();
6574
});
75+
6676
it ('tests `findMatch`', () => {
6777
const rec = data[0];
6878
const res = fs.findMatchByExpression(rec, {

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ export abstract class BaseFilteringStrategy implements IFilteringStrategy {
4040
// protected
4141
public findMatchByExpression(rec: any, expr: IFilteringExpression, isDate?: boolean, isTime?: boolean, grid?: GridType): boolean {
4242
const val = this.getFieldValue(rec, expr.fieldName, isDate, isTime, grid);
43-
return expr.condition?.logic(val, expr.searchVal, expr.ignoreCase);
43+
if (expr.condition?.logic) {
44+
return expr.condition.logic(val, expr.searchVal, expr.ignoreCase);
45+
}
4446
}
4547

4648
// protected

0 commit comments

Comments
 (0)