all files / tests/unit/ validator.spec.js

100% Statements 39/39
50% Branches 1/2
100% Functions 10/10
100% Lines 39/39
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83                                                                                       
import chai, { expect } from "chai";
import sinon from 'sinon'
import sinonChai from 'sinon-chai'
import Validate from '../../src/validate'
chai.use(sinonChai)
const validator = new Validate()
 
 
describe("validator", () => {
    it('存在.', () => {
        expect(Validate).to.exist
    })
 
    it('require true通过', ()=> {
        let data = {
            email:''
        }
        let rules = [
            {key:'email',required:true}
        ]
        let errors = validator.validator(data , rules)
        expect(errors.email.required).to.eq('必填')
    })
    it('验证pattern 不通过', ()=> {
        let data = {
            email:'@123.com'
        }
        let rules = [
            {key:'email',pattern:/^.+@.+$/}
        ]
        
        let errors = validator.validator(data , rules)
        expect(errors.email.pattern).to.eq('格式不正确')
    })
    it('验证pattern 通过', ()=> {
        let data = {
            email:'123@123.com'
        }
        let rules = [
            {key:'email',pattern:/^.+@.+$/}
        ]
        let errors = validator.validator(data , rules)
        expect(errors.email.pattern).to.not.exist
    })
    it('验证email 不通过', ()=> {
        let data = {
            email:'@123.com'
        }
        let rules = [
            {key:'email',pattern:'email'}
        ]
        let errors = validator.validator(data , rules)
        expect(errors.email.pattern).to.eq('格式不正确')
    })
    it('验证throw error', ()=> {
        let data = {
            email:'@123.com'
        }
        let rules = [
            {key:'email',pattern:'email',maxLength:3}
        ]
        let fn = function() {
            validator.validator(data , rules)
        }
        expect(fn).to.throw('error')
    })
    it('验证自定义规则', ()=> {
        let data = {
            name:'randy666',
        }
        let rules = [
            {key:'name',maxLength:6}
        ]
        validator.maxLength = function(value,maxLength) {
            Eif(value.length > maxLength){
                return '太长了'
            }
        }
        let errors = validator.validator(data , rules)
        expect(errors.name.maxLength).to.eq('太长了')
    })
});