UNPKG

konditions

Version:

A simple and customizable JSON-based condition engine in TypeScript (e.g. GreaterThan, StringLike, Every, Some)

66 lines 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const engine_default_1 = require("../engine.default"); const NumberEquals_1 = require("./NumberEquals"); const engine = new engine_default_1.DefaultEngine({ NumberEquals: { resolver: NumberEquals_1.Resolver, validator: NumberEquals_1.Validator, }, }); describe(`Should resolve positively`, () => { const cases = [ [0, 0], [0, -0], [-0, 0], [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY], [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY], [20.2131, 20.2131], [20, 20.0], [20.2131, 20.2131], [-12312.82341342423423423, -12312.82341342423423423], ]; test.each(cases)(`given %p and %p, it should resolve positively`, async (expected, received) => { const resolution = await NumberEquals_1.Resolver({ expected, received }, engine); expect(resolution.passed).toStrictEqual(true); }); }); describe(`Should resolve negatively`, () => { const cases = [ [Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY], [20.2131, 20.213101], [-12312.8, -12312.0], ]; test.each(cases)(`given %p and %p, it should return not pass`, async (expected, received) => { const resolution = await NumberEquals_1.Resolver({ expected, received }, engine); expect(resolution.passed).toStrictEqual(false); }); }); describe(`Should fail validation`, () => { const cases = [ [`123`, 23], [false, true], [{}, 0], ]; test.each(cases)(`given %p and %p, it should return %p`, async (expected, received) => { const resolution = await NumberEquals_1.Validator({ expected, received }, engine); expect(resolution.passed).toStrictEqual(false); expect(resolution.error).toBeDefined(); expect(resolution.error.type).toEqual(`ValidationError`); expect(resolution.error.reasons.length).toBeGreaterThan(0); }); const casesOfArgCount = [ null, {}, { expected: 1 }, { expected: 1, received: 1, c: `bah` }, ]; test.each(casesOfArgCount)(`given %p`, async (props) => { const resolution = await NumberEquals_1.Validator(props, engine); expect(resolution.passed).toStrictEqual(false); expect(resolution.error).toBeDefined(); expect(resolution.error.type).toEqual(`ValidationError`); expect(resolution.error.reasons.length).toBeGreaterThan(0); }); }); //# sourceMappingURL=NumberEquals.test.js.map