UNPKG

adr

Version:

轻量级架构记录工具 - Command-line tools for working with Architecture Decision Records

117 lines (109 loc) 8.92 kB
let sinon = require('sinon'); let fs = require('fs'); let walkSync = require('walk-sync'); let findInFiles = require('find-in-files'); import test from 'ava'; import ADR from '../index'; let Utils = ADR.Utils; let Config = ADR.Config; let adrTemplate = `# 1. 编写完整的单元测试 日期: 2017/11/22 ## 状态 2017-11-22 提议 2017-11-26 已完成 `; let adrTemplateAsciidoc = `= 1. 编写完整的单元测试 日期: 2017/11/22 == 状态 2017-11-22 提议 2017-11-26 已完成 `; let adrOptions = JSON.stringify({ path: './', language: 'zh-cn' }); test('ADR: list Markdown', t => { let findSpy = sinon.stub(findInFiles, 'find').returns({ then: cb => { cb({ 'docs/adr/001-filename.md': {} }); } }); let ADRGetSavePathSpy = sinon.stub(Config, 'getSavePath').returns('./'); let i18nSpy = sinon.stub(Utils, 'getI18n').returns({ decision: '决策', modifiedDate: '上次修改时间', lastStatus: '最后状态', logSavePath: '保存路径:' }); let consoleSpy = sinon.stub(console, 'log'); let fsReadSpy = sinon.stub(fs, 'readFileSync') .onCall(0).returns(adrTemplate) .onCall(1).returns(adrTemplate) .onCall(2).returns(JSON.stringify(adrOptions)) .onCall(3).returns(JSON.stringify(adrOptions)); let entriesSpy = sinon.stub(walkSync, 'entries').returns([{ relativePath: '001-filename.md', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 } ]); ADR.search('测试'); t.deepEqual(consoleSpy.calledWith(`╔════════════╤═══════════════════╗ ║ 决策 │ 最后状态 ║ ╟────────────┼───────────────────╢ ║ 1.filename │ 2017-11-26 已完成 ║ ╚════════════╧═══════════════════╝ `), true); findSpy.restore(); ADRGetSavePathSpy.restore(); entriesSpy.restore(); consoleSpy.restore(); fsReadSpy.restore(); i18nSpy.restore(); }); test('ADR: list Asciidoc', t => { let findSpy = sinon.stub(findInFiles, 'find').returns({ then: cb => { cb({ 'docs/adr/001-filename.adpc': {} }); } }); let ADRGetDocExtensionSpy = sinon.stub(ADR.Config, 'getDocExtension').returns('adoc'); let ADRGetSavePathSpy = sinon.stub(Config, 'getSavePath').returns('./'); let i18nSpy = sinon.stub(Utils, 'getI18n').returns({ decision: '决策', modifiedDate: '上次修改时间', lastStatus: '最后状态', logSavePath: '保存路径:' }); let consoleSpy = sinon.stub(console, 'log'); let fsReadSpy = sinon.stub(fs, 'readFileSync') .onCall(0).returns(adrTemplateAsciidoc) .onCall(1).returns(adrTemplateAsciidoc) .onCall(2).returns(JSON.stringify(adrOptions)) .onCall(3).returns(JSON.stringify(adrOptions)); let entriesSpy = sinon.stub(walkSync, 'entries').returns([{ relativePath: '001-filename.adoc', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 } ]); ADR.search('测试'); t.deepEqual(consoleSpy.calledWith(`╔════════════╤═══════════════════╗ ║ 决策 │ 最后状态 ║ ╟────────────┼───────────────────╢ ║ 1.filename │ 2017-11-26 已完成 ║ ╚════════════╧═══════════════════╝ `), true); findSpy.restore(); ADRGetSavePathSpy.restore(); entriesSpy.restore(); consoleSpy.restore(); fsReadSpy.restore(); i18nSpy.restore(); ADRGetDocExtensionSpy.restore(); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHMvc2VhcmNoLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzVCLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN0QixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsSUFBSSxXQUFXLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0FBRTFDLE9BQU8sSUFBSSxNQUFNLEtBQUssQ0FBQTtBQUN0QixPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUE7QUFFMUIsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQTtBQUNyQixJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0FBRXZCLElBQUksV0FBVyxHQUFHOzs7Ozs7Ozs7Q0FTakIsQ0FBQTtBQUVELElBQUksbUJBQW1CLEdBQUc7Ozs7Ozs7OztDQVN6QixDQUFBO0FBRUQsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUM5QixJQUFJLEVBQUUsSUFBSTtJQUNWLFFBQVEsRUFBRSxPQUFPO0NBQ2xCLENBQUMsQ0FBQTtBQUVGLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsRUFBRTtJQUM3QixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDcEQsSUFBSSxFQUFFLEVBQUUsQ0FBQyxFQUFFO1lBQ1QsRUFBRSxDQUFDLEVBQUUsMEJBQTBCLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUN4QyxDQUFDO0tBQ0YsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1B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