Manual Reference Source Test

test/unit-test/ESDocCLI.test.js

import ESDocCLI from '../../src/ESDocCLI';
import process from 'process';
import fs from 'fs';
import assert from 'assert';
import path from 'path';

describe('test ESDocCLI:', ()=>{
  describe('command option', ()=>{
    const orig = console.log;
    it('can show help', ()=>{
      const argv = [null, null];
      const cli = new ESDocCLI(argv);
      console.log = function(){};
      cli._showHelp();
      console.log = orig;
    });

    it('can show version', ()=>{
      const argv = [null, null];
      const cli = new ESDocCLI(argv);
      console.log = function(){};
      cli._showVersion();
      console.log = orig;
    });
  });

  describe('find configuration', ()=>{
    it('finds -c', ()=>{
      const cli = new ESDocCLI([null, null, '-c', 'esdoc.json']);
      assert.equal(cli._findConfigFilePath(), 'esdoc.json');
    });

    it('finds .esdoc.json', ()=>{
      process.chdir('./test/');
      fs.writeFileSync('.esdoc.json', 'dummy');
      const cli = new ESDocCLI([null, null]);
      assert.equal(cli._findConfigFilePath(), path.resolve('.esdoc.json'));
      fs.unlinkSync('.esdoc.json');
      process.chdir('../');
    });

    it('finds .esdoc.js', ()=>{
      process.chdir('./test/');
      fs.writeFileSync('.esdoc.js', 'dummy');
      const cli = new ESDocCLI([null, null]);
      assert.equal(cli._findConfigFilePath(), path.resolve('.esdoc.js'));
      fs.unlinkSync('.esdoc.js');
      process.chdir('../');
    });
  });
});