diff options
| -rw-r--r-- | lib/getOptions.js | 11 | ||||
| -rw-r--r-- | lib/handleInput.js | 7 | ||||
| -rw-r--r-- | test/getOptions.js | 8 |
3 files changed, 21 insertions, 5 deletions
diff --git a/lib/getOptions.js b/lib/getOptions.js index eab67f4..9713f03 100644 --- a/lib/getOptions.js +++ b/lib/getOptions.js @@ -108,11 +108,13 @@ var getBaseOptions = function(cb){ } }; -var getOptions = function(cb){ +var getOptions = function(cb, _userOptions){ if (!cb){ throw new Error('getOptions requires a callback'); } + var userOptions = _userOptions || {}; + getBaseOptions(function(err, options){ // try to get filepath from the command-line if (process.argv[2]) { @@ -124,7 +126,12 @@ var getOptions = function(cb){ options.filepath = process.argv[2]; } } - cb(err, options); + + // lodash or else would be better, but no need for the extra dependency + for (var option in userOptions) { + options[option] = userOptions[option]; + } + cb(err, options); }); }; diff --git a/lib/handleInput.js b/lib/handleInput.js index 5f88394..845bfad 100644 --- a/lib/handleInput.js +++ b/lib/handleInput.js @@ -1,9 +1,10 @@ var index = require('../index'); var logger = require('./logger')(); -function handleInput(input, cb) { +function handleInput(input, cb, userOptions) { logger.debug(input); - var options = index.getOptions(function(err, options){ + logger.debug('user options ' + userOptions); + index.getOptions(function(err, options){ if (err){ logger.error("error from getOptions"); @@ -33,7 +34,7 @@ function handleInput(input, cb) { cb(null); }); }); - }); + }, userOptions); } module.exports = handleInput; diff --git a/test/getOptions.js b/test/getOptions.js index 8a77708..6f9ddc5 100644 --- a/test/getOptions.js +++ b/test/getOptions.js @@ -135,6 +135,14 @@ describe("getOptions", function(){ it ("should set service_name and service_job_id if it's running on wercker", function(done){ testWercker(getOptions, done); }); + it ("should override set options with user options", function(done){ + var userOptions = {service_name: 'OVERRIDDEN_SERVICE_NAME'}; + process.env.COVERALLS_SERVICE_NAME = "SERVICE_NAME"; + getOptions(function(err, options){ + options.service_name.should.equal("OVERRIDDEN_SERVICE_NAME"); + done(); + }, userOptions); + }); }); var testServiceJobId = function(sut, done){ |
