diff --git a/test/test.Wallet.js b/test/test.Wallet.js index 0d8beee61..14a7ee490 100644 --- a/test/test.Wallet.js +++ b/test/test.Wallet.js @@ -331,6 +331,7 @@ describe('Wallet model', function() { var w = cachedCreateW2(); var spy = sinon.spy(w, 'scheduleConnect'); var callCount = 3; + w.reconnectDelay = 25; w.netStart(); setTimeout(function() { sinon.assert.callCount(spy, callCount); @@ -660,88 +661,93 @@ describe('Wallet model', function() { }); }); - var mockFakeActivity = function(w, f) { - var ADDRESSES_CHANGE = w.deriveAddresses(0, 20, true); - var ADDRESSES_RECEIVE = w.deriveAddresses(0, 20, false); - w.blockchain.checkActivity = function(addresses, cb) { - var activity = new Array(addresses.length); - for (var i = 0; i < addresses.length; i++) { - var a1 = ADDRESSES_CHANGE.indexOf(addresses[i]); - var a2 = ADDRESSES_RECEIVE.indexOf(addresses[i]); - activity[i] = f(Math.max(a1, a2)); + + describe('#indexDiscovery', function() { + var ADDRESSES_CHANGE, ADDRESSES_RECEIVE, w; + + before(function() { + w = cachedCreateW2(); + ADDRESSES_CHANGE = w.deriveAddresses(0, 20, true); + ADDRESSES_RECEIVE = w.deriveAddresses(0, 20, false); + }); + + var mockFakeActivity = function(f) { + w.blockchain.checkActivity = function(addresses, cb) { + var activity = new Array(addresses.length); + for (var i = 0; i < addresses.length; i++) { + var a1 = ADDRESSES_CHANGE.indexOf(addresses[i]); + var a2 = ADDRESSES_RECEIVE.indexOf(addresses[i]); + activity[i] = f(Math.max(a1, a2)); + } + cb(null, activity); } - cb(null, activity); } - } - it('#indexDiscovery should work without found activities', function(done) { - var w = cachedCreateW2(); - mockFakeActivity(w, function(index) { - return false + it('#indexDiscovery should work without found activities', function(done) { + mockFakeActivity(function(index) { + return false; + }); + w.indexDiscovery(0, false, 5, function(e, lastActive) { + lastActive.should.equal(-1); + done(); + }); }); - w.indexDiscovery(0, false, 5, function(e, lastActive) { - lastActive.should.equal(-1); - done(); - }); - }); - it('#indexDiscovery should continue scanning', function(done) { - var w = cachedCreateW2(); - mockFakeActivity(w, function(index) { - return index <= 7 + it('#indexDiscovery should continue scanning', function(done) { + mockFakeActivity(function(index) { + return index <= 7; + }); + w.indexDiscovery(0, false, 5, function(e, lastActive) { + lastActive.should.equal(7); + done(); + }); }); - w.indexDiscovery(0, false, 5, function(e, lastActive) { - lastActive.should.equal(7); - done(); - }); - }); - it('#indexDiscovery should not found beyond the scannWindow', function(done) { - var w = cachedCreateW2(); - mockFakeActivity(w, function(index) { - return index <= 10 || index == 17 + it('#indexDiscovery should not found beyond the scannWindow', function(done) { + mockFakeActivity(function(index) { + return index <= 10 || index == 17; + }); + w.indexDiscovery(0, false, 5, function(e, lastActive) { + lastActive.should.equal(10); + done(); + }); }); - w.indexDiscovery(0, false, 5, function(e, lastActive) { - lastActive.should.equal(10); - done(); - }); - }); - it('#indexDiscovery should look for activity along the scannWindow', function(done) { - var w = cachedCreateW2(); - mockFakeActivity(w, function(index) { - return index <= 14 && index % 2 == 0 + it('#indexDiscovery should look for activity along the scannWindow', function(done) { + mockFakeActivity(function(index) { + return index <= 14 && index % 2 == 0; + }); + w.indexDiscovery(0, false, 5, function(e, lastActive) { + lastActive.should.equal(14); + done(); + }); }); - w.indexDiscovery(0, false, 5, function(e, lastActive) { - lastActive.should.equal(14); - done(); - }); - }); - it('#updateIndexes should update correctly', function(done) { - var w = cachedCreateW2(); - mockFakeActivity(w, function(index) { - return index <= 14 && index % 2 == 0 - }); - w.updateIndexes(function(err) { - w.publicKeyRing.indexes.receiveIndex.should.equal(15); - w.publicKeyRing.indexes.changeIndex.should.equal(15); - done(); - }); - }); + it('#updateIndexes should update correctly', function(done) { + mockFakeActivity(function(index) { + return index <= 14 && index % 2 == 0; + }); - it('#updateIndexes should store and emit event', function(done) { - var w = cachedCreateW2(); - mockFakeActivity(w, function(index) { - return index <= 14 && index % 2 == 0 + w.updateIndexes(function(err) { + w.publicKeyRing.indexes.receiveIndex.should.equal(15); + w.publicKeyRing.indexes.changeIndex.should.equal(15); + done(); + }); }); - var spyStore = sinon.spy(w, 'store'); - var spyEmit = sinon.spy(w, 'emit'); - w.updateIndexes(function(err) { - sinon.assert.callCount(spyStore, 1); - sinon.assert.callCount(spyEmit, 1); - done(); + + it('#updateIndexes should store and emit event', function(done) { + mockFakeActivity(function(index) { + return index <= 14 && index % 2 == 0; + }); + var spyStore = sinon.spy(w, 'store'); + var spyEmit = sinon.spy(w, 'emit'); + w.updateIndexes(function(err) { + sinon.assert.callCount(spyStore, 1); + sinon.assert.callCount(spyEmit, 1); + done(); + }); }); + }); it('#deriveAddresses', function(done) {