diff --git a/.jshintrc b/.jshintrc index 948f3b6..48c745a 100644 --- a/.jshintrc +++ b/.jshintrc @@ -32,7 +32,6 @@ "afterEach", "it", "inject", - "expect", "$", "io", "app", diff --git a/lib/PeerSync.js b/lib/PeerSync.js index fff731b..4704fde 100644 --- a/lib/PeerSync.js +++ b/lib/PeerSync.js @@ -111,6 +111,12 @@ function spec() { peerman.start(); }; + + PeerSync.prototype.close = function() { + this.sync.close(); + }; + + return PeerSync; } diff --git a/lib/Sync.js b/lib/Sync.js index a29a40b..e56cb6f 100644 --- a/lib/Sync.js +++ b/lib/Sync.js @@ -266,7 +266,7 @@ function spec() { this.rpc = new RpcClient(config.bitcoind); - if (!(opts && opts.skip_db_connection)) { + if (!(opts && opts.skip_db_connection) && !mongoose.connection) { mongoose.connect(config.db, {server: {auto_reconnect: true}} ); } this.opts = opts; @@ -364,8 +364,9 @@ function spec() { sync(); }, retry_secs * 1000); } - else - return next(err, that.block_count); + else { + return next(err, that.block_count); + } }); } @@ -377,7 +378,6 @@ function spec() { }; Sync.prototype.close = function() { - console.log("closing connection"); this.db.close(); }; return Sync; diff --git a/test/lib/PeerSync.js b/test/lib/PeerSync.js index 230a02f..15f3a58 100644 --- a/test/lib/PeerSync.js +++ b/test/lib/PeerSync.js @@ -1,21 +1,39 @@ 'use strict'; -var assert = require('assert'); +var chai = require('chai'), + expect = chai.expect, + sinon = require('sinon'); + var PeerSync = require('../../lib/PeerSync.js').class(); -describe('Unit testing PeerSync', function() { - var ps; +describe('PeerSync', function() { + var ps, inv_info; beforeEach(function() { ps = new PeerSync(); + ps.init(); + }); + afterEach(function(){ + ps.close(); }); describe('#init()', function() { it('should return with no errors', function() { - assert.doesNotThrow(function() { - ps.init(); - }); + var other_ps = new PeerSync(); + expect(other_ps.init.bind(other_ps)).not.to.throw(Error); + other_ps.close(); }); }); describe('#handle_inv()', function() { - it('should return with no errors'); - it('should call sendGetData'); + inv_info = { + message: {invs: []}, + conn: {sendGetData: sinon.spy()} + }; + it('should return with no errors', function(){ + expect(function() { + ps.handle_inv(inv_info); + }).not.to.throw(Error); + }); + it('should call sendGetData', function() { + ps.handle_inv(inv_info); + expect(inv_info.conn.calledOnce); + }); }); describe('#handle_tx()', function() { it('should call storeTxs');