update tests
This commit is contained in:
parent
08f14e2db1
commit
a65a3b9562
3 changed files with 145 additions and 233 deletions
|
|
@ -1976,7 +1976,7 @@ describe('DiffParser', () => {
|
|||
`);
|
||||
});
|
||||
|
||||
it('should stop parsing file and mark it as `isTooBig` if `diffMaxChanges` is set and excedeed', () => {
|
||||
it('should work when `diffMaxChanges` is set and excedeed', () => {
|
||||
const diff =
|
||||
'diff --git a/src/core/init.js b/src/core/init.js\n' +
|
||||
'index e49196a..50f310c 100644\n' +
|
||||
|
|
@ -2006,52 +2006,134 @@ describe('DiffParser', () => {
|
|||
expect(result).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"addedLines": 1,
|
||||
"addedLines": 0,
|
||||
"blocks": Array [
|
||||
Object {
|
||||
"header": "@@ -101,7 +101,7 @@ var rootjQuery,",
|
||||
"lines": Array [
|
||||
Object {
|
||||
"content": " // HANDLE: $(function)",
|
||||
"newNumber": 101,
|
||||
"oldNumber": 101,
|
||||
"type": "context",
|
||||
},
|
||||
Object {
|
||||
"content": " // Shortcut for document ready",
|
||||
"newNumber": 102,
|
||||
"oldNumber": 102,
|
||||
"type": "context",
|
||||
},
|
||||
Object {
|
||||
"content": " } else if ( jQuery.isFunction( selector ) ) {",
|
||||
"newNumber": 103,
|
||||
"oldNumber": 103,
|
||||
"type": "context",
|
||||
},
|
||||
Object {
|
||||
"content": "- return typeof rootjQuery.ready !== \\"undefined\\" ?",
|
||||
"newNumber": undefined,
|
||||
"oldNumber": 104,
|
||||
"type": "delete",
|
||||
},
|
||||
Object {
|
||||
"content": "+ return rootjQuery.ready !== undefined ?",
|
||||
"newNumber": 104,
|
||||
"oldNumber": undefined,
|
||||
"type": "insert",
|
||||
},
|
||||
],
|
||||
"newStartLine": 101,
|
||||
"oldStartLine": 101,
|
||||
"header": "Diff too big to be displayed",
|
||||
"lines": Array [],
|
||||
"newStartLine": 0,
|
||||
"oldStartLine": 0,
|
||||
"oldStartLine2": null,
|
||||
},
|
||||
],
|
||||
"checksumAfter": "50f310c",
|
||||
"checksumBefore": "e49196a",
|
||||
"deletedLines": 0,
|
||||
"isCombined": false,
|
||||
"isGitDiff": true,
|
||||
"isTooBig": true,
|
||||
"language": "js",
|
||||
"mode": "100644",
|
||||
"newName": "src/core/init.js",
|
||||
"oldName": "src/core/init.js",
|
||||
},
|
||||
Object {
|
||||
"addedLines": 0,
|
||||
"blocks": Array [
|
||||
Object {
|
||||
"header": "@@ -1,6 +1,5 @@",
|
||||
"lines": Array [
|
||||
Object {
|
||||
"content": " define([",
|
||||
"newNumber": 1,
|
||||
"oldNumber": 1,
|
||||
"type": "context",
|
||||
},
|
||||
Object {
|
||||
"content": " \\"./core\\",",
|
||||
"newNumber": 2,
|
||||
"oldNumber": 2,
|
||||
"type": "context",
|
||||
},
|
||||
Object {
|
||||
"content": "- \\"./var/strundefined\\",",
|
||||
"newNumber": undefined,
|
||||
"oldNumber": 3,
|
||||
"type": "delete",
|
||||
},
|
||||
Object {
|
||||
"content": " \\"./var/rnotwhite\\",",
|
||||
"newNumber": 3,
|
||||
"oldNumber": 4,
|
||||
"type": "context",
|
||||
},
|
||||
Object {
|
||||
"content": " \\"./var/hasOwn\\",",
|
||||
"newNumber": 4,
|
||||
"oldNumber": 5,
|
||||
"type": "context",
|
||||
},
|
||||
Object {
|
||||
"content": " \\"./var/slice\\",",
|
||||
"newNumber": 5,
|
||||
"oldNumber": 6,
|
||||
"type": "context",
|
||||
},
|
||||
],
|
||||
"newStartLine": 1,
|
||||
"oldStartLine": 1,
|
||||
"oldStartLine2": null,
|
||||
},
|
||||
],
|
||||
"checksumAfter": "6183f70",
|
||||
"checksumBefore": "7336f4d",
|
||||
"deletedLines": 1,
|
||||
"isCombined": false,
|
||||
"isGitDiff": true,
|
||||
"language": "js",
|
||||
"mode": "100644",
|
||||
"newName": "src/event.js",
|
||||
"oldName": "src/event.js",
|
||||
},
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it('should work when `diffMaxChanges` is set and excedeed, and `diffTooBigMessage` is set', () => {
|
||||
const diff =
|
||||
'diff --git a/src/core/init.js b/src/core/init.js\n' +
|
||||
'index e49196a..50f310c 100644\n' +
|
||||
'--- a/src/core/init.js\n' +
|
||||
'+++ b/src/core/init.js\n' +
|
||||
'@@ -101,7 +101,7 @@ var rootjQuery,\n' +
|
||||
' // HANDLE: $(function)\n' +
|
||||
' // Shortcut for document ready\n' +
|
||||
' } else if ( jQuery.isFunction( selector ) ) {\n' +
|
||||
'- return typeof rootjQuery.ready !== "undefined" ?\n' +
|
||||
'+ return rootjQuery.ready !== undefined ?\n' +
|
||||
' rootjQuery.ready( selector ) :\n' +
|
||||
' // Execute immediately if ready is not present\n' +
|
||||
' selector( jQuery );\n' +
|
||||
'diff --git a/src/event.js b/src/event.js\n' +
|
||||
'index 7336f4d..6183f70 100644\n' +
|
||||
'--- a/src/event.js\n' +
|
||||
'+++ b/src/event.js\n' +
|
||||
'@@ -1,6 +1,5 @@\n' +
|
||||
' define([\n' +
|
||||
' "./core",\n' +
|
||||
'- "./var/strundefined",\n' +
|
||||
' "./var/rnotwhite",\n' +
|
||||
' "./var/hasOwn",\n' +
|
||||
' "./var/slice",\n';
|
||||
const result = parse(diff, { diffMaxChanges: 1, diffTooBigMessage: (i: number) => `Custom ${i}` });
|
||||
expect(result).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Object {
|
||||
"addedLines": 0,
|
||||
"blocks": Array [
|
||||
Object {
|
||||
"header": "Custom 0",
|
||||
"lines": Array [],
|
||||
"newStartLine": 0,
|
||||
"oldStartLine": 0,
|
||||
"oldStartLine2": null,
|
||||
},
|
||||
],
|
||||
"checksumAfter": "50f310c",
|
||||
"checksumBefore": "e49196a",
|
||||
"deletedLines": 0,
|
||||
"isCombined": false,
|
||||
"isGitDiff": true,
|
||||
"isTooBig": true,
|
||||
"language": "js",
|
||||
"mode": "100644",
|
||||
|
|
|
|||
|
|
@ -21,39 +21,6 @@ describe('LineByLineRenderer', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('_generateTooBigDiff', () => {
|
||||
it('should return a diff with default "too big" message when no `diffTooBigMessage` is defined', () => {
|
||||
const hoganUtils = new HoganJsUtils({});
|
||||
const lineByLineRenderer = new LineByLineRenderer(hoganUtils, {});
|
||||
const fileHtml = lineByLineRenderer.generateTooBigDiff(0);
|
||||
expect(fileHtml).toMatchInlineSnapshot(`
|
||||
"<tr>
|
||||
<td class=\\"d2h-info\\">
|
||||
<div class=\\"d2h-code-line d2h-info\\">
|
||||
Diff too big to be displayed
|
||||
</div>
|
||||
</td>
|
||||
</tr>"
|
||||
`);
|
||||
});
|
||||
|
||||
it('should return a diff with custom "too big" message when `diffTooBigMessage` is defined', () => {
|
||||
const hoganUtils = new HoganJsUtils({});
|
||||
const customMessageFn = (fIndex: number) => `Custom message for file ${fIndex} diff too big`;
|
||||
const lineByLineRenderer = new LineByLineRenderer(hoganUtils, { diffTooBigMessage: customMessageFn });
|
||||
const fileHtml = lineByLineRenderer.generateTooBigDiff(0);
|
||||
expect(fileHtml).toMatchInlineSnapshot(`
|
||||
"<tr>
|
||||
<td class=\\"d2h-info\\">
|
||||
<div class=\\"d2h-code-line d2h-info\\">
|
||||
Custom message for file 0 diff too big
|
||||
</div>
|
||||
</td>
|
||||
</tr>"
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe('makeLineHtml', () => {
|
||||
it('should work for insertions', () => {
|
||||
const hoganUtils = new HoganJsUtils({});
|
||||
|
|
@ -539,10 +506,18 @@ describe('LineByLineRenderer', () => {
|
|||
`);
|
||||
});
|
||||
|
||||
it('should work for too big file diff and no custom message fn', () => {
|
||||
it('should work for too big file diff', () => {
|
||||
const exampleJson = [
|
||||
{
|
||||
blocks: [],
|
||||
blocks: [
|
||||
{
|
||||
header: '<a href="http://example.com">Custom link to render</a>',
|
||||
lines: [],
|
||||
newStartLine: 0,
|
||||
oldStartLine: 0,
|
||||
oldStartLine2: undefined,
|
||||
},
|
||||
],
|
||||
deletedLines: 0,
|
||||
addedLines: 0,
|
||||
oldName: 'sample',
|
||||
|
|
@ -576,63 +551,9 @@ describe('LineByLineRenderer', () => {
|
|||
<table class=\\"d2h-diff-table\\">
|
||||
<tbody class=\\"d2h-diff-tbody\\">
|
||||
<tr>
|
||||
<td class=\\"d2h-code-linenumber d2h-info\\"></td>
|
||||
<td class=\\"d2h-info\\">
|
||||
<div class=\\"d2h-code-line d2h-info\\">
|
||||
Diff too big to be displayed
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>"
|
||||
`);
|
||||
});
|
||||
|
||||
it('should work for too big file diff and custom message fn', () => {
|
||||
const exampleJson = [
|
||||
{
|
||||
blocks: [],
|
||||
deletedLines: 0,
|
||||
addedLines: 0,
|
||||
oldName: 'sample',
|
||||
language: 'js',
|
||||
newName: 'sample',
|
||||
isCombined: false,
|
||||
isGitDiff: false,
|
||||
isTooBig: true,
|
||||
},
|
||||
];
|
||||
|
||||
const hoganUtils = new HoganJsUtils({});
|
||||
const customMessageFn = (fIndex: number) => `Custom message for file ${fIndex} diff too big`;
|
||||
const lineByLineRenderer = new LineByLineRenderer(hoganUtils, { diffTooBigMessage: customMessageFn });
|
||||
const html = lineByLineRenderer.render(exampleJson);
|
||||
expect(html).toMatchInlineSnapshot(`
|
||||
"<div class=\\"d2h-wrapper\\">
|
||||
<div id=\\"d2h-675094\\" class=\\"d2h-file-wrapper\\" data-lang=\\"js\\">
|
||||
<div class=\\"d2h-file-header\\">
|
||||
<span class=\\"d2h-file-name-wrapper\\">
|
||||
<svg aria-hidden=\\"true\\" class=\\"d2h-icon\\" height=\\"16\\" version=\\"1.1\\" viewBox=\\"0 0 12 16\\" width=\\"12\\">
|
||||
<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>
|
||||
</svg> <span class=\\"d2h-file-name\\">sample</span>
|
||||
<span class=\\"d2h-tag d2h-changed d2h-changed-tag\\">CHANGED</span></span>
|
||||
<label class=\\"d2h-file-collapse\\">
|
||||
<input class=\\"d2h-file-collapse-input\\" type=\\"checkbox\\" name=\\"viewed\\" value=\\"viewed\\">
|
||||
Viewed
|
||||
</label>
|
||||
</div>
|
||||
<div class=\\"d2h-file-diff\\">
|
||||
<div class=\\"d2h-code-wrapper\\">
|
||||
<table class=\\"d2h-diff-table\\">
|
||||
<tbody class=\\"d2h-diff-tbody\\">
|
||||
<tr>
|
||||
<td class=\\"d2h-info\\">
|
||||
<div class=\\"d2h-code-line d2h-info\\">
|
||||
Custom message for file 0 diff too big
|
||||
</div>
|
||||
<div class=\\"d2h-code-line d2h-info\\"><a href=\\"http://example.com\\">Custom link to render</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -24,45 +24,6 @@ describe('SideBySideRenderer', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('_generateTooBigDiff', () => {
|
||||
it('should return a diff with default "too big" message when no `diffTooBigMessage` is defined', () => {
|
||||
const hoganUtils = new HoganJsUtils({});
|
||||
const sideBySideRenderer = new SideBySideRenderer(hoganUtils, {});
|
||||
const fileHtml = sideBySideRenderer.generateTooBigDiff(0);
|
||||
expect(fileHtml).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"left": "<tr>
|
||||
<td class=\\"d2h-info\\">
|
||||
<div class=\\"d2h-code-side-line d2h-info\\">
|
||||
Diff too big to be displayed
|
||||
</div>
|
||||
</td>
|
||||
</tr>",
|
||||
"right": "",
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
it('should return a diff with custom "too big" message when `diffTooBigMessage` is defined', () => {
|
||||
const hoganUtils = new HoganJsUtils({});
|
||||
const customMessageFn = (fIndex: number) => `Custom message for file ${fIndex} diff too big`;
|
||||
const sideBySideRenderer = new SideBySideRenderer(hoganUtils, { diffTooBigMessage: customMessageFn });
|
||||
const fileHtml = sideBySideRenderer.generateTooBigDiff(0);
|
||||
expect(fileHtml).toMatchInlineSnapshot(`
|
||||
Object {
|
||||
"left": "<tr>
|
||||
<td class=\\"d2h-info\\">
|
||||
<div class=\\"d2h-code-side-line d2h-info\\">
|
||||
Custom message for file 0 diff too big
|
||||
</div>
|
||||
</td>
|
||||
</tr>",
|
||||
"right": "",
|
||||
}
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe('generateSideBySideFileHtml', () => {
|
||||
it('should generate lines with the right prefixes', () => {
|
||||
const hoganUtils = new HoganJsUtils({});
|
||||
|
|
@ -446,10 +407,18 @@ describe('SideBySideRenderer', () => {
|
|||
`);
|
||||
});
|
||||
|
||||
it('should work for too big file diff and no custom message fn', () => {
|
||||
it('should work for too big file diff', () => {
|
||||
const exampleJson = [
|
||||
{
|
||||
blocks: [],
|
||||
blocks: [
|
||||
{
|
||||
header: '<a href="http://example.com">Custom link to render</a>',
|
||||
lines: [],
|
||||
newStartLine: 0,
|
||||
oldStartLine: 0,
|
||||
oldStartLine2: undefined,
|
||||
},
|
||||
],
|
||||
deletedLines: 0,
|
||||
addedLines: 0,
|
||||
oldName: 'sample',
|
||||
|
|
@ -484,89 +453,29 @@ describe('SideBySideRenderer', () => {
|
|||
<table class=\\"d2h-diff-table\\">
|
||||
<tbody class=\\"d2h-diff-tbody\\">
|
||||
<tr>
|
||||
<td class=\\"d2h-code-side-linenumber d2h-info\\"></td>
|
||||
<td class=\\"d2h-info\\">
|
||||
<div class=\\"d2h-code-side-line d2h-info\\">
|
||||
Diff too big to be displayed
|
||||
</div>
|
||||
<div class=\\"d2h-code-side-line d2h-info\\"><a href=\\"http://example.com\\">Custom link to render</a></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class=\\"d2h-file-side-diff\\">
|
||||
<div class=\\"d2h-code-wrapper\\">
|
||||
<table class=\\"d2h-diff-table\\">
|
||||
<tbody class=\\"d2h-diff-tbody\\">
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>"
|
||||
`);
|
||||
});
|
||||
|
||||
it('should work for too big file diff and custom message fn', () => {
|
||||
const exampleJson = [
|
||||
{
|
||||
blocks: [],
|
||||
deletedLines: 0,
|
||||
addedLines: 0,
|
||||
oldName: 'sample',
|
||||
language: 'js',
|
||||
newName: 'sample',
|
||||
isCombined: false,
|
||||
isGitDiff: false,
|
||||
isTooBig: true,
|
||||
},
|
||||
];
|
||||
|
||||
const hoganUtils = new HoganJsUtils({});
|
||||
const customMessageFn = (fIndex: number) => `Custom message for file ${fIndex} diff too big`;
|
||||
const sideBySideRenderer = new SideBySideRenderer(hoganUtils, { diffTooBigMessage: customMessageFn });
|
||||
const html = sideBySideRenderer.render(exampleJson);
|
||||
expect(html).toMatchInlineSnapshot(`
|
||||
"<div class=\\"d2h-wrapper\\">
|
||||
<div id=\\"d2h-675094\\" class=\\"d2h-file-wrapper\\" data-lang=\\"js\\">
|
||||
<div class=\\"d2h-file-header\\">
|
||||
<span class=\\"d2h-file-name-wrapper\\">
|
||||
<svg aria-hidden=\\"true\\" class=\\"d2h-icon\\" height=\\"16\\" version=\\"1.1\\" viewBox=\\"0 0 12 16\\" width=\\"12\\">
|
||||
<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>
|
||||
</svg> <span class=\\"d2h-file-name\\">sample</span>
|
||||
<span class=\\"d2h-tag d2h-changed d2h-changed-tag\\">CHANGED</span></span>
|
||||
<label class=\\"d2h-file-collapse\\">
|
||||
<input class=\\"d2h-file-collapse-input\\" type=\\"checkbox\\" name=\\"viewed\\" value=\\"viewed\\">
|
||||
Viewed
|
||||
</label>
|
||||
</div>
|
||||
<div class=\\"d2h-files-diff\\">
|
||||
<div class=\\"d2h-file-side-diff\\">
|
||||
<div class=\\"d2h-code-wrapper\\">
|
||||
<table class=\\"d2h-diff-table\\">
|
||||
<tbody class=\\"d2h-diff-tbody\\">
|
||||
<tr>
|
||||
<td class=\\"d2h-code-side-linenumber d2h-info\\"></td>
|
||||
<td class=\\"d2h-info\\">
|
||||
<div class=\\"d2h-code-side-line d2h-info\\">
|
||||
Custom message for file 0 diff too big
|
||||
</div>
|
||||
<div class=\\"d2h-code-side-line d2h-info\\"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class=\\"d2h-file-side-diff\\">
|
||||
<div class=\\"d2h-code-wrapper\\">
|
||||
<table class=\\"d2h-diff-table\\">
|
||||
<tbody class=\\"d2h-diff-tbody\\">
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>"
|
||||
|
|
|
|||
Loading…
Reference in a new issue