UNPKG

node-input-validator

Version:

validation library for nodejs, inspired by laravel.

107 lines (95 loc) 2.46 kB
const assert = require('assert'); const { Validator } = require('../lib/index'); describe('Root Level Array', () => { it('should pass with array as root level', async () => { const v = new Validator( [ { field: 'admin@example.com' }, ], { '*.field': 'required|email' }, ); const matched = await v.check(); assert.equal(matched, true); }); it('should fail with array as root level', async () => { const v = new Validator( [ { field: 'string' }, ], { '*.field': 'required|email' }, ); const matched = await v.check(); assert.equal(matched, false); v.errors.should.have.key('0.field'); }); it('should pass with array as root level contains nested object', async () => { const v = new Validator([ { field: { email: 'admin@example.com' }, }, ], { '*.field.email': 'required|email' },); const matched = await v.check(); assert.equal(matched, true); }); it('should fail with array as root level contains nested object', async () => { const v = new Validator( [ { field: { email: 'string' }, }, ], { '*.field.email': 'required|email' }, ); const matched = await v.check(); assert.equal(matched, false); v.errors.should.have.key('0.field.email'); }); it('should pass with array as root level contains nested object', async () => { const v = new Validator( [ { field: { mails: [ { email: 'admin@example.com' } ], }, }, ], { '*.field.mails.*.email': 'required|email' } ); const matched = await v.check(); assert.equal(matched, true); }); it('should fail with array as root level contains nested object', async () => { const v = new Validator( [ { field: { mails: [ { email: 'admin@example.com' }, { email: 'string' }, { email: 'admin@example.com' } ], }, }, ], { '*.field.mails.*.email': 'required|email' } ); const matched = await v.check(); assert.equal(matched, false); v.errors.should.have.key('0.field.mails.1.email'); }); });