Skip to content

Commit

Permalink
fix type url
Browse files Browse the repository at this point in the history
  • Loading branch information
yiminghe committed Nov 11, 2015
1 parent fdcd563 commit a0d9567
Show file tree
Hide file tree
Showing 3 changed files with 126 additions and 111 deletions.
15 changes: 7 additions & 8 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "async-validator",
"version": "1.3.3",
"version": "1.3.4",
"description": "validate form asynchronous",
"keywords": [
"validator",
Expand All @@ -25,20 +25,19 @@
"scripts": {
"build": "rc-tools run build",
"gh-pages": "rc-tools run gh-pages",
"start": "node --harmony node_modules/.bin/rc-server",
"start": "rc-server",
"pub": "rc-tools run pub",
"lint": "rc-tools run lint",
"karma": "rc-tools run karma",
"saucelabs": "node --harmony node_modules/.bin/rc-tools run saucelabs",
"browser-test": "node --harmony node_modules/.bin/rc-tools run browser-test",
"browser-test-cover": "node --harmony node_modules/.bin/rc-tools run browser-test-cover"
"saucelabs": "rc-tools run saucelabs",
"browser-test": "rc-tools run browser-test",
"browser-test-cover": "rc-tools run browser-test-cover"
},
"devDependencies": {
"expect.js": "~0.3.1",
"pre-commit": "^1.0.7",
"pre-commit": "1.x",
"rc-server": "3.x",
"rc-tools": "4.x",
"react": "~0.13.3"
"rc-tools": "4.x"
},
"pre-commit": [
"lint"
Expand Down
3 changes: 2 additions & 1 deletion src/rule/type.js
Expand Up @@ -68,7 +68,8 @@ function type(rule, value, source, errors, options) {
required(rule, value, source, errors, options);
return;
}
const custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date'];
const custom = ['integer', 'float', 'array', 'regexp', 'object',
'method', 'email', 'number', 'date', 'url', 'hex'];
const ruleType = rule.type;
if (custom.indexOf(ruleType) > -1) {
if (!types[ruleType](value)) {
Expand Down
219 changes: 117 additions & 102 deletions tests/index.spec.js
Expand Up @@ -9,11 +9,11 @@ describe('async-validator', function () {
type: 'string'
}
}).validate({
v: ''
}, function (errors) {
expect(errors).to.be(null);
done();
})
v: ''
}, function (errors) {
expect(errors).to.be(null);
done();
})
});

it('works for empty string', function (done) {
Expand All @@ -23,12 +23,12 @@ describe('async-validator', function () {
type: 'string'
}
}).validate({
v: ''
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
v: ''
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
});

it('works for undefined string', function (done) {
Expand All @@ -38,12 +38,12 @@ describe('async-validator', function () {
type: 'string'
}
}).validate({
v: undefined
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
v: undefined
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
});

it('works for null string', function (done) {
Expand All @@ -53,12 +53,12 @@ describe('async-validator', function () {
type: 'string'
}
}).validate({
v: null
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
v: null
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
});

it('works for message', function (done) {
Expand All @@ -69,12 +69,12 @@ describe('async-validator', function () {
message: 'haha'
}
}).validate({
v: null
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('haha')
done();
})
v: null
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('haha')
done();
})
});

it('works for none empty', function (done) {
Expand All @@ -85,11 +85,11 @@ describe('async-validator', function () {
message: 'haha'
}
}).validate({
v: ' '
}, function (errors) {
expect(errors).to.be(null);
done();
})
v: ' '
}, function (errors) {
expect(errors).to.be(null);
done();
})
});

it('works for whitespace empty', function (done) {
Expand All @@ -101,12 +101,12 @@ describe('async-validator', function () {
message: 'haha'
}
}).validate({
v: ' '
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('haha')
done();
})
v: ' '
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('haha')
done();
})
});
});

Expand All @@ -117,12 +117,12 @@ describe('async-validator', function () {
type: 'array'
}
}).validate({
v: ''
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is not an array');
done();
})
v: ''
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is not an array');
done();
})
});

it('works for type and required', function (done) {
Expand All @@ -132,12 +132,12 @@ describe('async-validator', function () {
type: 'array'
}
}).validate({
v: ''
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is not an array');
done();
})
v: ''
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is not an array');
done();
})
});


Expand All @@ -147,11 +147,11 @@ describe('async-validator', function () {
type: 'array'
}
}).validate({
v: []
}, function (errors) {
expect(errors).to.be(null);
done();
})
v: []
}, function (errors) {
expect(errors).to.be(null);
done();
})
});

it('works for empty array', function (done) {
Expand All @@ -161,12 +161,12 @@ describe('async-validator', function () {
type: 'array'
}
}).validate({
v: []
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
v: []
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
});

it('works for undefined array', function (done) {
Expand All @@ -176,12 +176,12 @@ describe('async-validator', function () {
type: 'array'
}
}).validate({
v: undefined
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
v: undefined
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
});

it('works for null array', function (done) {
Expand All @@ -191,12 +191,12 @@ describe('async-validator', function () {
type: 'array'
}
}).validate({
v: null
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
v: null
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('v is required')
done();
})
});

it('works for none empty', function (done) {
Expand All @@ -207,11 +207,11 @@ describe('async-validator', function () {
message: 'haha'
}
}).validate({
v: [1]
}, function (errors) {
expect(errors).to.be(null);
done();
})
v: [1]
}, function (errors) {
expect(errors).to.be(null);
done();
})
});
});

Expand All @@ -223,12 +223,12 @@ describe('async-validator', function () {
message: 'haha'
}
}).validate({
// useful for web, input's value defaults to ''
v: ''
}, function (errors) {
expect(errors).to.be(null);
done();
})
// useful for web, input's value defaults to ''
v: ''
}, function (errors) {
expect(errors).to.be(null);
done();
})
});

it('works for non-required null', function (done) {
Expand All @@ -238,11 +238,11 @@ describe('async-validator', function () {
message: 'haha'
}
}).validate({
v: null
}, function (errors) {
expect(errors).to.be(null);
done();
})
v: null
}, function (errors) {
expect(errors).to.be(null);
done();
})
});

it('works for non-required undefined', function (done) {
Expand All @@ -252,11 +252,11 @@ describe('async-validator', function () {
message: 'haha'
}
}).validate({
v: undefined
}, function (errors) {
expect(errors).to.be(null);
done();
})
v: undefined
}, function (errors) {
expect(errors).to.be(null);
done();
})
});

it('works', function (done) {
Expand All @@ -266,12 +266,27 @@ describe('async-validator', function () {
message: 'haha'
}
}).validate({
v: ' '
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('haha');
done();
})
v: ' '
}, function (errors) {
expect(errors.length).to.be(1);
expect(errors[0].message).to.be('haha');
done();
})
});
});

describe('url', function () {
it('works for type url', function (done) {
new Schema({
v: {
type: 'url'
}
}).validate({
v: 'http://www.taobao.com'
}, function (errors) {
expect(errors).to.be(null);
done();
})
});
});
});

0 comments on commit a0d9567

Please sign in to comment.