@@ -832,5 +832,109 @@ describe('Diff2Html', () => {
832832 </div>"
833833 ` ) ;
834834 } ) ;
835+
836+ it ( 'should generate html correctly without escaping twice' , ( ) => {
837+ const diff =
838+ '--- src/index.html\n' +
839+ '+++ src/index.html\n' +
840+ '@@ -1,2 +1,2 @@\n' +
841+ '-<!-- commented code -->\n' +
842+ '-</div>\n' +
843+ '+<html>\n' +
844+ '+<body>' ;
845+
846+ const result = html ( diff ) ;
847+ expect ( result ) . toMatchInlineSnapshot ( `
848+ "<div class=\\"d2h-file-list-wrapper\\">
849+ <div class=\\"d2h-file-list-header\\">
850+ <span class=\\"d2h-file-list-title\\">Files changed (1)</span>
851+ <a class=\\"d2h-file-switch d2h-hide\\">hide</a>
852+ <a class=\\"d2h-file-switch d2h-show\\">show</a>
853+ </div>
854+ <ol class=\\"d2h-file-list\\">
855+ <li class=\\"d2h-file-list-line\\">
856+ <span class=\\"d2h-file-name-wrapper\\">
857+ <svg aria-hidden=\\"true\\" class=\\"d2h-icon d2h-changed\\" height=\\"16\\" title=\\"modified\\" version=\\"1.1\\"
858+ viewBox=\\"0 0 14 16\\" width=\\"14\\">
859+ <path d=\\"M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z\\"></path>
860+ </svg> <a href=\\"#d2h-597266\\" class=\\"d2h-file-name\\">src/index.html</a>
861+ <span class=\\"d2h-file-stats\\">
862+ <span class=\\"d2h-lines-added\\">+2</span>
863+ <span class=\\"d2h-lines-deleted\\">-2</span>
864+ </span>
865+ </span>
866+ </li>
867+ </ol>
868+ </div><div class=\\"d2h-wrapper\\">
869+ <div id=\\"d2h-597266\\" class=\\"d2h-file-wrapper\\" data-lang=\\"html\\">
870+ <div class=\\"d2h-file-header\\">
871+ <span class=\\"d2h-file-name-wrapper\\">
872+ <svg aria-hidden=\\"true\\" class=\\"d2h-icon\\" height=\\"16\\" version=\\"1.1\\" viewBox=\\"0 0 12 16\\" width=\\"12\\">
873+ <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>
874+ </svg> <span class=\\"d2h-file-name\\">src/index.html</span>
875+ <span class=\\"d2h-tag d2h-changed d2h-changed-tag\\">CHANGED</span></span>
876+ </div>
877+ <div class=\\"d2h-file-diff\\">
878+ <div class=\\"d2h-code-wrapper\\">
879+ <table class=\\"d2h-diff-table\\">
880+ <tbody class=\\"d2h-diff-tbody\\">
881+ <tr>
882+ <td class=\\"d2h-code-linenumber d2h-info\\"></td>
883+ <td class=\\"d2h-info\\">
884+ <div class=\\"d2h-code-line d2h-info\\">@@ -1,2 +1,2 @@</div>
885+ </td>
886+ </tr><tr>
887+ <td class=\\"d2h-code-linenumber d2h-del d2h-change\\">
888+ <div class=\\"line-num1\\">1</div>
889+ <div class=\\"line-num2\\"></div>
890+ </td>
891+ <td class=\\"d2h-del d2h-change\\">
892+ <div class=\\"d2h-code-line d2h-del d2h-change\\">
893+ <span class=\\"d2h-code-line-prefix\\">-</span>
894+ <span class=\\"d2h-code-line-ctn\\"><del><!-- commented code --></del></span>
895+ </div>
896+ </td>
897+ </tr><tr>
898+ <td class=\\"d2h-code-linenumber d2h-del d2h-change\\">
899+ <div class=\\"line-num1\\">2</div>
900+ <div class=\\"line-num2\\"></div>
901+ </td>
902+ <td class=\\"d2h-del d2h-change\\">
903+ <div class=\\"d2h-code-line d2h-del d2h-change\\">
904+ <span class=\\"d2h-code-line-prefix\\">-</span>
905+ <span class=\\"d2h-code-line-ctn\\"><del></div</del>></span>
906+ </div>
907+ </td>
908+ </tr><tr>
909+ <td class=\\"d2h-code-linenumber d2h-ins d2h-change\\">
910+ <div class=\\"line-num1\\"></div>
911+ <div class=\\"line-num2\\">1</div>
912+ </td>
913+ <td class=\\"d2h-ins d2h-change\\">
914+ <div class=\\"d2h-code-line d2h-ins d2h-change\\">
915+ <span class=\\"d2h-code-line-prefix\\">+</span>
916+ <span class=\\"d2h-code-line-ctn\\"><ins><html></ins></span>
917+ </div>
918+ </td>
919+ </tr><tr>
920+ <td class=\\"d2h-code-linenumber d2h-ins d2h-change\\">
921+ <div class=\\"line-num1\\"></div>
922+ <div class=\\"line-num2\\">2</div>
923+ </td>
924+ <td class=\\"d2h-ins d2h-change\\">
925+ <div class=\\"d2h-code-line d2h-ins d2h-change\\">
926+ <span class=\\"d2h-code-line-prefix\\">+</span>
927+ <span class=\\"d2h-code-line-ctn\\"><ins><body</ins>></span>
928+ </div>
929+ </td>
930+ </tr>
931+ </tbody>
932+ </table>
933+ </div>
934+ </div>
935+ </div>
936+ </div>"
937+ ` ) ;
938+ } ) ;
835939 } ) ;
836940} ) ;
0 commit comments