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(` "
Files changed (4) hide show
  1. my/file/name.js +12 -41
  2. my/file/{name1.js → name2.js} +12 -41
  3. my/file/name.js +12 -0
  4. my/file/name.js +0 -41
" `); }); }); });