konditions
Version:
A simple and customizable JSON-based condition engine in TypeScript (e.g. GreaterThan, StringLike, Every, Some)
66 lines • 2.58 kB
JavaScript
;
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