Skip to content

Commit a65a3b9

Browse files
committed
update tests
1 parent 08f14e2 commit a65a3b9

File tree

3 files changed

+131
-219
lines changed

3 files changed

+131
-219
lines changed

src/__tests__/diff-parser-tests.ts

Lines changed: 105 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1976,7 +1976,7 @@ describe('DiffParser', () => {
19761976
`);
19771977
});
19781978

1979-
it('should stop parsing file and mark it as `isTooBig` if `diffMaxChanges` is set and excedeed', () => {
1979+
it('should work when `diffMaxChanges` is set and excedeed', () => {
19801980
const diff =
19811981
'diff --git a/src/core/init.js b/src/core/init.js\n' +
19821982
'index e49196a..50f310c 100644\n' +
@@ -2006,50 +2006,132 @@ describe('DiffParser', () => {
20062006
expect(result).toMatchInlineSnapshot(`
20072007
Array [
20082008
Object {
2009-
"addedLines": 1,
2009+
"addedLines": 0,
20102010
"blocks": Array [
20112011
Object {
2012-
"header": "@@ -101,7 +101,7 @@ var rootjQuery,",
2012+
"header": "Diff too big to be displayed",
2013+
"lines": Array [],
2014+
"newStartLine": 0,
2015+
"oldStartLine": 0,
2016+
"oldStartLine2": null,
2017+
},
2018+
],
2019+
"checksumAfter": "50f310c",
2020+
"checksumBefore": "e49196a",
2021+
"deletedLines": 0,
2022+
"isCombined": false,
2023+
"isGitDiff": true,
2024+
"isTooBig": true,
2025+
"language": "js",
2026+
"mode": "100644",
2027+
"newName": "src/core/init.js",
2028+
"oldName": "src/core/init.js",
2029+
},
2030+
Object {
2031+
"addedLines": 0,
2032+
"blocks": Array [
2033+
Object {
2034+
"header": "@@ -1,6 +1,5 @@",
20132035
"lines": Array [
20142036
Object {
2015-
"content": " // HANDLE: $(function)",
2016-
"newNumber": 101,
2017-
"oldNumber": 101,
2037+
"content": " define([",
2038+
"newNumber": 1,
2039+
"oldNumber": 1,
20182040
"type": "context",
20192041
},
20202042
Object {
2021-
"content": " // Shortcut for document ready",
2022-
"newNumber": 102,
2023-
"oldNumber": 102,
2043+
"content": " \\"./core\\",",
2044+
"newNumber": 2,
2045+
"oldNumber": 2,
20242046
"type": "context",
20252047
},
20262048
Object {
2027-
"content": " } else if ( jQuery.isFunction( selector ) ) {",
2028-
"newNumber": 103,
2029-
"oldNumber": 103,
2049+
"content": "- \\"./var/strundefined\\",",
2050+
"newNumber": undefined,
2051+
"oldNumber": 3,
2052+
"type": "delete",
2053+
},
2054+
Object {
2055+
"content": " \\"./var/rnotwhite\\",",
2056+
"newNumber": 3,
2057+
"oldNumber": 4,
20302058
"type": "context",
20312059
},
20322060
Object {
2033-
"content": "- return typeof rootjQuery.ready !== \\"undefined\\" ?",
2034-
"newNumber": undefined,
2035-
"oldNumber": 104,
2036-
"type": "delete",
2061+
"content": " \\"./var/hasOwn\\",",
2062+
"newNumber": 4,
2063+
"oldNumber": 5,
2064+
"type": "context",
20372065
},
20382066
Object {
2039-
"content": "+ return rootjQuery.ready !== undefined ?",
2040-
"newNumber": 104,
2041-
"oldNumber": undefined,
2042-
"type": "insert",
2067+
"content": " \\"./var/slice\\",",
2068+
"newNumber": 5,
2069+
"oldNumber": 6,
2070+
"type": "context",
20432071
},
20442072
],
2045-
"newStartLine": 101,
2046-
"oldStartLine": 101,
2073+
"newStartLine": 1,
2074+
"oldStartLine": 1,
2075+
"oldStartLine2": null,
2076+
},
2077+
],
2078+
"checksumAfter": "6183f70",
2079+
"checksumBefore": "7336f4d",
2080+
"deletedLines": 1,
2081+
"isCombined": false,
2082+
"isGitDiff": true,
2083+
"language": "js",
2084+
"mode": "100644",
2085+
"newName": "src/event.js",
2086+
"oldName": "src/event.js",
2087+
},
2088+
]
2089+
`);
2090+
});
2091+
2092+
it('should work when `diffMaxChanges` is set and excedeed, and `diffTooBigMessage` is set', () => {
2093+
const diff =
2094+
'diff --git a/src/core/init.js b/src/core/init.js\n' +
2095+
'index e49196a..50f310c 100644\n' +
2096+
'--- a/src/core/init.js\n' +
2097+
'+++ b/src/core/init.js\n' +
2098+
'@@ -101,7 +101,7 @@ var rootjQuery,\n' +
2099+
' // HANDLE: $(function)\n' +
2100+
' // Shortcut for document ready\n' +
2101+
' } else if ( jQuery.isFunction( selector ) ) {\n' +
2102+
'- return typeof rootjQuery.ready !== "undefined" ?\n' +
2103+
'+ return rootjQuery.ready !== undefined ?\n' +
2104+
' rootjQuery.ready( selector ) :\n' +
2105+
' // Execute immediately if ready is not present\n' +
2106+
' selector( jQuery );\n' +
2107+
'diff --git a/src/event.js b/src/event.js\n' +
2108+
'index 7336f4d..6183f70 100644\n' +
2109+
'--- a/src/event.js\n' +
2110+
'+++ b/src/event.js\n' +
2111+
'@@ -1,6 +1,5 @@\n' +
2112+
' define([\n' +
2113+
' "./core",\n' +
2114+
'- "./var/strundefined",\n' +
2115+
' "./var/rnotwhite",\n' +
2116+
' "./var/hasOwn",\n' +
2117+
' "./var/slice",\n';
2118+
const result = parse(diff, { diffMaxChanges: 1, diffTooBigMessage: (i: number) => `Custom ${i}` });
2119+
expect(result).toMatchInlineSnapshot(`
2120+
Array [
2121+
Object {
2122+
"addedLines": 0,
2123+
"blocks": Array [
2124+
Object {
2125+
"header": "Custom 0",
2126+
"lines": Array [],
2127+
"newStartLine": 0,
2128+
"oldStartLine": 0,
20472129
"oldStartLine2": null,
20482130
},
20492131
],
20502132
"checksumAfter": "50f310c",
20512133
"checksumBefore": "e49196a",
2052-
"deletedLines": 1,
2134+
"deletedLines": 0,
20532135
"isCombined": false,
20542136
"isGitDiff": true,
20552137
"isTooBig": true,

src/__tests__/line-by-line-tests.ts

Lines changed: 12 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -21,39 +21,6 @@ describe('LineByLineRenderer', () => {
2121
});
2222
});
2323

24-
describe('_generateTooBigDiff', () => {
25-
it('should return a diff with default "too big" message when no `diffTooBigMessage` is defined', () => {
26-
const hoganUtils = new HoganJsUtils({});
27-
const lineByLineRenderer = new LineByLineRenderer(hoganUtils, {});
28-
const fileHtml = lineByLineRenderer.generateTooBigDiff(0);
29-
expect(fileHtml).toMatchInlineSnapshot(`
30-
"<tr>
31-
<td class=\\"d2h-info\\">
32-
<div class=\\"d2h-code-line d2h-info\\">
33-
Diff too big to be displayed
34-
</div>
35-
</td>
36-
</tr>"
37-
`);
38-
});
39-
40-
it('should return a diff with custom "too big" message when `diffTooBigMessage` is defined', () => {
41-
const hoganUtils = new HoganJsUtils({});
42-
const customMessageFn = (fIndex: number) => `Custom message for file ${fIndex} diff too big`;
43-
const lineByLineRenderer = new LineByLineRenderer(hoganUtils, { diffTooBigMessage: customMessageFn });
44-
const fileHtml = lineByLineRenderer.generateTooBigDiff(0);
45-
expect(fileHtml).toMatchInlineSnapshot(`
46-
"<tr>
47-
<td class=\\"d2h-info\\">
48-
<div class=\\"d2h-code-line d2h-info\\">
49-
Custom message for file 0 diff too big
50-
</div>
51-
</td>
52-
</tr>"
53-
`);
54-
});
55-
});
56-
5724
describe('makeLineHtml', () => {
5825
it('should work for insertions', () => {
5926
const hoganUtils = new HoganJsUtils({});
@@ -539,10 +506,18 @@ describe('LineByLineRenderer', () => {
539506
`);
540507
});
541508

542-
it('should work for too big file diff and no custom message fn', () => {
509+
it('should work for too big file diff', () => {
543510
const exampleJson = [
544511
{
545-
blocks: [],
512+
blocks: [
513+
{
514+
header: '<a href="http://example.com">Custom link to render</a>',
515+
lines: [],
516+
newStartLine: 0,
517+
oldStartLine: 0,
518+
oldStartLine2: undefined,
519+
},
520+
],
546521
deletedLines: 0,
547522
addedLines: 0,
548523
oldName: 'sample',
@@ -576,63 +551,9 @@ describe('LineByLineRenderer', () => {
576551
<table class=\\"d2h-diff-table\\">
577552
<tbody class=\\"d2h-diff-tbody\\">
578553
<tr>
554+
<td class=\\"d2h-code-linenumber d2h-info\\"></td>
579555
<td class=\\"d2h-info\\">
580-
<div class=\\"d2h-code-line d2h-info\\">
581-
Diff too big to be displayed
582-
</div>
583-
</td>
584-
</tr>
585-
</tbody>
586-
</table>
587-
</div>
588-
</div>
589-
</div>
590-
</div>"
591-
`);
592-
});
593-
594-
it('should work for too big file diff and custom message fn', () => {
595-
const exampleJson = [
596-
{
597-
blocks: [],
598-
deletedLines: 0,
599-
addedLines: 0,
600-
oldName: 'sample',
601-
language: 'js',
602-
newName: 'sample',
603-
isCombined: false,
604-
isGitDiff: false,
605-
isTooBig: true,
606-
},
607-
];
608-
609-
const hoganUtils = new HoganJsUtils({});
610-
const customMessageFn = (fIndex: number) => `Custom message for file ${fIndex} diff too big`;
611-
const lineByLineRenderer = new LineByLineRenderer(hoganUtils, { diffTooBigMessage: customMessageFn });
612-
const html = lineByLineRenderer.render(exampleJson);
613-
expect(html).toMatchInlineSnapshot(`
614-
"<div class=\\"d2h-wrapper\\">
615-
<div id=\\"d2h-675094\\" class=\\"d2h-file-wrapper\\" data-lang=\\"js\\">
616-
<div class=\\"d2h-file-header\\">
617-
<span class=\\"d2h-file-name-wrapper\\">
618-
<svg aria-hidden=\\"true\\" class=\\"d2h-icon\\" height=\\"16\\" version=\\"1.1\\" viewBox=\\"0 0 12 16\\" width=\\"12\\">
619-
<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>
620-
</svg> <span class=\\"d2h-file-name\\">sample</span>
621-
<span class=\\"d2h-tag d2h-changed d2h-changed-tag\\">CHANGED</span></span>
622-
<label class=\\"d2h-file-collapse\\">
623-
<input class=\\"d2h-file-collapse-input\\" type=\\"checkbox\\" name=\\"viewed\\" value=\\"viewed\\">
624-
Viewed
625-
</label>
626-
</div>
627-
<div class=\\"d2h-file-diff\\">
628-
<div class=\\"d2h-code-wrapper\\">
629-
<table class=\\"d2h-diff-table\\">
630-
<tbody class=\\"d2h-diff-tbody\\">
631-
<tr>
632-
<td class=\\"d2h-info\\">
633-
<div class=\\"d2h-code-line d2h-info\\">
634-
Custom message for file 0 diff too big
635-
</div>
556+
<div class=\\"d2h-code-line d2h-info\\"><a href=\\"http://example.com\\">Custom link to render</a></div>
636557
</td>
637558
</tr>
638559
</tbody>

0 commit comments

Comments
 (0)