@@ -256,30 +256,34 @@ describe('Processing', function() {
256
256
it ( 'When converter returns undefined' , function ( done ) {
257
257
var src = { a : 1 , b : { c : 2 , d : 3 , e : 4 } } ;
258
258
var dst = { a : 'A' , b : { e : 'E' } } ;
259
- function fn ( value , keyChain , dstKeyChain , dstValue ) {
259
+ function fn ( value , keyChain , dstKeyChain , dstValue , dstParent ) {
260
260
switch ( keyChain ) {
261
261
case 'a' : {
262
262
expect ( value ) . to . equal ( 1 ) ;
263
263
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
264
264
expect ( dstValue ) . to . equal ( 'A' ) ;
265
+ expect ( dstParent ) . to . equal ( dst ) ;
265
266
break ;
266
267
}
267
268
case 'b.c' : {
268
269
expect ( value ) . to . equal ( 2 ) ;
269
270
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
270
271
expect ( dstValue ) . to . be . undefined ;
272
+ expect ( dstParent ) . to . equal ( dst . b ) ;
271
273
break ;
272
274
}
273
275
case 'b.d' : {
274
276
expect ( value ) . to . equal ( 3 ) ;
275
277
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
276
278
expect ( dstValue ) . to . be . undefined ;
279
+ expect ( dstParent ) . to . equal ( dst . b ) ;
277
280
break ;
278
281
}
279
282
case 'b.e' : {
280
283
expect ( value ) . to . equal ( 4 ) ;
281
284
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
282
285
expect ( dstValue ) . to . equal ( 'E' ) ;
286
+ expect ( dstParent ) . to . equal ( dst . b ) ;
283
287
break ;
284
288
}
285
289
default : {
@@ -298,24 +302,27 @@ describe('Processing', function() {
298
302
it ( 'When converter returns null' , function ( done ) {
299
303
var src = { a : 1 , b : { c : 2 , d : 3 } } ;
300
304
var dst = { } ;
301
- function fn ( value , keyChain , dstKeyChain , dstValue ) {
305
+ function fn ( value , keyChain , dstKeyChain , dstValue , dstParent ) {
302
306
switch ( keyChain ) {
303
307
case 'a' : {
304
308
expect ( value ) . to . equal ( 1 ) ;
305
309
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
306
310
expect ( dstValue ) . to . be . undefined ;
311
+ expect ( dstParent ) . to . equal ( dst ) ;
307
312
break ;
308
313
}
309
314
case 'b.c' : {
310
315
expect ( value ) . to . equal ( 2 ) ;
311
316
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
312
317
expect ( dstValue ) . to . be . undefined ;
318
+ expect ( dstParent ) . to . equal ( dst . b ) ;
313
319
break ;
314
320
}
315
321
case 'b.d' : {
316
322
expect ( value ) . to . equal ( 3 ) ;
317
323
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
318
324
expect ( dstValue ) . to . be . undefined ;
325
+ expect ( dstParent ) . to . equal ( dst . b ) ;
319
326
break ;
320
327
}
321
328
default : {
@@ -351,24 +358,28 @@ describe('Processing', function() {
351
358
352
359
src = { a : 1 , b : { c : 2 , d : 3 } } ;
353
360
dst = { a : 'A' , b : { c : 'C' , d : 'D' } } ;
354
- var converter = function ( value , keyChain , dstKeyChain , dstValue ) {
361
+ var converter = function ( value , keyChain , dstKeyChain , dstValue ,
362
+ dstParent ) {
355
363
switch ( keyChain ) {
356
364
case 'a' : {
357
365
expect ( value ) . to . equal ( 'A' ) ;
358
366
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
359
367
expect ( dstValue ) . to . equal ( 1 ) ;
368
+ expect ( dstParent ) . to . equal ( src ) ;
360
369
break ;
361
370
}
362
371
case 'b.c' : {
363
372
expect ( value ) . to . equal ( 'C' ) ;
364
373
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
365
374
expect ( dstValue ) . to . equal ( 2 ) ;
375
+ expect ( dstParent ) . to . equal ( src . b ) ;
366
376
break ;
367
377
}
368
378
case 'b.d' : {
369
379
expect ( value ) . to . equal ( 'D' ) ;
370
380
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
371
381
expect ( dstValue ) . to . equal ( 3 ) ;
382
+ expect ( dstParent ) . to . equal ( src . b ) ;
372
383
break ;
373
384
}
374
385
default : {
@@ -389,30 +400,34 @@ describe('Processing', function() {
389
400
src = { a : 1 , b : { c : 2 , d : 3 } } ;
390
401
dst = { a : 'A' , b : { c : 'C' , d : 'D' , e : 'E' , f : 'F' } } ;
391
402
fromto = [ 'a' , 'b.c' , 'b.d' , 'b.e' ] ;
392
- converter = function ( value , keyChain , dstKeyChain , dstValue ) {
403
+ converter = function ( value , keyChain , dstKeyChain , dstValue , dstParent ) {
393
404
switch ( keyChain ) {
394
405
case 'a' : {
395
406
expect ( value ) . to . equal ( 'A' ) ;
396
407
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
397
408
expect ( dstValue ) . to . equal ( 1 ) ;
409
+ expect ( dstParent ) . to . equal ( src ) ;
398
410
break ;
399
411
}
400
412
case 'b.c' : {
401
413
expect ( value ) . to . equal ( 'C' ) ;
402
414
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
403
415
expect ( dstValue ) . to . equal ( 2 ) ;
416
+ expect ( dstParent ) . to . equal ( src . b ) ;
404
417
break ;
405
418
}
406
419
case 'b.d' : {
407
420
expect ( value ) . to . equal ( 'D' ) ;
408
421
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
409
422
expect ( dstValue ) . to . equal ( 3 ) ;
423
+ expect ( dstParent ) . to . equal ( src . b ) ;
410
424
break ;
411
425
}
412
426
case 'b.e' : {
413
427
expect ( value ) . to . equal ( 'E' ) ;
414
428
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
415
429
expect ( dstValue ) . to . be . undefined ;
430
+ expect ( dstParent ) . to . equal ( src . b ) ;
416
431
break ;
417
432
}
418
433
default : {
@@ -448,24 +463,28 @@ describe('Processing', function() {
448
463
449
464
src = { a : 1 , b : { c : 2 , d : 3 } } ;
450
465
dst = { a : 'A' , b : { c : 'C' , d : 'D' } } ;
451
- var converter = function ( value , keyChain , dstKeyChain , dstValue ) {
466
+ var converter = function ( value , keyChain , dstKeyChain , dstValue ,
467
+ dstParent ) {
452
468
switch ( keyChain ) {
453
469
case 'a' : {
454
470
expect ( value ) . to . equal ( 1 ) ;
455
471
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
456
472
expect ( dstValue ) . to . equal ( 'A' ) ;
473
+ expect ( dstParent ) . to . equal ( dst ) ;
457
474
break ;
458
475
}
459
476
case 'b.c' : {
460
477
expect ( value ) . to . equal ( 2 ) ;
461
478
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
462
479
expect ( dstValue ) . to . equal ( 'C' ) ;
480
+ expect ( dstParent ) . to . equal ( dst . b ) ;
463
481
break ;
464
482
}
465
483
case 'b.d' : {
466
484
expect ( value ) . to . equal ( 3 ) ;
467
485
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
468
486
expect ( dstValue ) . to . equal ( 'D' ) ;
487
+ expect ( dstParent ) . to . equal ( dst . b ) ;
469
488
break ;
470
489
}
471
490
default : {
@@ -486,30 +505,34 @@ describe('Processing', function() {
486
505
src = { a : 1 , b : { c : 2 , d : 3 } } ;
487
506
dst = { a : 'A' , b : { c : 'C' , d : 'D' , e : 'E' , f : 'F' } } ;
488
507
fromto = [ 'a' , 'b.c' , 'b.d' , 'b.e' ] ;
489
- converter = function ( value , keyChain , dstKeyChain , dstValue ) {
508
+ converter = function ( value , keyChain , dstKeyChain , dstValue , dstParent ) {
490
509
switch ( keyChain ) {
491
510
case 'a' : {
492
511
expect ( value ) . to . equal ( 1 ) ;
493
512
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
494
513
expect ( dstValue ) . to . equal ( 'A' ) ;
514
+ expect ( dstParent ) . to . equal ( dst ) ;
495
515
break ;
496
516
}
497
517
case 'b.c' : {
498
518
expect ( value ) . to . equal ( 2 ) ;
499
519
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
500
520
expect ( dstValue ) . to . equal ( 'C' ) ;
521
+ expect ( dstParent ) . to . equal ( dst . b ) ;
501
522
break ;
502
523
}
503
524
case 'b.d' : {
504
525
expect ( value ) . to . equal ( 3 ) ;
505
526
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
506
527
expect ( dstValue ) . to . equal ( 'D' ) ;
528
+ expect ( dstParent ) . to . equal ( dst . b ) ;
507
529
break ;
508
530
}
509
531
case 'b.e' : {
510
532
expect ( value ) . to . be . undefined ;
511
533
expect ( dstKeyChain ) . to . equal ( keyChain ) ;
512
534
expect ( dstValue ) . to . equal ( 'E' ) ;
535
+ expect ( dstParent ) . to . equal ( dst . b ) ;
513
536
break ;
514
537
}
515
538
default : {
0 commit comments