import { parse, html } from "../diff2html"; import { DiffFile, LineType, OutputFormatType } from "../types"; const diffExample1 = "diff --git a/sample b/sample\n" + "index 0000001..0ddf2ba\n" + "--- a/sample\n" + "+++ b/sample\n" + "@@ -1 +1 @@\n" + "-test\n" + "+test1\n"; const jsonExample1: DiffFile[] = [ { blocks: [ { lines: [ { content: "-test", type: LineType.DELETE, oldNumber: 1, newNumber: undefined }, { content: "+test1", type: LineType.INSERT, oldNumber: undefined, newNumber: 1 } ], oldStartLine: 1, oldStartLine2: undefined, newStartLine: 1, header: "@@ -1 +1 @@" } ], deletedLines: 1, addedLines: 1, checksumBefore: "0000001", checksumAfter: "0ddf2ba", oldName: "sample", newName: "sample", language: "", isCombined: false, isGitDiff: true } ]; describe("Diff2Html", () => { describe("getJsonFromDiff", () => { it("should parse simple diff to json", () => { const diff = "diff --git a/sample b/sample\n" + "index 0000001..0ddf2ba\n" + "--- a/sample\n" + "+++ b/sample\n" + "@@ -1 +1 @@\n" + "-test\n" + "+test1\n"; const result = parse(diff); expect(result).toMatchInlineSnapshot(` Array [ Object { "addedLines": 1, "blocks": Array [ Object { "header": "@@ -1 +1 @@", "lines": Array [ Object { "content": "-test", "newNumber": undefined, "oldNumber": 1, "type": "delete", }, Object { "content": "+test1", "newNumber": 1, "oldNumber": undefined, "type": "insert", }, ], "newStartLine": 1, "oldStartLine": 1, "oldStartLine2": null, }, ], "checksumAfter": "0ddf2ba", "checksumBefore": "0000001", "deletedLines": 1, "isCombined": false, "isGitDiff": true, "language": undefined, "newName": "sample", "oldName": "sample", }, ] `); }); // Test case for issue #49 it("should parse diff with added EOF", () => { const diff = "diff --git a/sample.scala b/sample.scala\n" + "index b583263..8b2fc3e 100644\n" + "--- a/b583263..8b2fc3e\n" + "+++ b/8b2fc3e\n" + "@@ -50,5 +50,7 @@ case class Response[+A](value: Option[A],\n" + " object ResponseErrorCode extends JsonEnumeration {\n" + " val NoError, ServiceError, JsonError,\n" + " InvalidPermissions, MissingPermissions, GenericError,\n" + "- TokenRevoked, MissingToken = Value\n" + "-}\n" + "\\ No newline at end of file\n" + "+ TokenRevoked, MissingToken,\n" + "+ IndexLock, RepositoryError, NotValidRepo, PullRequestNotMergeable, BranchError,\n" + "+ PluginError, CodeParserError, EngineError = Value\n" + "+}\n"; const result = parse(diff); expect(result).toMatchInlineSnapshot(` Array [ Object { "addedLines": 4, "blocks": Array [ Object { "header": "@@ -50,5 +50,7 @@ case class Response[+A](value: Option[A],", "lines": Array [ Object { "content": " object ResponseErrorCode extends JsonEnumeration {", "newNumber": 50, "oldNumber": 50, "type": "context", }, Object { "content": " val NoError, ServiceError, JsonError,", "newNumber": 51, "oldNumber": 51, "type": "context", }, Object { "content": " InvalidPermissions, MissingPermissions, GenericError,", "newNumber": 52, "oldNumber": 52, "type": "context", }, Object { "content": "- TokenRevoked, MissingToken = Value", "newNumber": undefined, "oldNumber": 53, "type": "delete", }, Object { "content": "-}", "newNumber": undefined, "oldNumber": 54, "type": "delete", }, Object { "content": "+ TokenRevoked, MissingToken,", "newNumber": 53, "oldNumber": undefined, "type": "insert", }, Object { "content": "+ IndexLock, RepositoryError, NotValidRepo, PullRequestNotMergeable, BranchError,", "newNumber": 54, "oldNumber": undefined, "type": "insert", }, Object { "content": "+ PluginError, CodeParserError, EngineError = Value", "newNumber": 55, "oldNumber": undefined, "type": "insert", }, Object { "content": "+}", "newNumber": 56, "oldNumber": undefined, "type": "insert", }, ], "newStartLine": 50, "oldStartLine": 50, "oldStartLine2": null, }, ], "checksumAfter": "8b2fc3e", "checksumBefore": "b583263", "deletedLines": 2, "isCombined": false, "isGitDiff": true, "language": "8b2fc3e", "mode": "100644", "newName": "8b2fc3e", "oldName": "b583263..8b2fc3e", }, ] `); }); it("should generate pretty line by line html from diff", () => { const result = html(diffExample1, { drawFileList: false }); expect(result).toMatchInlineSnapshot(` "
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
test1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
test1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
test1
|
|
@@ -1 +1 @@
|
|
| 1 |
-
|
| 1 |
+
test1
|
|
@@ -1 +1 @@
|
|
| 1 |
-
|
| 1 |
+
test1
|
|
@@ -1 +1 @@
|
|
| 1 |
-
|
| 1 |
+
test1
|
Use the following format for additions: ` - VERSION: [feature/patch (if applicable)] Short description of change. Links to relevant issues/PRs.`\n' +
' $a="
|