Skip to content

Commit

Permalink
Update tests and fix issues.
Browse files Browse the repository at this point in the history
  • Loading branch information
kgoerlitz committed Jan 28, 2015
1 parent dffd68b commit bfc2e09
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 38 deletions.
22 changes: 10 additions & 12 deletions lib/winston-logstash.js
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ Logstash.prototype.connect = function () {
var self = this;
this.retries++;
this.connecting = true;
this.terminating = false;
if (this.ssl_enable) {
options = {
key: this.ssl_key ? fs.readFileSync(this.ssl_key) : null,
Expand Down Expand Up @@ -180,9 +181,6 @@ Logstash.prototype.connect = function () {

this.socket.on('close', function (had_error) {
self.connected = false;
if (self.terminating) {
return;
}

if (self.max_connect_retries < 0 || self.retries < self.max_connect_retries) {
if (!self.connecting) {
Expand All @@ -207,22 +205,22 @@ Logstash.prototype.connect = function () {
};

Logstash.prototype.close = function () {
var self = this;
self.terminating = true;
if (self.connected && self.socket) {
self.connected = false;
self.socket.end();
self.socket.destroy();
self.socket = null;
}
var self = this;
self.terminating = true;
if (self.connected && self.socket) {
self.connected = false;
self.socket.end();
self.socket.destroy();
self.socket = null;
}
};

Logstash.prototype.announce = function () {
var self = this;
self.connected = true;
self.flush();
if (self.terminating) {
self.close();
self.close();
}
};

Expand Down
50 changes: 24 additions & 26 deletions test/winston-logstash_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ describe('winston-logstash transport', function() {
}

describe('with logstash server', function () {
var test_server, port = 28777;
var test_server, logger, port = 28777;

beforeEach(function(done) {
timekeeper.freeze(freezed_time);
Expand All @@ -88,8 +88,8 @@ describe('winston-logstash transport', function() {

it('send logs over TCP as valid json', function(done) {
var response;
var logger = createLogger(port);
var expected = {"stream":"sample","level":"info","message":"hello world"};
var expected = {"stream":"sample","level":"info","message":"hello world","label":"test"};
logger = createLogger(port);

test_server = createTestServer(port, function (data) {
response = data.toString();
Expand All @@ -102,11 +102,11 @@ describe('winston-logstash transport', function() {

it('send each log with a new line character', function(done) {
var response;
var logger = createLogger(port);
logger = createLogger(port);

test_server = createTestServer(port, function (data) {
response = data.toString();
expect(response).to.be.equal('{"stream":"sample","level":"info","message":"hello world"}\n');
expect(response).to.be.equal('{"stream":"sample","level":"info","message":"hello world","label":"test"}\n');
done();
});

Expand All @@ -116,11 +116,11 @@ describe('winston-logstash transport', function() {
it('send with different log levels', function(done) {

var response;
var logger = createLogger(port);
logger = createLogger(port);

test_server = createTestServer(port, function (data) {
response = data.toString();
expect(response).to.be.equal('{"stream":"sample","level":"info","message":"hello world"}\n{"stream":"sample","level":"error","message":"hello world"}\n');
expect(response).to.be.equal('{"stream":"sample","level":"info","message":"hello world","label":"test"}\n{"stream":"sample","level":"error","message":"hello world","label":"test"}\n');
done();
});

Expand All @@ -131,11 +131,11 @@ describe('winston-logstash transport', function() {

it('send with overrided meta data', function(done) {
var response;
var logger = createLogger(port, false, '', { meta: { default_meta_override: 'foo' } });
logger = createLogger(port, false, '', { meta: { default_meta_override: 'foo' } });
test_server = createTestServer(port, function (data) {
response = data.toString();

expect(response).to.be.equal('{"default_meta_override":"foo","level":"info","message":"hello world"}\n');
expect(response).to.be.equal('{"default_meta_override":"foo","level":"info","message":"hello world","label":"test"}\n');
done();
});

Expand All @@ -144,17 +144,21 @@ describe('winston-logstash transport', function() {

// Teardown
afterEach(function () {
if (logger) {
logger.close();
}
if (test_server) {
test_server.close(function () {});
}
timekeeper.reset();
test_server = null;
logger = null;
});

});

describe('with secured logstash server', function() {
var test_server, port = 28777;
var test_server, logger, port = 28777;

beforeEach(function(done) {
timekeeper.freeze(freezed_time);
Expand All @@ -163,8 +167,8 @@ describe('winston-logstash transport', function() {

it('send logs over SSL secured TCP as valid json', function(done) {
var response;
var logger = createLogger(port, true, __dirname + '/support/ssl/server.cert');
var expected = {"stream":"sample","level":"info","message":"hello world"};
var expected = {"stream":"sample","level":"info","message":"hello world","label":"test"};
logger = createLogger(port, true, __dirname + '/support/ssl/server.cert');

test_server = createTestSecureServer(port, {}, function (data) {
response = data.toString();
Expand All @@ -177,8 +181,8 @@ describe('winston-logstash transport', function() {

it('send logs over SSL secured TCP as valid json with SSL verification', function(done) {
var response;
var logger = createLogger(port, true, __dirname + '/support/ssl/server.cert');
var expected = {"stream":"sample","level":"info","message":"hello world"};
var expected = {"stream":"sample","level":"info","message":"hello world","label":"test"};
logger = createLogger(port, true, __dirname + '/support/ssl/server.cert');

test_server = createTestSecureServer(port, { verify: true }, function (data) {
response = data.toString();
Expand All @@ -192,9 +196,9 @@ describe('winston-logstash transport', function() {

it('logstash transport receive an error when there is a connection error different from ECONNREFUSED', function(done) {
var response,
logger = createLogger(port, true, __dirname + '/support/ssl/server-fail.cert'),
expected = {"stream":"sample","level":"info","message":"hello world"},
expected = {"stream":"sample","level":"info","message":"hello world","label":"test"},
silence = true;
logger = createLogger(port, true, __dirname + '/support/ssl/server-fail.cert'),

test_server = createTestSecureServer(port, {
serverKey: __dirname + '/support/ssl/server-fail.key',
Expand All @@ -219,6 +223,9 @@ describe('winston-logstash transport', function() {

// Teardown
afterEach(function () {
if (logger) {
logger.close();
}
if (test_server) {
test_server.close(function () {});
}
Expand All @@ -231,20 +238,11 @@ describe('winston-logstash transport', function() {
describe('without logstash server', function () {
var logger, interval;

var checkSocketStatus = function (retries, logger, done) {
interval = setInterval(function() {
if (logger.transports.logstash.retries == retries) {
clearInterval(interval);
done();
}
}, 500);
};

it('fallback to silent mode if logstash server is down', function(done) {
var response;
var logger = createLogger(28747);

checkSocketStatus (4, logger, function() {
logger.transports.logstash.on('error', function (err) {
expect(logger.transports.logstash.silent).to.be.true;
done();
});
Expand Down

0 comments on commit bfc2e09

Please sign in to comment.