From 93c53212255b9ebde3b7ed85fa6b4796dc76c9a6 Mon Sep 17 00:00:00 2001 From: zhiyelee Date: Mon, 22 Jun 2015 11:52:52 -0500 Subject: [PATCH] refactor test with sinion stub --- test/test.command.allowUnknownOption.js | 51 +++++++++++++------------ 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/test/test.command.allowUnknownOption.js b/test/test.command.allowUnknownOption.js index 12920c927..7261dd95a 100644 --- a/test/test.command.allowUnknownOption.js +++ b/test/test.command.allowUnknownOption.js @@ -1,57 +1,58 @@ /** * Module dependencies. */ - -var util = require('util'); var program = require('../') - , should = require('should'); + , sinon = require('sinon').sandbox.create() + , should = require('should'); -var oldProcessExit = process.exit; -var oldConsoleError = console.error; +var stubError = sinon.stub(console, 'error'); +var stubExit = sinon.stub(process, 'exit'); program .version('0.0.1') .option('-p, --pepper', 'add pepper'); +program.parse('node test -m'.split(' ')); -var consoleErrors = []; -process.exit = function () { -}; -console.error = function () { - consoleErrors.push(util.format.apply(util, arguments)); -}; +stubError.callCount.should.equal(3); -program.parse('node test -m'.split(' ')); -consoleErrors.length.should.equal(3); // test subcommand -var consoleErrors = []; +resetStubStatus(); program .command('sub') .action(function () { }); program.parse('node test sub -m'.split(' ')); -consoleErrors.length.should.equal(3); -consoleErrors = []; +stubError.callCount.should.equal(3); +stubExit.calledOnce.should.be.true(); + +// command with `allowUnknownOption` +resetStubStatus(); program .version('0.0.1') .option('-p, --pepper', 'add pepper'); - program .allowUnknownOption() .parse('node test -m'.split(' ')); -consoleErrors.length.should.equal(0); -// test subcommand -var consoleErrors = []; +stubError.callCount.should.equal(0); +stubExit.calledOnce.should.be.false(); + +// subcommand with `allowUnknownOption` +resetStubStatus(); program - .command('sub') + .command('sub2') .allowUnknownOption() .action(function () { }); -program.parse('node test sub -m'.split(' ')); -consoleErrors.length.should.equal(3); +program.parse('node test sub2 -m'.split(' ')); + +stubError.callCount.should.equal(0); +stubExit.calledOnce.should.be.false(); -process.exit = oldProcessExit; -console.error = oldConsoleError; +function resetStubStatus() { + stubError.reset(); + stubExit.reset(); +}