@coorpacademy/progression-engine
Version:
88 lines (87 loc) • 3.97 kB
JavaScript
;
var _ava = _interopRequireDefault(require("ava"));
var _conditionOperators = _interopRequireDefault(require("../condition-operators"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const testCondition = (t, [opNormal, opNegative]) => (expectedResult, expectedValues, value) => {
t.is((0, _conditionOperators.default)(opNormal, expectedValues, value), expectedResult);
t.is((0, _conditionOperators.default)(opNegative, expectedValues, value), !expectedResult);
};
(0, _ava.default)('should return true for IN (false for NOT_IN) condition if value is among the expected values', t => {
const check = testCondition(t, ['IN', 'NOT_IN']);
check(true, [1, 2, 3], 1);
check(true, [1, 2, 3], 2);
check(true, [1, 2, 3], 3);
check(true, ['foo', 'bar', 'baz'], 'bar');
check(true, [['foo', 'bar']], ['foo', 'bar']);
});
(0, _ava.default)('should return false for IN (true for NOT_IN) condition if value is not among the expected values', t => {
const check = testCondition(t, ['IN', 'NOT_IN']);
check(false, [1, 2, 3], 4);
check(false, [1, 2, 3], -1);
check(false, [1, 2, 3], 'no');
check(false, ['foo', 'bar', 'baz'], 'no');
check(false, ['foo', 'bar', 'baz'], 1);
check(false, [['foo', 'bar']], ['foo', 'baz']);
check(false, [['foo', 'bar']], ['bar', 'foo']);
});
(0, _ava.default)('should return true for EQUALS (false for NOT_EQUALS) condition if value is among the first expected value', t => {
const check = testCondition(t, ['EQUALS', 'NOT_EQUALS']);
check(true, [1], 1);
check(true, [1, 2, 3], 1);
check(true, ['foo'], 'foo');
check(true, [['foo', 'bar']], ['foo', 'bar']);
});
(0, _ava.default)('should return false for EQUALS (true for NOT_EQUALS) condition if value is not the first expected value', t => {
const check = testCondition(t, ['EQUALS', 'NOT_EQUALS']);
check(false, [1], 4);
check(false, [1, 4], 4);
check(false, [1], -1);
check(false, [1], 'no');
check(false, ['foo', 'bar', 'baz'], 'bar');
check(false, ['foo', 'bar', 'baz'], 1);
check(false, [['foo', 'bar']], ['foo', 'baz']);
check(false, [['foo', 'bar']], ['bar', 'foo']);
});
(0, _ava.default)('should return true for BETWEEN (false for NOT_BETWEEN) condition if value is between the two first elements (included)', t => {
const check = testCondition(t, ['BETWEEN', 'NOT_BETWEEN']);
check(true, [5, 10], 8);
check(true, [5, 10], 5);
check(true, [5, 10], 10);
check(true, [10, 5], 8);
check(true, [-100, 0], -8);
});
(0, _ava.default)('should return "false" for BETWEEN (false for NOT_BETWEEN) condition if value is not between the two first elements', t => {
const check = testCondition(t, ['BETWEEN', 'NOT_BETWEEN']);
check(false, [5, 10], 4);
check(false, [5, 10], 10.001);
check(false, [10, 5], 3);
check(false, [10, 5], 13);
check(false, [-100, 0], 8);
});
(0, _ava.default)('should return true for LT (false for GTE) condition if value is less than expected value', t => {
const check = testCondition(t, ['LT', 'GTE']);
check(true, [1], 0);
check(true, [1], -10);
check(true, [10], -10);
});
(0, _ava.default)('should return false for LT (true for GTE) condition if value is greater or equal than expected value', t => {
const check = testCondition(t, ['LT', 'GTE']);
check(false, [1], 10);
check(false, [1], 1);
check(false, [-5], 0);
check(false, [-10], 10);
});
(0, _ava.default)('should return true for GT (false for LTE) condition if value is greater than expected value', t => {
const check = testCondition(t, ['GT', 'LTE']);
check(true, [1], 10);
check(true, [-5], 0);
check(true, [-10], 10);
});
(0, _ava.default)('should return false for GT (true for GTE) condition if value is less or equal than expected value', t => {
const check = testCondition(t, ['GT', 'LTE']);
check(false, [1], 0);
check(false, [1], -10);
check(false, [1], 1);
check(false, [10], -10);
});
//# sourceMappingURL=condition-operators.js.map