UNPKG

adr

Version:

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

67 lines (63 loc) 5.86 kB
import { __awaiter } from "tslib"; let sinon = require('sinon'); let path = require('path'); let fs = require('fs'); let mkdirp = require('mkdirp'); let walkSync = require('walk-sync'); let OpenInEditor = require('open-in-editor'); import test from 'ava'; import ADR from '../index'; let Config = ADR.Config; let adrTemplate = `# {NUMBER}. {TITLE} 日期: {DATE} ## 状态 列表:提议/通过/完成/已弃用/已取代 {DATE} 提议`; let adrOptions = JSON.stringify({ path: './', language: 'en' }); test('ADR: create', t => { const filename = '0002-create.md'; let consoleSpy = sinon.stub(console, 'log'); let mkdirpSync = sinon.stub(mkdirp, 'sync'); let generateSpy = sinon.stub(ADR, 'generate'); let fsWriteSyncSpy = sinon.stub(fs, 'writeFileSync'); let openInEditorSpy = sinon.stub(OpenInEditor, 'configure').returns({ open: (filePath) => __awaiter(void 0, void 0, void 0, function* () { t.is(path.basename(filePath), filename); }) }); let entriesSpy = sinon.stub(walkSync, 'entries').returns([ { relativePath: '001-编写完整的单元测试.md', basePath: './', mode: 33188, size: 246, mtime: 1511435254653 } ]); let fsExistSpy = sinon.stub(fs, 'existsSync').returns(true); let fsReadSpy = sinon.stub(fs, 'readFileSync') .onCall(0).returns(JSON.stringify(adrOptions)) .onCall(1).returns(JSON.stringify(adrOptions)) .onCall(2).returns(JSON.stringify(adrOptions)) .onCall(3).returns(JSON.stringify(adrOptions)) .onCall(4).returns(JSON.stringify(adrOptions)) .onCall(5).returns(adrTemplate); let ADRGetSavePathSpy = sinon.stub(Config, 'getSavePath').returns('./'); ADR.create('create'); // create t.deepEqual(fsWriteSyncSpy.calledWith(`./${filename}`), true); // TOC t.deepEqual(fsWriteSyncSpy.calledWith('./README.md'), true); t.deepEqual(mkdirpSync.callCount, 1); openInEditorSpy.restore(); fsWriteSyncSpy.restore(); ADRGetSavePathSpy.restore(); fsExistSpy.restore(); fsReadSpy.restore(); entriesSpy.restore(); consoleSpy.restore(); generateSpy.restore(); mkdirpSync.restore(); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHMvY3JlYXRlLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUM1QixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDMUIsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ3RCLElBQUksTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQUM5QixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsSUFBSSxZQUFZLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUE7QUFFNUMsT0FBTyxJQUFJLE1BQU0sS0FBSyxDQUFBO0FBRXRCLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQTtBQUMxQixJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0FBRXZCLElBQUksV0FBVyxHQUFHOzs7Ozs7OztVQVFSLENBQUE7QUFDVixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzlCLElBQUksRUFBRSxJQUFJO0lBQ1YsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFDLENBQUE7QUFFRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFO0lBQ3RCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFBO0lBQ2pDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzNDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzNDLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUs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