node-validator
Version:
A simple, extensible object property validator for node.js. Supports express.js.
65 lines (54 loc) • 2.33 kB
JavaScript
var assert = require('assert');
var should = require('should');
var validator = require('../lib/validator');
function expectFailure(message, childName, childValue) {
message.should.not.be.empty;
return true;
}
function expectSuccess() {
throw new Error('fail');
}
describe('validator.isNumber', function () {
it('should pass an integer',
function () {
validator.isNumber().validate(100, expectSuccess);
validator.isNumber().validate(0, expectSuccess);
validator.isNumber().validate(-100, expectSuccess);
});
it('should pass string if specified',
function () {
validator.isNumber({allowString: true}).validate('123', expectSuccess);
});
it('should pass non-integer numbers',
function () {
validator.isNumber().validate(123.4, expectSuccess);
validator.isNumber().validate(123.0, expectSuccess);
validator.isNumber().validate(0.0, expectSuccess);
validator.isNumber().validate(-123.4, expectSuccess);
});
it('should fail non-numbers',
function () {
should.exist(validator.isNumber().validate('', expectFailure));
should.exist(validator.isNumber().validate('123', expectFailure));
should.exist(validator.isNumber().validate('asd', expectFailure));
should.exist(validator.isNumber().validate(null, expectFailure));
should.exist(validator.isNumber().validate(true, expectFailure));
should.exist(validator.isNumber().validate(function () {}, expectFailure));
});
it('should enforce "min" constraint',
function () {
validator.isNumber({min: 0}).validate(0, expectSuccess);
validator.isNumber({min: 0}).validate(1, expectSuccess);
});
it('should enforce "max" constraint',
function () {
validator.isNumber({max: 10}).validate(10, expectSuccess);
should.exist(validator.isNumber({max: 10}).validate(11, expectFailure));
validator.isNumber({max: 10}).validate(9, expectSuccess);
validator.isNumber({max: 0}).validate(-2, expectSuccess);
should.exist(validator.isNumber({max: 0}).validate(2, expectFailure));
});
it('should enforce "min" constraint for negative numbers', function () {
should.exist(validator.isNumber({min: 0}).validate(-1, expectFailure));
});
});