You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
308 lines
6.1 KiB
308 lines
6.1 KiB
3 years ago
|
/* global require, chai, describe, before, it */
|
||
|
/* global window */
|
||
|
var expect = chai.expect
|
||
|
var Mock, Random, $, _
|
||
|
|
||
|
describe('Mock.valid', function() {
|
||
|
before(function(done) {
|
||
|
require(['mock', 'underscore', 'jquery'], function() {
|
||
|
Mock = arguments[0]
|
||
|
window.Random = Random = Mock.Random
|
||
|
_ = arguments[1]
|
||
|
$ = arguments[2]
|
||
|
expect(Mock).to.not.equal(undefined)
|
||
|
expect(_).to.not.equal(undefined)
|
||
|
expect($).to.not.equal(undefined)
|
||
|
done()
|
||
|
})
|
||
|
})
|
||
|
|
||
|
function stringify(json) {
|
||
|
return JSON.stringify(json /*, null, 4*/ )
|
||
|
}
|
||
|
|
||
|
function title(tpl, data, result, test) {
|
||
|
test.title = stringify(tpl) + ' VS ' + stringify(data) + '\n\tresult: ' + stringify(result)
|
||
|
|
||
|
// if (result.length) test.title += '\n\tresult: '
|
||
|
// for (var i = 0; i < result.length; i++) {
|
||
|
// test.title += '\n\t' + result[i].message // stringify(result)
|
||
|
// }
|
||
|
}
|
||
|
|
||
|
function doit(tpl, data, len) {
|
||
|
it('', function() {
|
||
|
var result = Mock.valid(tpl, data)
|
||
|
title(tpl, data, result, this.test)
|
||
|
expect(result).to.be.an('array').with.length(len)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
describe('Name', function() {
|
||
|
doit({
|
||
|
name: 1
|
||
|
}, {
|
||
|
name: 1
|
||
|
}, 0)
|
||
|
|
||
|
doit({
|
||
|
name1: 1
|
||
|
}, {
|
||
|
name2: 1
|
||
|
}, 1)
|
||
|
})
|
||
|
describe('Value - Number', function() {
|
||
|
doit({
|
||
|
name: 1
|
||
|
}, {
|
||
|
name: 1
|
||
|
}, 0)
|
||
|
|
||
|
doit({
|
||
|
name: 1
|
||
|
}, {
|
||
|
name: 2
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
name: 1.1
|
||
|
}, {
|
||
|
name: 2.2
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
'name|1-10': 1
|
||
|
}, {
|
||
|
name: 5
|
||
|
}, 0)
|
||
|
|
||
|
doit({
|
||
|
'name|1-10': 1
|
||
|
}, {
|
||
|
name: 0
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
'name|1-10': 1
|
||
|
}, {
|
||
|
name: 11
|
||
|
}, 1)
|
||
|
})
|
||
|
describe('Value - String', function() {
|
||
|
doit({
|
||
|
name: 'value'
|
||
|
}, {
|
||
|
name: 'value'
|
||
|
}, 0)
|
||
|
|
||
|
doit({
|
||
|
name: 'value1'
|
||
|
}, {
|
||
|
name: 'value2'
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
'name|1': 'value'
|
||
|
}, {
|
||
|
name: 'value'
|
||
|
}, 0)
|
||
|
|
||
|
doit({
|
||
|
'name|2': 'value'
|
||
|
}, {
|
||
|
name: 'valuevalue'
|
||
|
}, 0)
|
||
|
|
||
|
doit({
|
||
|
'name|2': 'value'
|
||
|
}, {
|
||
|
name: 'value'
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
'name|2-3': 'value'
|
||
|
}, {
|
||
|
name: 'value'
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
'name|2-3': 'value'
|
||
|
}, {
|
||
|
name: 'valuevaluevaluevalue'
|
||
|
}, 1)
|
||
|
})
|
||
|
describe('Value - RgeExp', function() {
|
||
|
doit({
|
||
|
name: /value/
|
||
|
}, {
|
||
|
name: 'value'
|
||
|
}, 0)
|
||
|
doit({
|
||
|
name: /value/
|
||
|
}, {
|
||
|
name: 'vvvvv'
|
||
|
}, 1)
|
||
|
doit({
|
||
|
'name|1-10': /value/
|
||
|
}, {
|
||
|
name: 'valuevaluevaluevaluevalue'
|
||
|
}, 0)
|
||
|
doit({
|
||
|
'name|1-10': /value/
|
||
|
}, {
|
||
|
name: 'vvvvvvvvvvvvvvvvvvvvvvvvv'
|
||
|
}, 1)
|
||
|
doit({
|
||
|
'name|1-10': /^value$/
|
||
|
}, {
|
||
|
name: 'valuevaluevaluevaluevalue'
|
||
|
}, 0)
|
||
|
doit({
|
||
|
name: /[a-z][A-Z][0-9]/
|
||
|
}, {
|
||
|
name: 'yL5'
|
||
|
}, 0)
|
||
|
})
|
||
|
describe('Value - Object', function() {
|
||
|
doit({
|
||
|
name: 1
|
||
|
}, {
|
||
|
name: 1
|
||
|
}, 0)
|
||
|
doit({
|
||
|
name1: 1
|
||
|
}, {
|
||
|
name2: 2
|
||
|
}, 1)
|
||
|
doit({
|
||
|
name1: 1,
|
||
|
name2: 2
|
||
|
}, {
|
||
|
name3: 3
|
||
|
}, 1)
|
||
|
doit({
|
||
|
name1: 1,
|
||
|
name2: 2
|
||
|
}, {
|
||
|
name1: '1',
|
||
|
name2: '2'
|
||
|
}, 2)
|
||
|
doit({
|
||
|
a: {
|
||
|
b: {
|
||
|
c: {
|
||
|
d: 1
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
a: {
|
||
|
b: {
|
||
|
c: {
|
||
|
d: 2
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}, 1)
|
||
|
})
|
||
|
describe('Value - Array', function() {
|
||
|
doit([1, 2, 3], [1, 2, 3], 0)
|
||
|
|
||
|
doit([1, 2, 3], [1, 2, 3, 4], 1)
|
||
|
|
||
|
// 'name|1': array
|
||
|
doit({
|
||
|
'name|1': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': 1
|
||
|
}, 0)
|
||
|
doit({
|
||
|
'name|1': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': 2
|
||
|
}, 0)
|
||
|
doit({
|
||
|
'name|1': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': 3
|
||
|
}, 0)
|
||
|
doit({ // 不检测
|
||
|
'name|1': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': 4
|
||
|
}, 0)
|
||
|
|
||
|
// 'name|+1': array
|
||
|
doit({
|
||
|
'name|+1': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': 1
|
||
|
}, 0)
|
||
|
doit({
|
||
|
'name|+1': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': 2
|
||
|
}, 0)
|
||
|
doit({
|
||
|
'name|+1': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': 3
|
||
|
}, 0)
|
||
|
doit({
|
||
|
'name|+1': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': 4
|
||
|
}, 0)
|
||
|
|
||
|
// 'name|min-max': array
|
||
|
doit({
|
||
|
'name|2-3': [1]
|
||
|
}, {
|
||
|
'name': [1, 2, 3, 4]
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
'name|2-3': [1]
|
||
|
}, {
|
||
|
'name': [1]
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
'name|2-3': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
'name|2-3': [1, 2, 3]
|
||
|
}, {
|
||
|
'name': [1, 2, 3]
|
||
|
}, 1)
|
||
|
|
||
|
doit({
|
||
|
'name|2-3': [1]
|
||
|
}, {
|
||
|
'name': [1, 1, 1]
|
||
|
}, 0)
|
||
|
|
||
|
doit({
|
||
|
'name|2-3': [1]
|
||
|
}, {
|
||
|
'name': [1, 2, 3]
|
||
|
}, 2)
|
||
|
|
||
|
// 'name|count': array
|
||
|
})
|
||
|
describe('Value - Placeholder', function() {
|
||
|
doit({
|
||
|
name: '@email'
|
||
|
}, {
|
||
|
name: 'nuysoft@gmail.com'
|
||
|
}, 0)
|
||
|
doit({
|
||
|
name: '@int'
|
||
|
}, {
|
||
|
name: 123
|
||
|
}, 0)
|
||
|
})
|
||
|
})
|