@@ -5,9 +5,7 @@ var Promise = require('promise/src/es6-extensions')
55 , chaiAsPromised = require ( 'chai-as-promised' )
66 , reach = require ( '../src/util/reach' )
77 , BadSet = require ( '../src/util/set' )
8- , number = require ( '../src/number' )
9- , array = require ( '../src/array' )
10- , object = require ( '../src/object' )
8+ , { object, array, string, lazy, number } = require ( '../src' )
119 , _ = require ( '../src/util/_' ) ;
1210
1311chai . use ( chaiAsPromised ) ;
@@ -131,6 +129,27 @@ describe('Yup', function(){
131129 } )
132130 } )
133131
132+ it ( 'should reach through lazy' , async ( ) => {
133+ let types = {
134+ '1' : object ( { foo : string ( ) } ) ,
135+ '2' : object ( { foo : number ( ) } )
136+ }
137+
138+ let err = await object ( {
139+ x : array (
140+ lazy ( val => types [ val . type ] )
141+ )
142+ } )
143+ . strict ( )
144+ . validate ( { x : [
145+ { type : 1 , foo : '4' } ,
146+ { type : 2 , foo : '5' }
147+ ] } )
148+ . should . be . rejected
149+
150+ err . message . should . match ( / m u s t b e a ` n u m b e r ` t y p e / )
151+ } )
152+
134153 describe ( 'BadSet' , function ( ) {
135154 it ( 'should preserve primitive types' , function ( ) {
136155 var set = new BadSet ( )
0 commit comments