UNPKG

adr

Version:

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

166 lines (164 loc) 11.4 kB
let sinon = require('sinon'); let walkSync = require('walk-sync'); import test from 'ava'; import ADR from '../index'; let Config = ADR.Config; test('ADR: generate graph', t => { let ADRGetSavePathSpy = sinon.stub(Config, 'getSavePath').returns('./'); let consoleSpy = sinon.stub(console, 'log'); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-编写完整的单元测试.md', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: '002-编写完整的单元测试.md', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: 'README.md', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 } ]); let results = ADR.generate('graph'); console.log(results); t.deepEqual(results, `digraph { node [shape=plaintext]; _1 [label="1.编写完整的单元测试"; URL="001-编写完整的单元测试.md"] _2 [label="2.编写完整的单元测试"; URL="002-编写完整的单元测试.md"] _1 -> _2 [style="dotted"]; } `); consoleSpy.restore(); ADRGetSavePathSpy.restore(); entriesSpy.restore(); }); test('ADR: generate toc', t => { let ADRGetSavePathSpy = sinon.stub(Config, 'getSavePath').returns('./'); let consoleSpy = sinon.stub(console, 'log'); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-编写完整的单元测试.md', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: '002-编写完整的单元测试.md', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: 'README.md', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 } ]); let results = ADR.generate('toc'); console.log(results); t.deepEqual(results, `# 架构决策记录 * [1. 编写完整的单元测试](001-编写完整的单元测试.md) * [2. 编写完整的单元测试](002-编写完整的单元测试.md)`); consoleSpy.restore(); ADRGetSavePathSpy.restore(); entriesSpy.restore(); }); test('ADR: generate error', t => { let consoleSpy = sinon.stub(console, 'log'); ADR.generate('others'); t.deepEqual(consoleSpy.called, true); consoleSpy.restore(); }); test('ADR: generate graph with asciidoc', t => { let ADRGetDocExtensionSpy = sinon.stub(ADR.Config, 'getDocExtension').returns('adoc'); let ADRGetSavePathSpy = sinon.stub(Config, 'getSavePath').returns('./'); let consoleSpy = sinon.stub(console, 'log'); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-编写完整的单元测试.adoc', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: '002-编写完整的单元测试.adoc', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: 'README.adoc', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 } ]); let results = ADR.generate('graph'); console.log(results); t.deepEqual(results, `digraph { node [shape=plaintext]; _1 [label="1.编写完整的单元测试"; URL="001-编写完整的单元测试.adoc"] _2 [label="2.编写完整的单元测试"; URL="002-编写完整的单元测试.adoc"] _1 -> _2 [style="dotted"]; } `); consoleSpy.restore(); ADRGetSavePathSpy.restore(); entriesSpy.restore(); ADRGetDocExtensionSpy.restore(); }); test('ADR: generate toc with asciodoc', t => { let ADRGetDocExtensionSpy = sinon.stub(ADR.Config, 'getDocExtension').returns('adoc'); let ADRGetSavePathSpy = sinon.stub(Config, 'getSavePath').returns('./'); let consoleSpy = sinon.stub(console, 'log'); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-编写完整的单元测试.adoc', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: '002-编写完整的单元测试.adoc', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 }, { relativePath: 'README.adoc', basePath: '/test', mode: 33188, size: 246, mtime: 1511435254653 } ]); let results = ADR.generate('toc'); console.log(results); t.deepEqual(results, `.架构决策记录 * xref:001-编写完整的单元测试.adoc[1. 编写完整的单元测试] * xref:002-编写完整的单元测试.adoc[2. 编写完整的单元测试]`); consoleSpy.restore(); ADRGetSavePathSpy.restore(); entriesSpy.restore(); ADRGetDocExtensionSpy.restore(); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0cy9nZW5lcmF0ZS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUM1QixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsT0FBTyxJQUFJLE1BQU0sS0FBSyxDQUFBO0FBQ3RCLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQTtBQUUxQixJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0FBRXZCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsRUFBRTtJQUM5QixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN2RSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMzQyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdkQ7WUFDRSxZQUFZLEVBQUUsa0JBQWtCO1lBQ2hDLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLEdBQUc7WUFDVCxLQUFLLEVBQUUsYUFBYTtTQUNyQjtRQUNEO1lBQ0UsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxRQUFRLEVBQUUsT0FBTztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLGFBQWE7U0FDckI7UUFDRDtZQUNFLFlBQVksRUFBRSxXQUFXO1lBQ3pCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLEdBQUc7WUFDVCxLQUFLLEVBQUUsYUFBYTtTQUFFO0tBQ3pCLENBQUMsQ0FBQTtJQUVGLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwQixDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFDckI7Ozs7OztDQU1DLENBQUMsQ0FBQTtJQUVBLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNwQixpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUMzQixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDdEIsQ0FBQyxDQUFDLENBQUE7QUFFRixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDNUIsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDM0MsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZEO1lBQ0UsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxRQUFRLEVBQUUsT0FBTztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLGFBQWE7U0FDckI7UUFDRDtZQUNFLFlBQVksRUFBRSxrQkFBa0I7WUFDaEMsUUFBUSxFQUFFLE9BQU87WUFDakIsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsR0FBRztZQUNULEtBQUssRUFBRSxhQUFhO1NBQ3JCO1FBQ0Q7WUFDRSxZQUFZLEVBQUUsV0FBVztZQUN6QixRQUFRLEVBQUUsT0FBTztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLGFBQWE7U0FBRTtLQUN6QixDQUFDLENBQUE7SUFFRixJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQ3JCOzs7bUNBR21DLENBQUMsQ0FBQTtJQUVsQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDcEIsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDM0IsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFBO0FBQ3RCLENBQUMsQ0FBQyxDQUFBO0FBRUYsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxFQUFFO0lBQzlCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzNDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDdEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3BDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtBQUN0QixDQUFDLENBQUMsQ0FBQTtBQUVGLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDLENBQUMsRUFBRTtJQUM1QyxJQUFJLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNyRixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN2RSxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMzQyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDdkQ7WUFDRSxZQUFZLEVBQUUsb0JBQW9CO1lBQ2xDLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLEdBQUc7WUFDVCxLQUFLLEVBQUUsYUFBYTtTQUNyQjtRQUNEO1lBQ0UsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxRQUFRLEVBQUUsT0FBTztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLGFBQWE7U0FDckI7UUFDRDtZQUNFLFlBQVksRUFBRSxhQUFhO1lBQzNCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLElBQUksRUFBRSxLQUFLO1lBQ1gsSUFBSSxFQUFFLEdBQUc7WUFDVCxLQUFLLEVBQUUsYUFBYTtTQUFFO0tBQ3pCLENBQUMsQ0FBQTtJQUVGLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNwQixDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFDakI7Ozs7OztDQU1ILENBQUMsQ0FBQTtJQUVBLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUNwQixpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtJQUMzQixVQUFVLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDcEIscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUE7QUFDakMsQ0FBQyxDQUFDLENBQUE7QUFFRixJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDMUMsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckYsSUFBSSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDM0MsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZEO1lBQ0UsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxRQUFRLEVBQUUsT0FBTztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLGFBQWE7U0FDckI7UUFDRDtZQUNFLFlBQVksRUFBRSxvQkFBb0I7WUFDbEMsUUFBUSxFQUFFLE9BQU87WUFDakIsSUFBSSxFQUFFLEtBQUs7WUFDWCxJQUFJLEVBQUUsR0FBRztZQUNULEtBQUssRUFBRSxhQUFhO1NBQ3JCO1FBQ0Q7WUFDRSxZQUFZLEVBQUUsYUFBYTtZQUMzQixRQUFRLEVBQUUsT0FBTztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLElBQUksRUFBRSxHQUFHO1lBQ1QsS0FBSyxFQUFFLGFBQWE7U0FBRTtLQUN6QixDQUFDLENBQUE7SUFFRixJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDcEIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQ2pCOzs7d0NBR29DLENBQUMsQ0FBQTtJQUV2QyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDcEIsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDM0IsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3BCLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFBO0FBQ2pDLENBQUMsQ0FBQyxDQUFBIn0=