From 00dea40f86d7bf5932841807d05ec6c73264941e Mon Sep 17 00:00:00 2001 From: meenahoda Date: Thu, 15 Sep 2022 10:39:00 +0100 Subject: [PATCH] refactor: tidy up IsUndefined and extend tests --- lib/operators/is-undefined.js | 18 ++++++++---------- test/data-test-expr-tests.js | 13 +++++++++++++ 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/lib/operators/is-undefined.js b/lib/operators/is-undefined.js index 214c919..2820621 100644 --- a/lib/operators/is-undefined.js +++ b/lib/operators/is-undefined.js @@ -1,15 +1,13 @@ 'use strict' module.exports = function isUndefinedOperator (inputValue, comparisonValue, candidateStateName, cache) { - let nextState - if (comparisonValue === true) { - if (inputValue === undefined) { - nextState = candidateStateName - } - } else if (comparisonValue === false) { - if (inputValue !== undefined) { - nextState = candidateStateName - } + const isUndefined = inputValue === undefined + + if (isUndefined && comparisonValue === true) { + return candidateStateName + } + + if (!isUndefined && comparisonValue !== true) { + return candidateStateName } - return nextState } diff --git a/test/data-test-expr-tests.js b/test/data-test-expr-tests.js index 6469cb7..e5cac25 100644 --- a/test/data-test-expr-tests.js +++ b/test/data-test-expr-tests.js @@ -77,6 +77,19 @@ const tests = { [0, true, 'DefaultState'], [false, true, 'DefaultState'] ], + IsUndefined: [ + [undefined, true, 'NextState'], + ['HELLO_WORLD', false, 'NextState'], + [null, false, 'NextState'], + [0, false, 'NextState'], + [false, false, 'NextState'], + + [undefined, false, 'DefaultState'], + ['HELLO_WORLD', true, 'DefaultState'], + [null, true, 'DefaultState'], + [0, true, 'DefaultState'], + [false, true, 'DefaultState'] + ], IsBoolean: [ ['nope', false, 'NextState'], [true, true, 'NextState'],