File tree 2 files changed +30
-6
lines changed
2 files changed +30
-6
lines changed Original file line number Diff line number Diff line change @@ -40,7 +40,11 @@ internals.defaults = {
40
40
41
41
exports . register = function ( server , options , next ) {
42
42
43
- Joi . assert ( options , internals . schema , 'Invalid crumb options' ) ;
43
+ var validateOptions = internals . schema . validate ( options ) ;
44
+ if ( validateOptions . error ) {
45
+ return next ( validateOptions . error ) ;
46
+ }
47
+
44
48
var settings = Hoek . applyToDefaults ( internals . defaults , options ) ;
45
49
46
50
var routeDefaults = {
Original file line number Diff line number Diff line change @@ -258,6 +258,25 @@ describe('Crumb', function () {
258
258
} ) ;
259
259
} ) ;
260
260
261
+ it ( 'should fail to register with bad options' , function ( done ) {
262
+
263
+ var server = new Hapi . Server ( ) ;
264
+ server . connection ( ) ;
265
+
266
+ server . register ( {
267
+ register : Crumb ,
268
+ options : {
269
+ foo : 'bar'
270
+ }
271
+ } , function ( err ) {
272
+
273
+ expect ( err ) . to . exist ( ) ;
274
+ expect ( err . name ) . to . equal ( 'ValidationError' ) ;
275
+ expect ( err . message ) . to . equal ( 'foo is not allowed' ) ;
276
+ done ( ) ;
277
+ } ) ;
278
+ } ) ;
279
+
261
280
it ( 'route uses crumb when route.config.plugins.crumb set to true and autoGenerate set to false' , function ( done ) {
262
281
263
282
var server = new Hapi . Server ( ) ;
@@ -375,11 +394,12 @@ describe('Crumb', function () {
375
394
var server = new Hapi . Server ( ) ;
376
395
server . connection ( ) ;
377
396
378
- expect ( function ( ) {
379
-
380
- server . register ( { register : Crumb , options : { allowOrigins : [ '*' ] } } , function ( err ) { } ) ;
381
- } ) . to . throw ( / I n v a l i d c r u m b o p t i o n s / ) ;
382
- done ( ) ;
397
+ server . register ( { register : Crumb , options : { allowOrigins : [ '*' ] } } , function ( err ) {
398
+ expect ( err ) . to . exist ( ) ;
399
+ expect ( err . name ) . to . equal ( 'ValidationError' ) ;
400
+ expect ( err . message ) . to . equal ( 'allowOrigins position 0 contains an excluded value' ) ;
401
+ done ( ) ;
402
+ } ) ;
383
403
} ) ;
384
404
385
405
it ( 'does not set crumb cookie insecurely' , function ( done ) {
You can’t perform that action at this time.
0 commit comments