From 18cb9822fe4f1a745158ae532872c9db4f3f6e29 Mon Sep 17 00:00:00 2001 From: "Hongyang Du (hond)" Date: Tue, 28 Apr 2020 14:45:18 +0800 Subject: [PATCH] [PORT][Expression]fix null check in expression (#2118) --- .../src/expressionFunctions.ts | 4 ++-- .../tests/expressionParser.test.js | 15 +++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/libraries/adaptive-expressions/src/expressionFunctions.ts b/libraries/adaptive-expressions/src/expressionFunctions.ts index 044517f1fb..8166549a7e 100644 --- a/libraries/adaptive-expressions/src/expressionFunctions.ts +++ b/libraries/adaptive-expressions/src/expressionFunctions.ts @@ -1838,8 +1838,8 @@ export class ExpressionFunctions { return false; } - if (args[0] === undefined || args[0] === null) { - return args[1] === undefined || args[1] === null; + if (args[0] === undefined || args[0] === null || args[1] === undefined || args[1] === null) { + return (args[0] === undefined || args[0] === null) && (args[1] === undefined || args[1] === null); } if (Array.isArray(args[0]) && args[0].length === 0 && Array.isArray(args[1]) && args[1].length === 0) { diff --git a/libraries/adaptive-expressions/tests/expressionParser.test.js b/libraries/adaptive-expressions/tests/expressionParser.test.js index d6fc3bb2e7..7e36ad5d85 100644 --- a/libraries/adaptive-expressions/tests/expressionParser.test.js +++ b/libraries/adaptive-expressions/tests/expressionParser.test.js @@ -317,7 +317,18 @@ const dataSource = [ ['emptyList == { }', false], ['emptyObject == { }', true], ['emptyObject == [ ]', false], - + ['{} == undefined', false], + ['{} != undefined', true], + ['[] == undefined', false], + ['{} != undefined', true], + ['{} == null', false], + ['{} != null', true], + ['[] == null', false], + ['{} != null', true], + ['{} == {}', true], + ['[] == []', true], + ['{} != []', true], + ['[] == {}', false], // Conversion functions tests ['float(\'10.333\')', 10.333], @@ -632,7 +643,7 @@ const dataSource = [ ]; const scope = { - "$index": "index", + '$index': 'index', alist: [ { Name: 'item1'