import { render } from "../file-list-renderer"; import HoganJsUtils from "../hoganjs-utils"; describe("FileListPrinter", () => { describe("generateFileList", () => { it("should expose old and new files to templates", () => { const hoganUtils = new HoganJsUtils({ rawTemplates: { "file-summary-wrapper": "{{{files}}}", "file-summary-line": "{{oldName}}, {{newName}}, {{fileName}}" } }); const files = [ { isCombined: false, isGitDiff: false, blocks: [], addedLines: 12, deletedLines: 41, language: "js", oldName: "my/file/name.js", newName: "my/file/name.js" }, { isCombined: false, isGitDiff: false, blocks: [], addedLines: 12, deletedLines: 41, language: "js", oldName: "my/file/name1.js", newName: "my/file/name2.js" }, { isCombined: false, isGitDiff: false, blocks: [], addedLines: 12, deletedLines: 0, language: "js", oldName: "dev/null", newName: "my/file/name.js", isNew: true }, { isCombined: false, isGitDiff: false, blocks: [], addedLines: 0, deletedLines: 41, language: "js", oldName: "my/file/name.js", newName: "dev/null", isDeleted: true } ]; const fileHtml = render(files, hoganUtils); expect(fileHtml).toMatchInlineSnapshot(` "my/file/name.js, my/file/name.js, my/file/name.js my/file/name1.js, my/file/name2.js, my/file/{name1.js → name2.js} dev/null, my/file/name.js, my/file/name.js my/file/name.js, dev/null, my/file/name.js" `); }); it("should work for all kinds of files", () => { const hoganUtils = new HoganJsUtils({}); const files = [ { isCombined: false, isGitDiff: false, blocks: [], addedLines: 12, deletedLines: 41, language: "js", oldName: "my/file/name.js", newName: "my/file/name.js" }, { isCombined: false, isGitDiff: false, blocks: [], addedLines: 12, deletedLines: 41, language: "js", oldName: "my/file/name1.js", newName: "my/file/name2.js" }, { isCombined: false, isGitDiff: false, blocks: [], addedLines: 12, deletedLines: 0, language: "js", oldName: "dev/null", newName: "my/file/name.js", isNew: true }, { isCombined: false, isGitDiff: false, blocks: [], addedLines: 0, deletedLines: 41, language: "js", oldName: "my/file/name.js", newName: "dev/null", isDeleted: true } ]; const fileHtml = render(files, hoganUtils); expect(fileHtml).toMatchInlineSnapshot(` "