test/Rule/int.test.js
const { Rule } = require('../../src');
test('type test not int is false', () => {
const intRule = new Rule({
type: 'int',
}, null);
expect(intRule.test([])).toBe(false);
});
test('type test', () => {
const intRule = new Rule({
type: 'int',
}, null);
expect(intRule.test(2)).toBe(true);
});
test('max is true if < 100', () => {
const intRule = new Rule({
type: 'int',
max: 100,
}, null);
expect(intRule.test(99)).toBe(true);
});
test('max is false if > 100', () => {
const intRule = new Rule({
type: 'int',
max: 100,
}, null);
expect(intRule.test(101)).toBe(false);
});
test('equal returns true if 100', () => {
const intRule = new Rule({
type: 'int',
equal: 100,
}, null);
expect(intRule.test(100)).toBe(true);
});
test('custom rulle should return true', () => {
const intRule = new Rule({
type: 'int',
custom: val => val % 2 === 0,
}, null);
expect(intRule.test(4)).toBe(true);
});
test('custom rulle should return false', () => {
const intRule = new Rule({
type: 'int',
custom: val => val % 2 === 0,
}, null);
expect(intRule.test(3)).toBe(false);
});
test('mixng rulles returns true', () => {
const intRule = new Rule({
type: 'int',
max: 50,
min: 5,
custom: val => val % 2 === 0,
}, null);
expect(intRule.test(6)).toBe(true);
});
test('mixng rulles returns false', () => {
const intRule = new Rule({
type: 'int',
max: 50,
min: 5,
custom: val => val % 2 === 0,
}, null);
expect(intRule.test(1)).toBe(false);
});
test('throws error when test doesn\'t exist', () => {
expect(() => {
const intRule = new Rule({
type: 'int',
test: false,
}, null);
intRule.test(3);
}).toThrow();
});
test('returns true if optional set to true and patram undefined', () => {
const intRule = new Rule({
type: 'int',
optional: true,
}, null);
expect(intRule.test()).toBe(true);
});
test('returns false if optional set to true and patram dont match', () => {
const intRule = new Rule({
type: 'int',
optional: true,
}, null);
expect(intRule.test('hello')).toBe(false);
});
test('returns true if optional set to true and patram match', () => {
const intRule = new Rule({
type: 'int',
optional: true,
}, null);
expect(intRule.test(150)).toBe(true);
});
test('returns true if optional set to false and patram match', () => {
const intRule = new Rule({
type: 'int',
optional: false,
}, null);
expect(intRule.test(150)).toBe(true);
});
test('returns false if optional set to false and patram dont match', () => {
const intRule = new Rule({
type: 'int',
optional: false,
}, null);
expect(intRule.test('150')).toBe(false);
});