From c846ccdeebd7a05cf813ed7b3851a2b42514e44a Mon Sep 17 00:00:00 2001 From: eordano Date: Wed, 11 Mar 2015 10:59:16 -0300 Subject: [PATCH] Sort dependencies --- lib/services/block.js | 25 +++++++--------- package.json | 25 ++++------------ test/services/block.js | 3 +- test/services/transaction.js | 57 ++++++++++++++++++------------------ 4 files changed, 46 insertions(+), 64 deletions(-) diff --git a/lib/services/block.js b/lib/services/block.js index b5973af8..8ea51b65 100644 --- a/lib/services/block.js +++ b/lib/services/block.js @@ -7,6 +7,8 @@ var TransactionService = require('./transaction'); var bitcore = require('bitcore'); var config = require('config'); +var BitcoreNode = require('../../'); + var $ = bitcore.util.preconditions; var JSUtil = bitcore.util.js; var _ = bitcore.deps._; @@ -46,6 +48,11 @@ BlockService.blockRPCtoBitcore = function(blockData, transactions) { }); }; +var blockNotFound = function(err) { + console.log(err); + return Promise.reject(new BitcoreNode.errors.Blocks.NotFound()); +}; + BlockService.prototype.getBlock = function(blockHash) { $.checkArgument(JSUtil.isHexa(blockHash), 'Block hash must be hexa'); @@ -66,12 +73,9 @@ BlockService.prototype.getBlock = function(blockHash) { }).then(function(transactions) { blockData.transactions = transactions; - return Promise.resolve(BlockService.blockRPCtoBitcore(blockData)); + return BlockService.blockRPCtoBitcore(blockData); - }).catch(function(err) { - console.log(err); - return Promise.reject(err); - }); + }).catch(blockNotFound); }; BlockService.prototype.getBlockByHeight = function(height) { @@ -87,10 +91,7 @@ BlockService.prototype.getBlockByHeight = function(height) { return self.getBlock(blockHash); - }).catch(function(err) { - console.log(err); - return Promise.reject(err); - }); + }).catch(blockNotFound); }; BlockService.prototype.getLatest = function() { @@ -105,11 +106,7 @@ BlockService.prototype.getLatest = function() { return self.getBlock(blockHash); - }).catch(function(err) { - console.log(err); - return Promise.reject(err); - }); + }).catch(blockNotFound); }; - module.exports = BlockService; diff --git a/package.json b/package.json index 22c8bb61..32484510 100644 --- a/package.json +++ b/package.json @@ -45,45 +45,30 @@ }, "dependencies": { "async": "0.9.0", - "bignum": "*", + "bitcoind-rpc": "^0.2.1", "bitcore": "bitpay/bitcore", "bitcore-p2p": "bitpay/bitcore-p2p", "bluebird": "^2.9.12", "body-parser": "^1.12.0", "bufferput": "bitpay/node-bufferput", "buffertools": "*", - "commander": "^2.3.0", - "compression": "^1.4.1", "config": "^1.12.0", - "cors": "^2.5.3", - "cron": "^1.0.4", "eventemitter2": "^0.4.14", "express": "4.11.1", "glob": "*", - "js-yaml": "^3.2.7", - "leveldown": "~0.10.0", "levelup": "~0.19.0", - "lodash": "^2.4.1", - "microtime": "^0.6.0", - "mkdirp": "^0.5.0", "moment": "~2.5.0", "morgan": "^1.5.1", - "preconditions": "^1.0.7", "request": "^2.48.0", - "sequelize": "^2.0.3", "socket.io": "1.0.6", - "socket.io-client": "1.0.6", - "soop": "=0.1.5", - "sqlite3": "^3.0.5", - "winston": "*", - "xmlhttprequest": "~1.6.0" + "winston": "*" }, "devDependencies": { "bitcore-build": "bitpay/bitcore-build", - "chai": "*", + "chai": "^2.1.1", "gulp": "^3.8.10", - "should": "^2.1.1", - "sinon": "^1.10.3", + "should": "^5.1.0", + "sinon": "^1.13.0", "supertest": "^0.15.0" } } diff --git a/test/services/block.js b/test/services/block.js index cfa36c31..ee96cbd1 100644 --- a/test/services/block.js +++ b/test/services/block.js @@ -2,6 +2,7 @@ var sinon = require('sinon'); var should = require('chai').should(); +var Promise = require('bluebird'); var bitcore = require('bitcore'); @@ -18,7 +19,7 @@ describe('BlockService', function() { rpc: 'rpc', transactionService: 'txService' }); - blockService.should.exist(); + blockService.should.exist; blockService.database.should.equal(database); blockService.rpc.should.equal(rpc); blockService.transactionService.should.equal(txService); diff --git a/test/services/transaction.js b/test/services/transaction.js index e6eb543f..7a66d0d4 100644 --- a/test/services/transaction.js +++ b/test/services/transaction.js @@ -2,7 +2,7 @@ var sinon = require('sinon'); var should = require('chai').should(); -var Sequelize = require('sequelize'); +var Promise = require('bluebird'); var bitcore = require('bitcore'); @@ -10,44 +10,43 @@ var TransactionService = require('../../lib/services/transaction'); describe('TransactionService', function() { - var service = new TransactionService(); - var schema = sinon.stub(); - var rawTransaction = '01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff0704ffff001d0104ffffffff0100f2052a0100000043410496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858eeac00000000'; var transactionId = '0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098'; - schema.Transaction = {}; - schema.Transaction.find = sinon.stub(); - - var transactionResult = sinon.stub(); - transactionResult.getDataValue = function() { return rawTransaction; }; - it('initializes correctly', function() { - (new TransactionService()).should.exist(); + var database = 'mock'; + var rpc = 'mock'; + var service = new TransactionService({ + database: database, + rpc: rpc + }); + service.should.exist; }); describe('get', function() { - it('allows the user to fetch a transaction using its hash', function(callback) { - schema.Transaction.find.onFirstCall().returns({ - then: function(f) { - return { - then: function(g) { - return g(f(transactionResult)); - } - }; - } - }); - service.getTransaction(schema, transactionId).then(function(transaction) { - transaction.should.be.an.instanceof(bitcore.Transaction); - transaction.toString().should.equal(rawTransaction); + var database, rpc, service; + + beforeEach(function() { + database = sinon.mock(); + rpc = sinon.mock(); + rpc.getRawTransactionAsync = function(transaction) { + return Promise.resolve({ + result: rawTransaction + }); + }; + service = new TransactionService({ + rpc: rpc, + database: database + }); + }); + + it('allows the user to fetch a transaction using its hash', function(callback) { + + service.getTransaction(transactionId).then(function(transaction) { + transaction.hash.should.equal(transactionId); callback(); }); }); - it('fails on a non-string argument', function() { - (function() { - return service.getTransaction(); - }).should.throw(bitcore.errors.InvalidArgument); - }); }); });