blob: 6121bbb11de089577a1097b5be91672699b56b02 [file] [log] [blame]
var should = require('should');
var request = require('request');
var sinon = require('sinon-restore');
var index = require('../index');
logger = require('log-driver')({level : false});
describe("sendToCoveralls", function(){
var realCoverallsHost;
beforeEach(function() {
realCoverallsHost = process.env.COVERALLS_ENDPOINT;
});
afterEach(function() {
sinon.restoreAll();
if (realCoverallsHost !== undefined) {
process.env.COVERALLS_ENDPOINT = realCoverallsHost;
} else {
delete process.env.COVERALLS_ENDPOINT;
}
});
it ("passes on the correct params to request.post", function(done){
sinon.stub(request, 'post', function(obj, cb){
obj.url.should.equal('https://coveralls.io/api/v1/jobs');
obj.form.should.eql({json : '{"some":"obj"}'});
cb('err', 'response', 'body');
});
var obj = {"some":"obj"};
index.sendToCoveralls(obj, function(err, response, body){
err.should.equal('err');
response.should.equal('response');
body.should.equal('body');
done();
});
});
it ("allows sending to enterprise url", function(done){
process.env.COVERALLS_ENDPOINT = 'https://coveralls-ubuntu.domain.com';
sinon.stub(request, 'post', function(obj, cb){
obj.url.should.equal('https://coveralls-ubuntu.domain.com/api/v1/jobs');
obj.form.should.eql({json : '{"some":"obj"}'});
cb('err', 'response', 'body');
});
var obj = {"some":"obj"};
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);
});
});
});