validify.js
Version:
Flexible validation framework
96 lines (77 loc) • 3.93 kB
JavaScript
/*jshint -W101:start */
var validify = require('../validify');
var chai = require('chai');
var assert = require('chai').assert;
describe('Number Tests', function () {
it('number test', function () {
assert(validify.number(10), 'integer is invalid number');
assert(validify.number(1.0), 'float is invalid number');
assert(validify.number(0xf), 'hex is invalid number');
});
it('integer test', function () {
assert(validify.integer(10), 'integer is invalid number');
assert(validify.integer(1.1) === false, 'float is valid integer');
assert(validify.int(10), 'integer is invalid number for alias int');
assert(validify.int(1.1) === false, 'float is valid integer for alias int');
});
it('float test', function () {
assert(validify.float(1.1), 'float is invalid');
assert(validify.float(10) === false, 'integer is valid float');
});
it('between', function () {
assert(validify.between(2, {min: 1}), '2 is not greater than 1');
assert(validify.between(1, {min: 2}) === false, '1 is greater than 2');
assert(validify.between(1), 'no min or max specified, but failed anyways');
assert(validify.between(1, {min: 1, max: 10}), 'not in range at min');
assert(validify.between(10, {min: 1, max: 10}), 'not in range at max');
assert(validify.between(5, {min: 1, max: 10}), 'not in range in middle');
// with inclusive set to false
assert(validify.between(1, {min: 1, max: 10, inclusive: false}) === false, 'in range at min when !inclusive');
assert(validify.between(10, {min: 1, max: 10, inclusive: false}) === false, 'in range at max when !inclusive');
assert(validify.between(5, {min: 1, max: 10, inclusive: false}), 'in range in middle when !inclusive');
// using alias min/max
assert(validify.min(1, {min: 1}), '1 is not >= 1 for alias min');
assert(validify.min(1, {min: 1, inclusive: false}) === false, '1 is >= 1 with !inclusive for alias min');
assert(validify.max(10, {max: 10}), '10 is not >= 10 for alias max');
assert(validify.max(10, {max: 10, inclusive: false}) === false, '10 is >= 10 with !inclusive for alias max');
});
it('between aliases', function () {
assert(validify.greaterThan(2, {min: 1}), '2 > 1 didn\t valdate using greaterThan method');
assert(validify.greaterThan(1, {min: 1}) === false, '1 > 1 validated using greaterThan method');
assert(validify.greaterThan(10, {min: 10}) === false, '10 > 10 validated using greaterThan method');
assert(validify.greaterThanOrEqualTo(10, {min: 10}), '10 >= 10 didn\'t validate using greaterThan method');
});
it('between validation using constraints', function () {
assert(validify.validate(10, {
// constraints
'*': { // field
between: { // validator
min: 1, // option
max: 20, // option
inclusive: true // option
}
}
}), 'simple value didn\'t pass expected constraints');
});
it('odd', function () {
assert(validify.odd(1), '1 is not odd');
assert(validify.odd(2) === false, '2 is odd');
assert(validify.odd(null) === false, 'null is odd');
assert(validify.odd(undefined) === false, 'undefined is odd');
});
it('even', function () {
assert(validify.even(1) === false, '1 is not even');
assert(validify.even(2), '2 is even');
assert(validify.even(null) === false, 'null is even');
assert(validify.even(undefined) === false, 'undefined is even');
});
it('multipleOf', function () {
assert(validify.multipleOf(4, {factor: 2}), '4 is not a multiple of 2');
assert(validify.multipleOf(4, {factor: 1}), '4 is not a multiple of 1');
});
it('factor', function () {
assert(validify.factor(2, {multiple: 4}), '2 is not a factor of 4');
assert(validify.factor(1, {multiple: 4}), '1 is not a factor of 4');
});
});
/*jshint -W101:send */