aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Merwin <[email protected]>2015-12-10 17:05:25 -0800
committerNick Merwin <[email protected]>2015-12-10 17:05:25 -0800
commit8c06415c4dfbd72043f26afdf7e34313d5c4444d (patch)
tree9c70af72c5ce61d6df81ddccd7d01f9a6e2d31ad
parent83c3dfdff827a82de0b410c297e66d3d194210c1 (diff)
parentddc813c0945a5530c1f4b226484961c13cb01f21 (diff)
downloadnode-coveralls-8c06415c4dfbd72043f26afdf7e34313d5c4444d.tar.xz
node-coveralls-8c06415c4dfbd72043f26afdf7e34313d5c4444d.zip
Merge branch 'master' of github.com:nickmerwin/node-coveralls
-rw-r--r--.travis.yml4
-rw-r--r--index.js9
-rw-r--r--lib/getOptions.js16
-rw-r--r--lib/logger.js8
-rw-r--r--lib/sendToCoveralls.js13
-rw-r--r--package.json3
-rw-r--r--test/getOptions.js6
-rw-r--r--test/logger.js8
-rw-r--r--test/sendToCoveralls.js25
9 files changed, 62 insertions, 30 deletions
diff --git a/.travis.yml b/.travis.yml
index 284a527..90c3aeb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,6 @@ node_js:
- stable
- 4.2
- 0.10
- - 0.11
+ - 0.12
script: make test-coveralls
-
+sudo: false
diff --git a/index.js b/index.js
index 911cc99..e1103a0 100644
--- a/index.js
+++ b/index.js
@@ -1,3 +1,12 @@
+var minimist = require('minimist');
+
+// this needs to go before the other require()s so that
+// the other files can already use index.options
+exports.options = minimist(process.argv.slice(2), {
+ boolean: ['verbose', 'stdout'],
+ alias: { 'v': 'verbose', 's': 'stdout' }
+});
+
var dir = './lib/';
exports.convertLcovToCoveralls = require(dir + 'convertLcovToCoveralls');
exports.sendToCoveralls = require(dir + 'sendToCoveralls');
diff --git a/lib/getOptions.js b/lib/getOptions.js
index 144d0ad..4c53e36 100644
--- a/lib/getOptions.js
+++ b/lib/getOptions.js
@@ -1,6 +1,7 @@
var fs = require('fs');
var path = require('path');
var yaml = require('js-yaml');
+var index = require('../index');
var logger = require('./logger')();
var fetchGitData = require('./fetchGitData');
@@ -128,16 +129,11 @@ var getOptions = function(cb, _userOptions){
var userOptions = _userOptions || {};
getBaseOptions(function(err, options){
- // try to get filepath from the command-line
- if (process.argv[2]) {
- if (~['-v', '--verbose'].indexOf(process.argv[2])) {
- if (process.argv[3]) {
- options.filepath = process.argv[3];
- }
- } else {
- options.filepath = process.argv[2];
- }
- }
+ // minimist populates options._ with non-option command line arguments
+ var firstNonOptionArgument = index.options._[0];
+
+ if (firstNonOptionArgument)
+ options.filepath = firstNonOptionArgument;
// lodash or else would be better, but no need for the extra dependency
for (var option in userOptions) {
diff --git a/lib/logger.js b/lib/logger.js
index 9c27e0b..f834586 100644
--- a/lib/logger.js
+++ b/lib/logger.js
@@ -1,18 +1,16 @@
+var index = require('../index');
+
module.exports = function(){
return require('log-driver')({level : getLogLevel()});
};
function getLogLevel(){
- if (hasVerboseCommandLineOption() || hasDebugEnvVariable()) {
+ if (index.options.verbose || hasDebugEnvVariable()) {
return 'warn';
}
return 'error';
}
-function hasVerboseCommandLineOption(){
- return process.argv[2] && ~['-v', '--verbose'].indexOf(process.argv[2]);
-}
-
function hasDebugEnvVariable(){
return process.env.NODE_COVERALLS_DEBUG == 1;
}
diff --git a/lib/sendToCoveralls.js b/lib/sendToCoveralls.js
index 38b37f7..fcf63a8 100644
--- a/lib/sendToCoveralls.js
+++ b/lib/sendToCoveralls.js
@@ -1,4 +1,5 @@
var request = require('request');
+var index = require('../index');
var sendToCoveralls = function(obj, cb){
var urlBase = 'https://coveralls.io';
@@ -8,9 +9,15 @@ var sendToCoveralls = function(obj, cb){
var str = JSON.stringify(obj);
var url = urlBase + '/api/v1/jobs';
- request.post({url : url, form : { json : str}}, function(err, response, body){
- cb(err, response, body);
- });
+
+ if (index.options.stdout) {
+ process.stdout.write(str);
+ cb(null, { statusCode: 200 }, '');
+ } else {
+ request.post({url : url, form : { json : str}}, function(err, response, body){
+ cb(err, response, body);
+ });
+ }
};
module.exports = sendToCoveralls;
diff --git a/package.json b/package.json
index fe4d25c..7e7f4e1 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,8 @@
"js-yaml": "3.0.1",
"lcov-parse": "0.0.6",
"log-driver": "1.2.4",
- "request": "2.67.0"
+ "request": "2.67.0",
+ "minimist": "1.2.0"
},
"devDependencies": {
"sinon-restore": "1.0.0",
diff --git a/test/getOptions.js b/test/getOptions.js
index 0943fe1..897427c 100644
--- a/test/getOptions.js
+++ b/test/getOptions.js
@@ -70,7 +70,7 @@ describe("getOptions", function(){
done();
});
it ("should get a filepath if there is one", function(done){
- process.argv[2] = "somepath";
+ index.options._ = ["somepath"];
getOptions(function(err, options){
options.filepath.should.equal("somepath");
done();
@@ -78,8 +78,8 @@ describe("getOptions", function(){
});
it ("should get a filepath if there is one, even in verbose mode", function(done){
- process.argv[2] = "--verbose";
- process.argv[3] = "somepath";
+ index.options.verbose = "true";
+ index.options._ = ["somepath"];
getOptions(function(err, options){
options.filepath.should.equal("somepath");
done();
diff --git a/test/logger.js b/test/logger.js
index 15767ff..19767df 100644
--- a/test/logger.js
+++ b/test/logger.js
@@ -4,27 +4,27 @@ var index = require('../index');
describe("logger", function(){
it ("should log at debug level when --verbose is set", function(){
- process.argv[2] = '--verbose';
+ index.options.verbose = true;
var logger = require('../index').logger();
logger.level.should.equal('warn');
});
it ("should log at debug level when NODE_COVERALLS_DEBUG is set in env", function(){
- process.argv = [];
+ index.options.verbose = false;
process.env.NODE_COVERALLS_DEBUG = 1;
var logger = require('../index').logger();
logger.level.should.equal('warn');
});
it ("should log at debug level when NODE_COVERALLS_DEBUG is set in env as a string", function(){
- process.argv = [];
+ index.options.verbose = false;
process.env.NODE_COVERALLS_DEBUG = '1';
var logger = require('../index').logger();
logger.level.should.equal('warn');
});
it ("should log at warn level when NODE_COVERALLS_DEBUG not set and no --verbose", function(){
- process.argv = [];
+ index.options.verbose = false;
process.env.NODE_COVERALLS_DEBUG = 0;
var logger = require('../index').logger();
logger.level.should.equal('error');
diff --git a/test/sendToCoveralls.js b/test/sendToCoveralls.js
index f809319..6121bbb 100644
--- a/test/sendToCoveralls.js
+++ b/test/sendToCoveralls.js
@@ -27,7 +27,8 @@ describe("sendToCoveralls", function(){
});
var obj = {"some":"obj"};
- index.sendToCoveralls(obj, function(err, response, body){
+
+ index.sendToCoveralls(obj, function(err, response, body){
err.should.equal('err');
response.should.equal('response');
body.should.equal('body');
@@ -44,11 +45,31 @@ describe("sendToCoveralls", function(){
});
var obj = {"some":"obj"};
- index.sendToCoveralls(obj, function(err, response, body){
+ index.sendToCoveralls(obj, function(err, response, body){
err.should.equal('err');
response.should.equal('response');
body.should.equal('body');
done();
});
});
+ it ("writes output to stdout when --stdout is passed", function(done) {
+ var obj = {"some":"obj"};
+
+ // set up mock process.stdout.write temporarily
+ var origStdoutWrite = process.stdout.write;
+ process.stdout.write = function(string) {
+ if (string == JSON.stringify(obj)) {
+ process.stdout.write = origStdoutWrite;
+ return done();
+ }
+
+ origStdoutWrite.apply(this, arguments);
+ };
+
+ index.options.stdout = true;
+
+ index.sendToCoveralls(obj, function(err, response, body) {
+ response.statusCode.should.equal(200);
+ });
+ });
});