UNPKG

adr

Version:

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

140 lines (130 loc) 10.1 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 StatusHelper = ADR.StatusHelper; let mdTemplate = ` # 10. 更友好的 CLI 日期: 2017-11-23 ## 状态 2017-11-23 提议 2017-11-23 通过 `; let asciidocTemplate = ` = 10. 更友好的 CLI 日期: 2017-11-23 == 状态 2017-11-23 提议 2017-11-23 通过 `; test('ADR: list status', t => { let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-编写完整的单元测试.md', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 } ]); let cacheSpy = sinon.stub(LRU.prototype, 'get').returns({ path: 'some', language: 'zh-cn' }); let fsReadSpy = sinon.stub(fs, 'readFileSync') .onCall(0).returns(mdTemplate) .onCall(1).returns(mdTemplate); let status = StatusHelper.getAllStatus('./001-编写完整的单元测试.md'); t.deepEqual(status, [ '2017-11-23 提议', '2017-11-23 通过' ]); fsReadSpy.restore(); entriesSpy.restore(); cacheSpy.restore(); }); test('ADR:status helper set status', t => { let fsWriteSpy = sinon.stub(fs, 'writeFileSync'); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-编写完整的单元测试.md', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 } ]); let cacheSpy = sinon.stub(LRU.prototype, 'get').returns({ path: 'some', language: 'zh-cn' }); let fsReadSpy = sinon.stub(fs, 'readFileSync') .onCall(0).returns(mdTemplate) .onCall(1).returns(mdTemplate); StatusHelper.setStatus('./001-编写完整的单元测试.md', '完成'); // t.deepEqual(fsWriteSpy.calledWith('./001-编写完整的单元测试.md', '{"language":"en","path":"docs/adr/","prefix":"","digits":4}'), true) t.deepEqual(true, true); fsReadSpy.restore(); fsWriteSpy.restore(); entriesSpy.restore(); cacheSpy.restore(); }); test('ADR: list status ith Asciidoc', t => { let ADRGetDocExtensionSpy = sinon.stub(ADR.Config, 'getDocExtension').returns('adoc'); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-编写完整的单元测试.adoc', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 } ]); let cacheSpy = sinon.stub(LRU.prototype, 'get').returns({ path: 'some', language: 'zh-cn' }); let fsReadSpy = sinon.stub(fs, 'readFileSync') .onCall(0).returns(asciidocTemplate) .onCall(1).returns(asciidocTemplate); let status = StatusHelper.getAllStatus('./001-编写完整的单元测试.adoc'); t.deepEqual(status, [ '2017-11-23 提议', '2017-11-23 通过' ]); fsReadSpy.restore(); entriesSpy.restore(); cacheSpy.restore(); ADRGetDocExtensionSpy.restore(); }); test('ADR:status helper set status with Asciidoc', t => { let ADRGetDocExtensionSpy = sinon.stub(ADR.Config, 'getDocExtension').returns('adoc'); let fsWriteSpy = sinon.stub(fs, 'writeFileSync'); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-编写完整的单元测试.adoc', basePath: '/Users/fdhuang/learing/adr/docs/adr/', mode: 33188, size: 246, mtime: 1511435254653 } ]); let cacheSpy = sinon.stub(LRU.prototype, 'get').returns({ path: 'some', language: 'zh-cn' }); let fsReadSpy = sinon.stub(fs, 'readFileSync') .onCall(0).returns(asciidocTemplate) .onCall(1).returns(asciidocTemplate); StatusHelper.setStatus('./001-编写完整的单元测试.adoc', '完成'); // t.deepEqual(fsWriteSpy.calledWith('./001-编写完整的单元测试.md', '{"language":"en","path":"docs/adr/","prefix":"","digits":4}'), true) t.deepEqual(true, true); fsReadSpy.restore(); fsWriteSpy.restore(); entriesSpy.restore(); cacheSpy.restore(); ADRGetDocExtensionSpy.restore(); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzSGVscGVyLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHMvc3RhdHVzSGVscGVyLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzVCLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN0QixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBRTlCLE9BQU8sSUFBSSxNQUFNLEtBQUssQ0FBQTtBQUV0QixPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUE7QUFDMUIsSUFBSSxZQUFZLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQTtBQUVuQyxJQUFJLFVBQVUsR0FBRzs7Ozs7Ozs7Ozs7Q0FXaEIsQ0FBQTtBQUVELElBQUksZ0JBQWdCLEdBQUc7Ozs7Ozs7Ozs7O0NBV3RCLENBQUE7QUFFRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDM0IsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZEO1lBQ0UsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLEdBQUc7WUFDVCxLQUFLLEVBQUUsYUFBYTtTQUNyQjtLQUNGLENBQUMsQ0FBQTtJQUNGLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEQsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDLENBQUE7SUFDRixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUM7U0FDM0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDN0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUVoQyxJQUFJLE1BQU0sR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDNUQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7UUFDbEIsZUFBZTtRQUNmLGVBQWU7S0FDaEIsQ0FBQyxDQUFBO0lBQ0YsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ25CLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNwQixRQUFRLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDcEIsQ0FBQyxDQUFDLENBQUE7QUFFRixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDdkMsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDaEQsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZEO1lBQ0UsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLEdBQUc7WUFDVCxLQUFLLEVBQUUsYUFBYTtTQUNyQjtLQUNGLENBQUMsQ0FBQTtJQUNGLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEQsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDLENBQUE7SUFDRixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUM7U0FDM0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDN0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUVoQyxZQUFZLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2xELGdJQUFnSTtJQUNoSSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN2QixTQUFTLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbkIsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3BCLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNwQixRQUFRLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDcEIsQ0FBQyxDQUFDLENBQUE7QUFFRixJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDeEMsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckYsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZEO1lBQ0UsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLEdBQUc7WUFDVCxLQUFLLEVBQUUsYUFBYTtTQUNyQjtLQUNGLENBQUMsQ0FBQTtJQUNGLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdEQsSUFBSSxFQUFFLE1BQU07UUFDWixRQUFRLEVBQUUsT0FBTztLQUNsQixDQUFDLENBQUE7SUFDRixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxjQUFjLENBQUM7U0FDM0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztTQUNuQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFFdEMsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO0lBQzlELENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1FBQ2xCLGVBQWU7UUFDZixlQUFlO0tBQ2hCLENBQUMsQ0FBQTtJQUNGLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNuQixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDcEIsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ2xCLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFBO0FBQ2pDLENBQUMsQ0FBQyxDQUFBO0FBRUYsSUFBSSxDQUFDLDRDQUE0QyxFQUFFLENBQUMsQ0FBQyxFQUFFO0lBQ3JELElBQUkscUJBQXFCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3JGLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFBO0lBQ2hELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN2RDtZQUNFLFlBQVksRUFBRSxvQkFBb0I7WUFDbEMsUUFBUSxFQUFFLHNDQUFzQztZQUNoRCxJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLGFBQWE7U0FDckI7S0FDRixDQUFDLENBQUE7SUFDRixJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3RELElBQUksRUFBRSxNQUFNO1FBQ1osUUFBUSxFQUFFLE9BQU87S0FDbEIsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDO1NBQzNDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7U0FDbkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRXRDLFlBQVksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDcEQsZ0lBQWdJO0lBQ2hJLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3ZCLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNuQixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDcEIsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3BCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNsQixxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtBQUNqQyxDQUFDLENBQUMsQ0FBQSJ9