better-mock
Version:
Forked from Mockjs. Generate random data & Intercept ajax request. Support miniprogram.
349 lines (309 loc) • 5.29 kB
JavaScript
const Mock = require('../../dist/mock.browser')
const expect = require('chai').expect
describe('Mock.valid', function () {
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)
}
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)
doit({ 'name|5': 1 }, { name: 5 }, 0)
doit({ 'name|5': 1 }, { name: 6 }, 1)
doit({ 'name|.5': 1 }, { name: 1.34567 }, 0)
doit({ 'name|.5': 1 }, { name: 1.345678 }, 1)
doit({ 'name|.5-7': 1 }, { name: 1.345678 }, 0)
doit({ 'name|.5-7': 1 }, { name: 1.3456 }, 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|2': /^value$/ }, { name: 'valuevalue' }, 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)
doit({
name: {
'age|1-3': {
hello: 1
}
}
}, {
name: {
age: {
hello: 1
}
}
}, 0)
doit({
name: {
'age|2': {
hello: 1,
world: 1
}
}
}, {
name: {
age: {
hello: 1,
world: 1
}
}
}, 0)
})
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)
doit({
name: '@int'
}, {
name: '123'
}, 1)
})
describe('Value - Function', function () {
doit({
name: function () {}
}, {
name: 'nuysoft@gmail.com'
}, 0)
})
})