thinkjs/test/Lib/Util/valid.js

638 lines
14 KiB
JavaScript

var should = require('should');
var assert = require('assert');
var muk = require('muk');
var path = require('path')
global.APP_PATH = path.normalize(__dirname + '/../../App');
process.execArgv.push('--no-app');
require(path.normalize(__dirname + '/../../../index.js'));
var Valid = thinkRequire('Valid');
describe('Valid', function(){
it('Valid is function', function(){
assert.equal(isFunction(Valid), true);
})
it('Valid required', function(){
var data = {
name: 'welefen',
value: 'www',
valid: 'required'
}
var ret = Valid(data);
assert.equal(isEmpty(ret), true)
})
it('Valid required 1', function(){
var data = {
name: 'welefen',
value: '',
valid: 'required'
}
var ret = Valid(data);
assert.equal(JSON.stringify(ret), '{"welefen":""}')
})
it('Valid required 2', function(){
var data = {
name: 'welefen',
value: '',
valid: 'required',
msg: "required"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'required')
})
it('Valid required 3', function(){
var data = {
name: 'welefen',
value: '',
valid: 'required',
msg: "required {name}"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'required welefen')
})
it('Valid required 4', function(){
var data = {
name: 'welefen',
value: '',
valid: 'required',
msg: "required {name} {value}w"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'required welefen w')
})
it('Valid length', function(){
var data = {
name: 'welefen',
value: '11',
valid: 'length',
length_args: 11,
msg: "length min {value}"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'length min 11')
})
it('Valid length 1', function(){
var data = {
name: 'welefen',
value: '11333',
valid: 'length',
length_args: [1, 3],
msg: "length 1-3"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'length 1-3')
})
it('Valid length 2', function(){
var data = {
name: 'welefen',
value: '22',
valid: 'length',
length_args: [1, 3],
msg: "length 1-3"
}
var ret = Valid(data);
assert.equal(isEmpty(ret), true)
})
it('Valid length 3', function(){
var data = {
name: 'welefen',
value: '22',
valid: 'length',
msg: "length 1-3"
}
var ret = Valid(data);
assert.equal(isEmpty(ret), true)
})
it('Valid length 3', function(){
var data = {
name: 'welefen',
value: undefined,
valid: 'length',
msg: "length 1-3"
}
var ret = Valid(data);
assert.equal(isEmpty(ret), true)
})
it('Valid email', function(){
var data = {
name: 'welefen',
value: 'welefen@gmail.com',
valid: 'email',
msg: "email is not valid"
}
var ret = Valid(data);
assert.equal(isEmpty(ret), true)
})
it('Valid email 1', function(){
var data = {
name: 'welefen',
value: 'welefen@163.com',
valid: 'email',
msg: "email is not valid"
}
var ret = Valid(data);
assert.equal(isEmpty(ret), true)
})
it('Valid email 2', function(){
var data = {
name: 'welefen',
value: 'welefen@163',
valid: 'email',
msg: "email is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'email is not valid')
})
it('Valid email 3', function(){
var data = {
name: 'welefen',
value: 'welefen@163',
valid: 'email',
msg: "email `{value}` is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'email `welefen@163` is not valid')
})
it('Valid time ', function(){
var data = {
name: 'welefen',
value: '1404485778788',
valid: 'time',
msg: "time is not valid"
}
var ret = Valid(data);
assert.equal(isEmpty(ret), true)
})
it('Valid time 1', function(){
var data = {
name: 'welefen',
value: '140448577878',
valid: 'time',
msg: "time is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'time is not valid')
})
it('Valid cnname', function(){
var data = {
name: 'welefen',
value: '...',
valid: 'cnname',
msg: "cnname is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'cnname is not valid')
})
it('Valid cnname', function(){
var data = {
name: 'welefen',
value: '李成银',
valid: 'cnname',
msg: "cnname is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid cnname', function(){
var data = {
name: 'welefen',
value: '李成银a',
valid: 'cnname',
msg: "cnname is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'cnname is not valid')
})
it('Valid idnumber', function(){
var data = {
name: 'welefen',
value: 'werwer',
valid: 'idnumber',
msg: "idnumber is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'idnumber is not valid')
})
it('Valid idnumber', function(){
var data = {
name: 'welefen',
value: '110101199601014212',
valid: 'idnumber',
msg: "idnumber is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid idnumber 15', function(){
var data = {
name: 'welefen',
value: '110101199601014',
valid: 'idnumber',
msg: "idnumber is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid mobile', function(){
var data = {
name: 'welefen',
value: '15811300240',
valid: 'mobile',
msg: "mobile is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid mobile', function(){
var data = {
name: 'welefen',
value: 'sadfas',
valid: 'mobile',
msg: "mobile is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'mobile is not valid')
})
it('Valid zipcode', function(){
var data = {
name: 'welefen',
value: 'sadfas',
valid: 'zipcode',
msg: "zipcode is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'zipcode is not valid')
})
it('Valid zipcode', function(){
var data = {
name: 'welefen',
value: '859711',
valid: 'zipcode',
msg: "zipcode is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid confirm', function(){
var data = {
name: 'welefen',
value: '859711',
valid: 'confirm',
confirm_args: ['859711'],
msg: "confirm is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid confirm', function(){
var data = {
name: 'welefen',
value: '859711',
valid: 'confirm',
confirm_args: ['85971221'],
msg: "confirm is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'confirm is not valid')
})
it('Valid url', function(){
var data = {
name: 'welefen',
value: '859711',
valid: 'url',
msg: "url is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'url is not valid')
})
it('Valid url', function(){
var data = {
name: 'welefen',
value: 'http://www.baidu.com',
valid: 'url',
msg: "url is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid int', function(){
var data = {
name: 'welefen',
value: '123123',
valid: 'int',
msg: "int is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid int', function(){
var data = {
name: 'welefen',
value: 123123,
valid: 'int',
msg: "int is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid int', function(){
var data = {
name: 'welefen',
value: '13W',
valid: 'int',
msg: "int is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'int is not valid')
})
it('Valid int', function(){
var data = {
name: 'welefen',
value: 'WWW',
valid: 'int',
msg: "int is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'int is not valid')
})
it('Valid float', function(){
var data = {
name: 'welefen',
value: '13W',
valid: 'float',
msg: "float is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'float is not valid')
})
it('Valid float', function(){
var data = {
name: 'welefen',
value: '234234',
valid: 'float',
msg: "float is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid range', function(){
var data = {
name: 'welefen',
value: 123,
valid: 'range',
range_args: 10,
msg: "range is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid range', function(){
var data = {
name: 'welefen',
value: 123,
valid: 'range',
range_args: 1220,
msg: "range is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'range is not valid')
})
it('Valid range', function(){
var data = {
name: 'welefen',
value: 2222,
valid: 'range',
range_args: [1220, 3330],
msg: "range is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid range', function(){
var data = {
name: 'welefen',
value: 22202,
valid: 'range',
range_args: [1220, 3330],
msg: "range is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'range is not valid')
})
it('Valid ip4', function(){
var data = {
name: 'welefen',
value: '192.168.1.1333',
valid: 'ip4',
msg: "ip4 is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'ip4 is not valid')
})
it('Valid ip4', function(){
var data = {
name: 'welefen',
value: '192.168.1.133',
valid: 'ip4',
msg: "ip4 is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid ip6', function(){
var data = {
name: 'welefen',
value: '192.168.1.13323dd',
valid: 'ip6',
msg: "ip6 is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'ip6 is not valid')
})
it('Valid ip', function(){
var data = {
name: 'welefen',
value: '192.168.1.133',
valid: 'ip',
msg: "ip is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid date', function(){
var data = {
name: 'welefen',
value: '1986-12-11',
valid: 'date',
msg: "date is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid date', function(){
var data = {
name: 'welefen',
value: '1986-132-11',
valid: 'date',
msg: "date is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'date is not valid')
})
it('Valid in', function(){
var data = {
name: 'welefen',
value: 111,
valid: 'in',
in_args: [[1,2]],
msg: "in is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, 'in is not valid')
})
it('Valid function', function(){
var data = {
name: 'welefen',
value: 111,
valid: function(){
return true;
},
in_args: [[1,2]],
msg: "in is not valid"
}
var ret = Valid(data);
assert.equal(ret.welefen, undefined)
})
it('Valid function', function(){
var data = {
name: 'welefen',
value: 111,
valid: function(){
return 'data is not valid';
}
}
var ret = Valid(data);
assert.equal(ret.welefen, 'data is not valid')
})
it('Valid empty data', function(){
var ret = Valid();
assert.equal(ret, true)
})
it('Valid error type', function(){
var data = {
name: 'welefen',
value: 111,
valid: 'xxxx'
}
try{
var ret = Valid(data);
assert.equal(1, 2);
}catch(e){
assert.equal(e.message, 'xxxx is not valid')
}
})
it('Valid function', function(){
var data = [{
name: 'welefen',
value: 111,
valid: function(){
return 'data is not valid';
}
},{
name: 'suredy',
value: 111,
valid: function(){
return 'data is not valid';
}
}]
var ret = Valid(data);
//console.log(JSON.stringify(ret));
assert.equal(JSON.stringify(ret), '{"welefen":"data is not valid","suredy":"data is not valid"}')
})
it('Valid mix', function(){
var data = [{
name: 'welefen',
value: '',
valid: ['required', 'length'],
msg: 'required'
},{
name: 'suredy',
value: 'w',
valid: ['required', 'length'],
length_args: [2, 10],
msg: 'length is 2-10'
}];
var ret = Valid(data);
//console.log(JSON.stringify(ret));
assert.deepEqual(ret, {"welefen":"required","suredy":"length is 2-10"});
})
it('Valid mix 1', function(){
var data = [{
name: 'welefen',
value: '',
valid: ['required', 'length'],
msg: 'required'
},{
name: 'suredy',
valid: ['required', 'length'],
length_args: [2, 10],
msg: 'length is 2-10'
}];
var ret = Valid(data);
//console.log(JSON.stringify(ret));
assert.deepEqual(ret, {"welefen":"required","suredy":"length is 2-10"});
})
it('Valid mix 2', function(){
var data = [{
name: 'welefen',
value: '',
valid: ['required', 'length'],
msg: 'required'
},{
name: 'suredy',
valid: ['required', 'length'],
length_args: [2, 10],
msg: {
required: 'required',
length: 'length is 2-10'
}
}];
var ret = Valid(data);
//console.log(JSON.stringify(ret));
assert.deepEqual(ret, {"welefen":"required","suredy":"required"});
})
it('Valid mix 3', function(){
var data = [{
name: 'welefen',
value: '',
valid: ['required', 'length'],
msg: 'required'
},{
name: 'suredy',
value: 'welefen',
valid: ['required', 'length'],
length_args: [2, 10],
msg: {
required: 'required',
length: 'length is 2-10'
}
}];
var ret = Valid(data);
//console.log(JSON.stringify(ret));
assert.deepEqual(ret, {"welefen":"required"});
})
})