@@ -24,6 +24,45 @@ describe('SideBySideRenderer', () => {
24
24
} ) ;
25
25
} ) ;
26
26
27
+ describe ( '_generateTooBigDiff' , ( ) => {
28
+ it ( 'should return a diff with default "too big" message when no `diffTooBigMessage` is defined' , ( ) => {
29
+ const hoganUtils = new HoganJsUtils ( { } ) ;
30
+ const sideBySideRenderer = new SideBySideRenderer ( hoganUtils , { } ) ;
31
+ const fileHtml = sideBySideRenderer . generateTooBigDiff ( 0 ) ;
32
+ expect ( fileHtml ) . toMatchInlineSnapshot ( `
33
+ Object {
34
+ "left": "<tr>
35
+ <td class=\\"d2h-info\\">
36
+ <div class=\\"d2h-code-side-line d2h-info\\">
37
+ Diff too big to be displayed
38
+ </div>
39
+ </td>
40
+ </tr>",
41
+ "right": "",
42
+ }
43
+ ` ) ;
44
+ } ) ;
45
+
46
+ it ( 'should return a diff with custom "too big" message when `diffTooBigMessage` is defined' , ( ) => {
47
+ const hoganUtils = new HoganJsUtils ( { } ) ;
48
+ const customMessageFn = ( fIndex : number ) => `Custom message for file ${ fIndex } diff too big` ;
49
+ const sideBySideRenderer = new SideBySideRenderer ( hoganUtils , { diffTooBigMessage : customMessageFn } ) ;
50
+ const fileHtml = sideBySideRenderer . generateTooBigDiff ( 0 ) ;
51
+ expect ( fileHtml ) . toMatchInlineSnapshot ( `
52
+ Object {
53
+ "left": "<tr>
54
+ <td class=\\"d2h-info\\">
55
+ <div class=\\"d2h-code-side-line d2h-info\\">
56
+ Custom message for file 0 diff too big
57
+ </div>
58
+ </td>
59
+ </tr>",
60
+ "right": "",
61
+ }
62
+ ` ) ;
63
+ } ) ;
64
+ } ) ;
65
+
27
66
describe ( 'generateSideBySideFileHtml' , ( ) => {
28
67
it ( 'should generate lines with the right prefixes' , ( ) => {
29
68
const hoganUtils = new HoganJsUtils ( { } ) ;
@@ -406,6 +445,133 @@ describe('SideBySideRenderer', () => {
406
445
</div>"
407
446
` ) ;
408
447
} ) ;
448
+
449
+ it ( 'should work for too big file diff and no custom message fn' , ( ) => {
450
+ const exampleJson = [
451
+ {
452
+ blocks : [ ] ,
453
+ deletedLines : 0 ,
454
+ addedLines : 0 ,
455
+ oldName : 'sample' ,
456
+ language : 'js' ,
457
+ newName : 'sample' ,
458
+ isCombined : false ,
459
+ isGitDiff : false ,
460
+ isTooBig : true ,
461
+ } ,
462
+ ] ;
463
+
464
+ const hoganUtils = new HoganJsUtils ( { } ) ;
465
+ const sideBySideRenderer = new SideBySideRenderer ( hoganUtils ) ;
466
+ const html = sideBySideRenderer . render ( exampleJson ) ;
467
+ expect ( html ) . toMatchInlineSnapshot ( `
468
+ "<div class=\\"d2h-wrapper\\">
469
+ <div id=\\"d2h-675094\\" class=\\"d2h-file-wrapper\\" data-lang=\\"js\\">
470
+ <div class=\\"d2h-file-header\\">
471
+ <span class=\\"d2h-file-name-wrapper\\">
472
+ <svg aria-hidden=\\"true\\" class=\\"d2h-icon\\" height=\\"16\\" version=\\"1.1\\" viewBox=\\"0 0 12 16\\" width=\\"12\\">
473
+ <path d=\\"M6 5H2v-1h4v1zM2 8h7v-1H2v1z m0 2h7v-1H2v1z m0 2h7v-1H2v1z m10-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z\\"></path>
474
+ </svg> <span class=\\"d2h-file-name\\">sample</span>
475
+ <span class=\\"d2h-tag d2h-changed d2h-changed-tag\\">CHANGED</span></span>
476
+ <label class=\\"d2h-file-collapse\\">
477
+ <input class=\\"d2h-file-collapse-input\\" type=\\"checkbox\\" name=\\"viewed\\" value=\\"viewed\\">
478
+ Viewed
479
+ </label>
480
+ </div>
481
+ <div class=\\"d2h-files-diff\\">
482
+ <div class=\\"d2h-file-side-diff\\">
483
+ <div class=\\"d2h-code-wrapper\\">
484
+ <table class=\\"d2h-diff-table\\">
485
+ <tbody class=\\"d2h-diff-tbody\\">
486
+ <tr>
487
+ <td class=\\"d2h-info\\">
488
+ <div class=\\"d2h-code-side-line d2h-info\\">
489
+ Diff too big to be displayed
490
+ </div>
491
+ </td>
492
+ </tr>
493
+ </tbody>
494
+ </table>
495
+ </div>
496
+ </div>
497
+ <div class=\\"d2h-file-side-diff\\">
498
+ <div class=\\"d2h-code-wrapper\\">
499
+ <table class=\\"d2h-diff-table\\">
500
+ <tbody class=\\"d2h-diff-tbody\\">
501
+
502
+ </tbody>
503
+ </table>
504
+ </div>
505
+ </div>
506
+ </div>
507
+ </div>
508
+ </div>"
509
+ ` ) ;
510
+ } ) ;
511
+
512
+ it ( 'should work for too big file diff and custom message fn' , ( ) => {
513
+ const exampleJson = [
514
+ {
515
+ blocks : [ ] ,
516
+ deletedLines : 0 ,
517
+ addedLines : 0 ,
518
+ oldName : 'sample' ,
519
+ language : 'js' ,
520
+ newName : 'sample' ,
521
+ isCombined : false ,
522
+ isGitDiff : false ,
523
+ isTooBig : true ,
524
+ } ,
525
+ ] ;
526
+
527
+ const hoganUtils = new HoganJsUtils ( { } ) ;
528
+ const customMessageFn = ( fIndex : number ) => `Custom message for file ${ fIndex } diff too big` ;
529
+ const sideBySideRenderer = new SideBySideRenderer ( hoganUtils , { diffTooBigMessage : customMessageFn } ) ;
530
+ const html = sideBySideRenderer . render ( exampleJson ) ;
531
+ expect ( html ) . toMatchInlineSnapshot ( `
532
+ "<div class=\\"d2h-wrapper\\">
533
+ <div id=\\"d2h-675094\\" class=\\"d2h-file-wrapper\\" data-lang=\\"js\\">
534
+ <div class=\\"d2h-file-header\\">
535
+ <span class=\\"d2h-file-name-wrapper\\">
536
+ <svg aria-hidden=\\"true\\" class=\\"d2h-icon\\" height=\\"16\\" version=\\"1.1\\" viewBox=\\"0 0 12 16\\" width=\\"12\\">
537
+ <path d=\\"M6 5H2v-1h4v1zM2 8h7v-1H2v1z m0 2h7v-1H2v1z m0 2h7v-1H2v1z m10-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z\\"></path>
538
+ </svg> <span class=\\"d2h-file-name\\">sample</span>
539
+ <span class=\\"d2h-tag d2h-changed d2h-changed-tag\\">CHANGED</span></span>
540
+ <label class=\\"d2h-file-collapse\\">
541
+ <input class=\\"d2h-file-collapse-input\\" type=\\"checkbox\\" name=\\"viewed\\" value=\\"viewed\\">
542
+ Viewed
543
+ </label>
544
+ </div>
545
+ <div class=\\"d2h-files-diff\\">
546
+ <div class=\\"d2h-file-side-diff\\">
547
+ <div class=\\"d2h-code-wrapper\\">
548
+ <table class=\\"d2h-diff-table\\">
549
+ <tbody class=\\"d2h-diff-tbody\\">
550
+ <tr>
551
+ <td class=\\"d2h-info\\">
552
+ <div class=\\"d2h-code-side-line d2h-info\\">
553
+ Custom message for file 0 diff too big
554
+ </div>
555
+ </td>
556
+ </tr>
557
+ </tbody>
558
+ </table>
559
+ </div>
560
+ </div>
561
+ <div class=\\"d2h-file-side-diff\\">
562
+ <div class=\\"d2h-code-wrapper\\">
563
+ <table class=\\"d2h-diff-table\\">
564
+ <tbody class=\\"d2h-diff-tbody\\">
565
+
566
+ </tbody>
567
+ </table>
568
+ </div>
569
+ </div>
570
+ </div>
571
+ </div>
572
+ </div>"
573
+ ` ) ;
574
+ } ) ;
409
575
} ) ;
410
576
411
577
describe ( 'processLines' , ( ) => {
0 commit comments