UNPKG

3.23 kBJavaScriptView Raw
1if (typeof require !== 'undefined') {
2 var Validator = require('../src/validator.js');
3 var expect = require('chai').expect;
4} else {
5 var Validator = window.Validator;
6 var expect = window.chai.expect;
7}
8
9describe('between rule', function() {
10 it('should pass between rule when 25 and between 18 - 30', function() {
11 var validator = new Validator({
12 num: 25
13 }, {
14 num: 'between:18,30'
15 });
16 expect(validator.passes()).to.be.true;
17 expect(validator.fails()).to.be.false;
18 });
19
20 it('should pass between rule when 25 and between 25 - 30', function() {
21 var validator = new Validator({
22 num: 25
23 }, {
24 num: 'between:25,30'
25 });
26 expect(validator.passes()).to.be.true;
27 expect(validator.fails()).to.be.false;
28 });
29
30 it('should fail on string 25 when between is set to 25 - 30', function() {
31 var validator = new Validator({
32 num: '25'
33 }, {
34 num: 'between:25,30'
35 });
36 expect(validator.passes()).to.be.false;
37 expect(validator.fails()).to.be.true;
38 });
39
40 it('should pass on string 25 when between is set to 2 - 3', function() {
41 var validator = new Validator({
42 num: '25'
43 }, {
44 num: 'between:2,3'
45 });
46 expect(validator.passes()).to.be.true;
47 expect(validator.fails()).to.be.false;
48 });
49
50 it('should threat string 25 as numeric when other numeric rules are set and pass when between is set to 25 - 30', function() {
51 var validator = new Validator({
52 num: '25'
53 }, {
54 num: 'between:25,30|numeric'
55 });
56 expect(validator.passes()).to.be.true;
57 expect(validator.fails()).to.be.false;
58 });
59
60 it('should support floats', function() {
61 var validator = new Validator({
62 num1: 25.12,
63 num2: 0.03
64 }, {
65 num1: 'between:25.11,25.13',
66 num2: 'between:0.02,0.04'
67 });
68 expect(validator.passes()).to.be.true;
69 expect(validator.fails()).to.be.false;
70 });
71
72 it('should support unsigned', function() {
73 var validator = new Validator({
74 num: -3
75 }, {
76 num: 'between:-4,-2'
77 });
78 expect(validator.passes()).to.be.true;
79 expect(validator.fails()).to.be.false;
80 });
81
82 it('should support array', function() {
83 var validator = new Validator({
84 array2: ['a', 'b']
85 }, {
86 array2: 'required|between:1,2'
87 });
88 expect(validator.passes()).to.be.true;
89 expect(validator.fails()).to.be.false;
90 });
91
92 it('should generate proper error message', function() {
93 var validator = new Validator({
94 num: '14'
95 }, {
96 num: 'between:16,23'
97 });
98 expect(validator.fails()).to.be.true;
99 expect(validator.errors.first('num')).to.equal('The num field must be between 16 and 23.');
100 });
101
102 it('should fail when passed invalid values', function() {
103 var validator = new Validator({
104 numNull: null,
105 numUndefined: undefined,
106 numEmpty: '',
107 numOutOfBounds: 24,
108 numOutOfBoundsUnsigned: -34
109 }, {
110 numNull: 'between:25,30',
111 numUndefined: 'between:25,30',
112 numEmpty: 'between:25,30',
113 numOutOfBounds: 'between:25,30',
114 numOutOfBoundsUnsigned: 'between:-35,150',
115 });
116 expect(validator.fails()).to.be.true;
117 expect(validator.passes()).to.be.false;
118 });
119});