UNPKG

adr

Version:

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

142 lines (130 loc) 9.17 kB
let sinon = require('sinon'); let fs = require('fs'); let walkSync = require('walk-sync'); let LRU = require('lru-cache'); import test from 'ava'; import ADR from '../index'; let mdTemplate = `# 1. 更友好的 CLI 日期: 2017-11-23 ## 状态 列表:提议/通过/完成/已弃用/已取代 2017-11-23 提议 2017-11-24 讨论 2017-11-25 通过 `; let asciodocTemplate = `= 1. 更友好的 CLI 日期: 2017-11-23 == 状态 列表:提议/通过/完成/已弃用/已取代 2017-11-23 提议 2017-11-24 讨论 2017-11-25 通过 `; test('ADR: logs Markdown', t => { let consoleSpy = sinon.stub(console, 'log'); let renameSpy = sinon.stub(fs, 'renameSync'); let cacheSpy = sinon.stub(LRU.prototype, 'get').returns({ path: 'some', language: 'zh-cn' }); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-DAF编写完整的单元测试.md', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: 'README.md', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 } ]); let fsReadSpy = sinon.stub(fs, 'readFileSync'); fsReadSpy .onCall(0).returns(mdTemplate) .onCall(1).returns(mdTemplate); let logs = ADR.logs('1'); t.deepEqual(logs, `╔════════════╤══════╗ ║ - │ - ║ ╟────────────┼──────╢ ║ 2017-11-23 │ 提议 ║ ╟────────────┼──────╢ ║ 2017-11-24 │ 讨论 ║ ╟────────────┼──────╢ ║ 2017-11-25 │ 通过 ║ ╚════════════╧══════╝ `); fsReadSpy.restore(); entriesSpy.restore(); consoleSpy.restore(); renameSpy.restore(); cacheSpy.restore(); }); test('ADR: logs Asciidoc', t => { let consoleSpy = sinon.stub(console, 'log'); let renameSpy = sinon.stub(fs, 'renameSync'); let cacheSpy = sinon.stub(LRU.prototype, 'get').returns({ path: 'some', language: 'zh-cn' }); let ADRGetDocExtensionSpy = sinon.stub(ADR.Config, 'getDocExtension').returns('adoc'); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-DAF编写完整的单元测试.adoc', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: 'README.adoc', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 } ]); let fsReadSpy = sinon.stub(fs, 'readFileSync'); fsReadSpy .onCall(0).returns(asciodocTemplate) .onCall(1).returns(asciodocTemplate); let logs = ADR.logs('1'); t.deepEqual(logs, `╔════════════╤══════╗ ║ - │ - ║ ╟────────────┼──────╢ ║ 2017-11-23 │ 提议 ║ ╟────────────┼──────╢ ║ 2017-11-24 │ 讨论 ║ ╟────────────┼──────╢ ║ 2017-11-25 │ 通过 ║ ╚════════════╧══════╝ `); fsReadSpy.restore(); entriesSpy.restore(); consoleSpy.restore(); renameSpy.restore(); cacheSpy.restore(); ADRGetDocExtensionSpy.restore(); }); test('ADR: logs handles non existent indexes', t => { let consoleSpy = sinon.stub(console, 'log'); let renameSpy = sinon.stub(fs, 'renameSync'); let cacheSpy = sinon.stub(LRU.prototype, 'get').returns({ path: 'some', language: 'zh-cn' }); let entriesSpy = sinon.stub(walkSync, 'entries').returns([]); let fsReadSpy = sinon.stub(fs, 'readFileSync'); let logs = ADR.logs('2'); t.deepEqual(logs, `File with index 2 does not exist.`); fsReadSpy.restore(); entriesSpy.restore(); consoleSpy.restore(); renameSpy.restore(); cacheSpy.restore(); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rlc3RzL2xvZ3Muc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDNUIsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ3RCLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUNuQyxJQUFJLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7QUFFOUIsT0FBTyxJQUFJLE1BQU0sS0FBSyxDQUFBO0FBQ3RCLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQTtBQUUxQixJQUFJLFVBQVUsR0FBRzs7Ozs7Ozs7Ozs7OztDQWFoQixDQUFBO0FBRUQsSUFBSSxnQkFBZ0IsR0FBRzs7Ozs7Ozs7Ozs7OztDQWF0QixDQUFBO0FBRUQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxFQUFFO0lBQzdCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzNDLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzVDLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEQsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDLENBQUE7SUFFRixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdkQ7WUFDRSxZQUFZLEVBQUUscUJBQXFCO1lBQ25DLFFBQVEsRUFBRSxzQ0FBc0M7WUFD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