UNPKG

1.63 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('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});