pricing4react
Version:
A library of components that ease the integration of feature toggling driven by pricing plans into your React application's UI.
244 lines (243 loc) • 11.8 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
exports.__esModule = true;
var ArithmeticFunction_1 = require("./model/ArithmeticFunction");
var BinaryLogicalPredicate_1 = require("./model/BinaryLogicalPredicate");
var BinaryRelationalPredicate_1 = require("./model/BinaryRelationalPredicate");
var Constant_1 = __importDefault(require("./model/Constant"));
// Test suite for BinaryLogicalPredicate
describe("BinaryLogicalPredicate", function () {
describe("AND", function () {
it("should return true if both arguments are true", function () {
var a = (0, Constant_1["default"])(true);
var b = (0, Constant_1["default"])(true);
var c = (0, BinaryLogicalPredicate_1.and)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("should return false if one argument is false", function () {
var a = (0, Constant_1["default"])(true);
var b = (0, Constant_1["default"])(false);
var c = (0, BinaryLogicalPredicate_1.and)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
it("should return false if both arguments are false", function () {
var a = (0, Constant_1["default"])(false);
var b = (0, Constant_1["default"])(false);
var c = (0, BinaryLogicalPredicate_1.and)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
});
describe("OR", function () {
it("should return true if one argument is true", function () {
var a = (0, Constant_1["default"])(true);
var b = (0, Constant_1["default"])(false);
var c = (0, BinaryLogicalPredicate_1.or)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
});
describe("IFF", function () {
it("should return true if both arguments are true", function () {
var a = (0, Constant_1["default"])(true);
var b = (0, Constant_1["default"])(true);
var c = (0, BinaryLogicalPredicate_1.iff)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
});
describe("IMPLIES", function () {
it("should return true if left argument is false", function () {
var a = (0, Constant_1["default"])(false);
var b = (0, Constant_1["default"])(true);
var c = (0, BinaryLogicalPredicate_1.iff)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
});
});
// Test suite for BinaryRelationalPredicate
describe("BinaryRelationalPredicate", function () {
describe("LT", function () {
it("should return true if left argument is less than right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(2);
var c = (0, BinaryRelationalPredicate_1.lt)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("should return false if left argument is greater than right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(1);
var c = (0, BinaryRelationalPredicate_1.lt)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
it("should return false if left argument is equal to right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(1);
var c = (0, BinaryRelationalPredicate_1.lt)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
});
describe("LTE", function () {
it("should return true if left argument is less than or equal to right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(2);
var c = (0, BinaryRelationalPredicate_1.lte)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("should return true if left argument is equal to right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(2);
var c = (0, BinaryRelationalPredicate_1.lte)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("should return false if left argument is greater than right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(1);
var c = (0, BinaryRelationalPredicate_1.lte)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
});
describe("GT", function () {
it("should return true if left argument is greater than right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(1);
var c = (0, BinaryRelationalPredicate_1.gt)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("should return false if left argument is less than or equal to right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(2);
var c = (0, BinaryRelationalPredicate_1.gt)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
it("should return false if left argument is equal to right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(2);
var c = (0, BinaryRelationalPredicate_1.gt)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
});
describe("GTE", function () {
it("should return true if left argument is greater than or equal to right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(1);
var c = (0, BinaryRelationalPredicate_1.gte)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("should return true if left argument is equal to right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(2);
var c = (0, BinaryRelationalPredicate_1.gte)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("should return false if left argument is less than right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(2);
var c = (0, BinaryRelationalPredicate_1.gte)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
});
describe("EQ", function () {
it("NUMBER COMPARISON. should return true if left argument is equal to right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(1);
var c = (0, BinaryRelationalPredicate_1.eq)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("NUMBER COMPARISON. should return false if left argument is not equal to right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(2);
var c = (0, BinaryRelationalPredicate_1.eq)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
// With strings
it("STRING COMPARISON. should return true if left argument is equal to right argument", function () {
var a = (0, Constant_1["default"])("a");
var b = (0, Constant_1["default"])("a");
var c = (0, BinaryRelationalPredicate_1.eq)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("STRING COMPARISON. should return false if left argument is not equal to right argument", function () {
var a = (0, Constant_1["default"])("a");
var b = (0, Constant_1["default"])("b");
var c = (0, BinaryRelationalPredicate_1.eq)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
});
describe("NOTEQ", function () {
it("NUMBER COMPARISON. should return true if left argument is not equal to right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(2);
var c = (0, BinaryRelationalPredicate_1.neq)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("NUMBER COMPARISON. should return false if left argument is equal to right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(1);
var c = (0, BinaryRelationalPredicate_1.neq)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
// With strings
it("STRING COMPARISON. should return true if left argument is not equal to right argument", function () {
var a = (0, Constant_1["default"])("a");
var b = (0, Constant_1["default"])("b");
var c = (0, BinaryRelationalPredicate_1.neq)(a, b);
expect(c.eval()).resolves.toEqual(true);
});
it("STRING COMPARISON. should return false if left argument is equal to right argument", function () {
var a = (0, Constant_1["default"])("a");
var b = (0, Constant_1["default"])("a");
var c = (0, BinaryRelationalPredicate_1.neq)(a, b);
expect(c.eval()).resolves.toEqual(false);
});
});
});
describe("ArithmeticFunction", function () {
describe("PLUS", function () {
it("should return the sum of left and right argument", function () {
var a = (0, Constant_1["default"])(1);
var b = (0, Constant_1["default"])(2);
var c = (0, ArithmeticFunction_1.plus)(a, b);
expect(c.eval()).resolves.toEqual(3);
});
});
describe("MINUS", function () {
it("should return the difference of left and right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(1);
var c = (0, ArithmeticFunction_1.minus)(a, b);
expect(c.eval()).resolves.toEqual(1);
});
});
describe("MULTIPLY", function () {
it("should return the product of left and right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(3);
var c = (0, ArithmeticFunction_1.mul)(a, b);
expect(c.eval()).resolves.toEqual(6);
});
});
describe("DIVIDE", function () {
it("should return the quotient of left and right argument", function () {
var a = (0, Constant_1["default"])(6);
var b = (0, Constant_1["default"])(3);
var c = (0, ArithmeticFunction_1.div)(a, b);
expect(c.eval()).resolves.toEqual(2);
});
});
describe("MODULO", function () {
it("should return the remainder of left and right argument", function () {
var a = (0, Constant_1["default"])(7);
var b = (0, Constant_1["default"])(3);
var c = (0, ArithmeticFunction_1.mod)(a, b);
expect(c.eval()).resolves.toEqual(1);
});
});
describe("POWER", function () {
it("should return the power of left and right argument", function () {
var a = (0, Constant_1["default"])(2);
var b = (0, Constant_1["default"])(3);
var c = (0, ArithmeticFunction_1.pow)(a, b);
expect(c.eval()).resolves.toEqual(8);
});
});
});