1 | if (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 |
|
9 | describe('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 | });
|