UNPKG

1.95 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('sometimes validation pass rules', function() {
10 it('should pass when the property is passed with data', function() {
11 var validator = new Validator({
12 firstname: 'Johnny',
13 lastname: 'Appleseed'
14 }, {
15 firstname: 'required',
16 lastname: 'required|sometimes'
17 });
18 expect(validator.passes()).to.be.true;
19 });
20
21 it('should pass when the property is not passed with data', function() {
22 var validator = new Validator({
23 firstname: 'Johnny'
24 }, {
25 firstname: 'required',
26 lastname: 'required|sometimes'
27 });
28 expect(validator.passes()).to.be.true;
29 });
30
31 it('should be able to register and pass async rule when the property is passed with data', function(done) {
32 Validator.registerAsync('username', function(desiredUsername, ruleValue, attribute, passes) {
33 setTimeout(function() {
34 if (desiredUsername == 'test') {
35 passes();
36 }
37 }, 50);
38 }, ':attribute is an invalid username');
39
40 var validator = new Validator({
41 username: 'test',
42 email: 'test@example.com'
43 }, {
44 username: 'username',
45 email: 'email|sometimes'
46 });
47 validator.passes(done);
48 });
49
50 it('should be able to register and pass async rule when the property is not passed with data', function(done) {
51 Validator.registerAsync('username', function(desiredUsername, ruleValue, attribute, passes) {
52 setTimeout(function() {
53 if (desiredUsername == 'test') {
54 passes();
55 }
56 }, 50);
57 }, ':attribute is an invalid username');
58
59 var validator = new Validator({
60 username: 'test'
61 }, {
62 username: 'username',
63 email: 'email|sometimes'
64 });
65 validator.passes(done);
66 });
67});