UNPKG

6.07 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('custom attribute names', function() {
10 it('should allow custom attribute names', function() {
11 var validator = new Validator({
12 name: ''
13 }, {
14 name: 'required'
15 });
16 validator.setAttributeNames({
17 name: 'custom_name'
18 })
19 expect(validator.fails()).to.be.true;
20 expect(validator.errors.first('name')).to.equal('The custom_name field is required.');
21 });
22
23 it('should use custom attribute names for replacements in required_if rule', function() {
24 var validator = new Validator({
25 name: '',
26 req: 'is_required'
27 }, {
28 name: 'required_if:req,is_required'
29 });
30 validator.setAttributeNames({
31 name: 'custom_name',
32 req: 'other_field'
33 })
34 expect(validator.fails()).to.be.true;
35 expect(validator.errors.first('name')).to.equal('The custom_name field is required when other_field is is_required.');
36 });
37
38 it('should use custom attribute names for replacements in required_unless rule', function() {
39 var validator = new Validator({
40 name: '',
41 req: 'not_required'
42 }, {
43 name: 'required_unless:req,is_required'
44 });
45 validator.setAttributeNames({
46 name: 'custom_name',
47 req: 'other_field'
48 })
49 expect(validator.fails()).to.be.true;
50 expect(validator.errors.first('name')).to.equal('The custom_name field is required when other_field is not is_required.');
51 });
52
53 it('should use custom attribute names for replacements in required_with rule', function() {
54 var validator = new Validator({
55 name: '',
56 req: true
57 }, {
58 name: 'required_with:req'
59 });
60 validator.setAttributeNames({
61 name: 'custom_name',
62 req: 'other_field'
63 })
64 expect(validator.fails()).to.be.true;
65 expect(validator.errors.first('name')).to.equal('The custom_name field is required when other_field is not empty.');
66 });
67
68 it('should use custom attribute names for replacements in required_with_all rule', function() {
69 var validator = new Validator({
70 name: '',
71 req1: true,
72 req2: true
73 }, {
74 name: 'required_with_all:req1,req2'
75 });
76 validator.setAttributeNames({
77 name: 'custom_name',
78 req1: 'other_field_1',
79 req2: 'other_field_2'
80 })
81 expect(validator.fails()).to.be.true;
82 expect(validator.errors.first('name')).to.equal('The custom_name field is required when other_field_1, other_field_2 are not empty.');
83 });
84
85 it('should use custom attribute names for replacements in required_without rule', function() {
86 var validator = new Validator({
87 name: '',
88 }, {
89 name: 'required_without:req'
90 });
91 validator.setAttributeNames({
92 name: 'custom_name',
93 req: 'other_field'
94 })
95 expect(validator.fails()).to.be.true;
96 expect(validator.errors.first('name')).to.equal('The custom_name field is required when other_field is empty.');
97 });
98
99 it('should use custom attribute names for replacements in required_without_all rule', function() {
100 var validator = new Validator({
101 name: '',
102 }, {
103 name: 'required_without_all:req1,req2'
104 });
105 validator.setAttributeNames({
106 name: 'custom_name',
107 req1: 'other_field_1',
108 req2: 'other_field_2'
109 })
110 expect(validator.fails()).to.be.true;
111 expect(validator.errors.first('name')).to.equal('The custom_name field is required when other_field_1, other_field_2 are empty.');
112 });
113
114 it('should use custom attribute names for replacements in after rule', function() {
115 var validator = new Validator({
116 date: new Date('2017-01-01'),
117 other: new Date('2017-01-02')
118 }, {
119 date: 'after:other'
120 });
121 validator.setAttributeNames({
122 date: 'custom_name',
123 other: 'other_field'
124 })
125 expect(validator.fails()).to.be.true;
126 expect(validator.errors.first('date')).to.equal('The custom_name must be after other_field.');
127 });
128
129 it('should use custom attribute names for replacements in before rule', function() {
130 var validator = new Validator({
131 date: new Date('2017-01-03'),
132 other: new Date('2017-01-02')
133 }, {
134 date: 'before:other'
135 });
136 validator.setAttributeNames({
137 date: 'custom_name',
138 other: 'other_field'
139 })
140 expect(validator.fails()).to.be.true;
141 expect(validator.errors.first('date')).to.equal('The custom_name must be before other_field.');
142 });
143
144 it('should use custom attribute names for replacements in after_or_equal rule', function() {
145 var validator = new Validator({
146 date: new Date('2017-01-01'),
147 other: new Date('2017-01-02')
148 }, {
149 date: 'after_or_equal:other'
150 });
151 validator.setAttributeNames({
152 date: 'custom_name',
153 other: 'other_field'
154 })
155 expect(validator.fails()).to.be.true;
156 expect(validator.errors.first('date')).to.equal('The custom_name must be equal or after other_field.');
157 });
158
159 it('should use custom attribute names for replacements in before_or_equal rule', function() {
160 var validator = new Validator({
161 date: new Date('2017-01-03'),
162 other: new Date('2017-01-02')
163 }, {
164 date: 'before_or_equal:other'
165 });
166 validator.setAttributeNames({
167 date: 'custom_name',
168 other: 'other_field'
169 })
170 expect(validator.fails()).to.be.true;
171 expect(validator.errors.first('date')).to.equal('The custom_name must be equal or before other_field.');
172 });
173
174 it('should use custom attribute names for replacements in same rule', function() {
175 var validator = new Validator({
176 name: 'name',
177 other: 'other'
178 }, {
179 name: 'same:other'
180 });
181 validator.setAttributeNames({
182 name: 'custom_name',
183 other: 'other_field'
184 })
185 expect(validator.fails()).to.be.true;
186 expect(validator.errors.first('name')).to.equal('The custom_name and other_field fields must match.');
187 });
188});