From 8a736723987a4240f5b584c58257a81504026eb9 Mon Sep 17 00:00:00 2001 From: Ivan Socolsky Date: Tue, 14 Apr 2015 15:45:52 -0300 Subject: [PATCH] check for scan error --- lib/server.js | 4 ++-- test/integration/server.js | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/server.js b/lib/server.js index 2b0ea1a..2b5bb8f 100644 --- a/lib/server.js +++ b/lib/server.js @@ -1224,7 +1224,7 @@ WalletService.prototype.scan = function(opts, cb) { WalletService.prototype.startScan = function(opts, cb) { var self = this; - function scanFinished(wallet, err) { + function scanFinished(err) { var result = err ? 'error' : 'success'; var data = { result: result, @@ -1247,7 +1247,7 @@ WalletService.prototype.startScan = function(opts, cb) { if (err) return cb(err); setTimeout(function() { - self.scan(opts, _.bind(scanFinished, self, wallet)); + self.scan(opts, scanFinished); }, 100); return cb(null, { diff --git a/test/integration/server.js b/test/integration/server.js index 8acd6e4..bfffa87 100644 --- a/test/integration/server.js +++ b/test/integration/server.js @@ -2695,6 +2695,22 @@ describe('Wallet service', function() { }); }); }); + it('should set scan status error when unable to reach blockchain', function(done) { + blockchainExplorer.getAddressActivity = sinon.stub().yields('dummy error'); + WalletService.onNotification(function(n) { + if (n.type == 'ScanFinished') { + should.exist(n.data.error); + server.getWallet({}, function(err, wallet) { + should.exist(wallet.scanStatus); + wallet.scanStatus.should.equal('error'); + done(); + }); + } + }); + server.startScan({}, function(err) { + should.not.exist(err); + }); + }); it('should start multiple asynchronous scans for different wallets', function(done) { helpers.stubAddressActivity(['3K2VWMXheGZ4qG35DyGjA2dLeKfaSr534A']); WalletService.scanConfig.SCAN_WINDOW = 1;