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('attribute formatter tests', function() {
|
10 | it('should replace _[] with spaces by default', function() {
|
11 | var validator = new Validator({
|
12 | 'all_users[3][first_name]': ''
|
13 | }, {
|
14 | 'all_users[3][first_name]': 'required'
|
15 | });
|
16 | expect(validator.fails()).to.be.true;
|
17 | expect(validator.errors.first('all_users[3][first_name]')).to.equal('The all users 3 first name field is required.');
|
18 | });
|
19 |
|
20 | it('should be able configure global attribute formatter', function() {
|
21 | var originalAttributeFormatter = Validator.prototype.attributeFormatter;
|
22 | Validator.setAttributeFormatter(function(attribute) {
|
23 | return attribute.replace(/_/, ' ');
|
24 | });
|
25 | var validator = new Validator({
|
26 | first_name: ''
|
27 | }, {
|
28 | first_name: 'required'
|
29 | });
|
30 | expect(validator.fails()).to.be.true;
|
31 | expect(validator.errors.first('first_name')).to.equal('The first name field is required.');
|
32 | Validator.setAttributeFormatter(originalAttributeFormatter);
|
33 | });
|
34 |
|
35 | it('should be able configure attribute formatter for particular instance', function() {
|
36 | var validator = new Validator({
|
37 | first_name: ''
|
38 | }, {
|
39 | first_name: 'required'
|
40 | });
|
41 | validator.setAttributeFormatter(function(attribute) {
|
42 | return attribute;
|
43 | });
|
44 | expect(validator.fails()).to.be.true;
|
45 | expect(validator.errors.first('first_name')).to.equal('The first_name field is required.');
|
46 | });
|
47 | });
|