UNPKG

3.88 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('Wildcard', function () {
10 describe('Simple Rules ', function () {
11 it('should have validation a deep level fails', function () {
12 var validator = new Validator({
13 foo: [{
14 bar: [{
15 people: [{
16 name: '',
17 age: 'aa',
18 term: false,
19 isActive: 'not'
20 },
21 {
22 name: '',
23 age: 'aa',
24 term: false,
25 isActive: 'not'
26 }
27 ]
28 },
29 {
30 people: [{
31 name: '',
32 age: 'aa',
33 term: false,
34 isActive: 'not'
35 },
36 {
37 name: '',
38 age: 'aa',
39 term: false,
40 isActive: 'not'
41 }
42 ]
43 }
44 ]
45 }]
46 }, {
47 'foo.*.bar.*.people.*.name': 'required',
48 'foo.*.bar.*.people.*.age': 'numeric',
49 'foo.*.bar.*.people.*.term': 'accepted',
50 'foo.*.bar.*.people.*.isActive': 'boolean',
51 });
52 expect(validator.fails()).to.be.true;
53 expect(validator.passes()).to.be.false;
54 });
55 it('should have validation a deep level passes', function () {
56 var validator = new Validator({
57 foo: [{
58 bar: [{
59 people: [{
60 name: 'Test',
61 age: '100',
62 term: true,
63 isActive: '0'
64 }]
65 }]
66 }]
67 }, {
68 'foo.*.bar.*.people.*.name': 'required',
69 'foo.*.bar.*.people.*.age': 'numeric',
70 'foo.*.bar.*.people.*.term': 'accepted',
71 'foo.*.bar.*.people.*.isActive': 'boolean',
72 });
73 expect(validator.fails()).to.be.false;
74 expect(validator.passes()).to.be.true;
75 });
76 });
77 describe('Rules with dependent of another field', function () {
78 it('should have validation fail with required_* and show customMessage', function () {
79 var validator = new Validator({
80 users: [{
81 name: 'Teste',
82 lastName: '',
83 age: '',
84 requiredAge: 'true',
85 }]
86 }, {
87 'users.*.age': 'required_if:users.*.requiredAge,true',
88 'users.*.lastName': 'required_with:users.*.name',
89 }, {
90 'required_if.users.*.age': 'Required'
91 });
92 expect(validator.fails()).to.be.true;
93 expect(validator.passes()).to.be.false;
94 expect(validator.errors.all()).to.eql({
95 'users.0.age': ['Required'],
96 'users.0.lastName': ['The users.0.lastName field is required when users.0.name is not empty.']
97 })
98 });
99 });
100});
\No newline at end of file