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
			| 
								 
											4 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)
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								})
							 |