@@ -350,3 +350,161 @@ describe('#diff', function() {
350
350
351
351
} ) ;
352
352
} ) ;
353
+
354
+ describe ( '#diff' , function ( ) {
355
+ describe ( 'compare chars' , function ( ) {
356
+ it ( 'compare change chars start-string' , function ( ) {
357
+ var changes = diff (
358
+ 'the quick red fox jumped' ,
359
+ 'The quick red fox jumped' ,
360
+ { compare : 'chars' }
361
+ ) , change ;
362
+
363
+ expect ( changes . length ) . to . equal ( 1 ) ;
364
+
365
+ change = changes [ 0 ] ;
366
+
367
+ expect ( change . lhs . at ) . to . equal ( 0 ) ;
368
+ expect ( change . lhs . del ) . to . be . equal ( 1 ) ;
369
+
370
+ expect ( change . rhs . at ) . to . equal ( 0 ) ;
371
+ expect ( change . rhs . add ) . to . be . equal ( 1 ) ;
372
+ } ) ;
373
+
374
+ it ( 'compare change chars end-string' , function ( ) {
375
+ var changes = diff (
376
+ 'the quick red fox jumped' ,
377
+ 'the quick red fox Jumped' ,
378
+ { compare : 'chars' }
379
+ ) , change ;
380
+
381
+ expect ( changes . length ) . to . equal ( 1 ) ;
382
+
383
+ change = changes [ 0 ] ;
384
+
385
+ expect ( change . lhs . at ) . to . equal ( 18 ) ;
386
+ expect ( change . lhs . del ) . to . be . equal ( 1 ) ;
387
+
388
+ expect ( change . rhs . at ) . to . equal ( 18 ) ;
389
+ expect ( change . rhs . add ) . to . be . equal ( 1 ) ;
390
+ } ) ;
391
+
392
+ it ( 'compare change chars mid-string' , function ( ) {
393
+ var changes = diff (
394
+ 'the quick red fox jumped' ,
395
+ 'the quick RED fox jumped' ,
396
+ { compare : 'chars' }
397
+ ) , change ;
398
+
399
+ expect ( changes . length ) . to . equal ( 1 ) ;
400
+
401
+ change = changes [ 0 ] ;
402
+
403
+ expect ( change . lhs . at ) . to . equal ( 10 ) ;
404
+ expect ( change . lhs . del ) . to . be . equal ( 3 ) ;
405
+
406
+ expect ( change . rhs . at ) . to . equal ( 10 ) ;
407
+ expect ( change . rhs . add ) . to . be . equal ( 3 ) ;
408
+ } ) ;
409
+
410
+ it ( 'compare add chars start-string' , function ( ) {
411
+ var changes = diff (
412
+ 'the quick red fox jumped' ,
413
+ '*the quick red fox jumped' ,
414
+ { compare : 'chars' }
415
+ ) , change ;
416
+
417
+ expect ( changes . length ) . to . equal ( 1 ) ;
418
+
419
+ change = changes [ 0 ] ;
420
+
421
+ expect ( change . lhs . at ) . to . equal ( 0 ) ;
422
+ expect ( change . lhs . del ) . to . be . equal ( 0 ) ;
423
+
424
+ expect ( change . rhs . at ) . to . equal ( 0 ) ;
425
+ expect ( change . rhs . add ) . to . be . equal ( 1 ) ;
426
+ } ) ;
427
+
428
+ it ( 'compare add chars end-string' , function ( ) {
429
+ var changes = diff (
430
+ 'the quick red fox jumped' ,
431
+ 'the quick red fox jumped*' ,
432
+ { compare : 'chars' }
433
+ ) , change ;
434
+
435
+ expect ( changes . length ) . to . equal ( 1 ) ;
436
+
437
+ change = changes [ 0 ] ;
438
+
439
+ expect ( change . lhs . at ) . to . equal ( 23 ) ;
440
+ expect ( change . lhs . del ) . to . be . equal ( 0 ) ;
441
+
442
+ expect ( change . rhs . at ) . to . equal ( 24 ) ;
443
+ expect ( change . rhs . add ) . to . be . equal ( 1 ) ;
444
+ } ) ;
445
+
446
+ it ( 'compare del chars start-string' , function ( ) {
447
+ var changes = diff (
448
+ '*the quick red fox jumped' ,
449
+ 'the quick red fox jumped' ,
450
+ { compare : 'chars' }
451
+ ) , change ;
452
+
453
+ expect ( changes . length ) . to . equal ( 1 ) ;
454
+
455
+ change = changes [ 0 ] ;
456
+
457
+ expect ( change . lhs . at ) . to . equal ( 0 ) ;
458
+ expect ( change . lhs . del ) . to . be . equal ( 1 ) ;
459
+
460
+ expect ( change . rhs . at ) . to . equal ( 0 ) ;
461
+ expect ( change . rhs . add ) . to . be . equal ( 0 ) ;
462
+ } ) ;
463
+
464
+ it ( 'compare del chars end-string' , function ( ) {
465
+ var changes = diff (
466
+ 'the quick red fox jumped*' ,
467
+ 'the quick red fox jumped' ,
468
+ { compare : 'chars' }
469
+ ) , change ;
470
+
471
+ expect ( changes . length ) . to . equal ( 1 ) ;
472
+
473
+ change = changes [ 0 ] ;
474
+
475
+ expect ( change . lhs . at ) . to . equal ( 24 ) ;
476
+ expect ( change . lhs . del ) . to . be . equal ( 1 ) ;
477
+
478
+ expect ( change . rhs . at ) . to . equal ( 23 ) ;
479
+ expect ( change . rhs . add ) . to . be . equal ( 0 ) ;
480
+ } ) ;
481
+
482
+ it ( 'compare chars' , function ( ) {
483
+ var changes = diff (
484
+ 'the quick red fox jumped' ,
485
+ 'the quick orange fox jumped' ,
486
+ { compare : 'chars' }
487
+ ) , change ;
488
+
489
+ expect ( changes . length ) . to . equal ( 3 ) ;
490
+
491
+ // adds an 'o' to the rhs
492
+ expect ( changes [ 0 ] . lhs . at ) . to . equal ( 10 ) ;
493
+ expect ( changes [ 0 ] . lhs . del ) . to . be . equal ( 0 ) ;
494
+ expect ( changes [ 0 ] . rhs . at ) . to . equal ( 10 ) ;
495
+ expect ( changes [ 0 ] . rhs . add ) . to . be . equal ( 1 ) ;
496
+
497
+ // adds an 'ang' to the rhs
498
+ expect ( changes [ 1 ] . lhs . at ) . to . equal ( 11 ) ;
499
+ expect ( changes [ 1 ] . lhs . del ) . to . be . equal ( 0 ) ;
500
+ expect ( changes [ 1 ] . rhs . at ) . to . equal ( 12 ) ;
501
+ expect ( changes [ 1 ] . rhs . add ) . to . be . equal ( 3 ) ;
502
+
503
+ // deletes a 'd' from the lhs
504
+ expect ( changes [ 2 ] . lhs . at ) . to . equal ( 12 ) ;
505
+ expect ( changes [ 2 ] . lhs . del ) . to . be . equal ( 1 ) ;
506
+ expect ( changes [ 2 ] . rhs . at ) . to . equal ( 16 ) ;
507
+ expect ( changes [ 2 ] . rhs . add ) . to . be . equal ( 0 ) ;
508
+ } ) ;
509
+ } ) ;
510
+ } ) ;
0 commit comments