From 0710c002ca9a9d9fb153a2e03ab6b27a3637b6ad Mon Sep 17 00:00:00 2001 From: Ivan Socolsky Date: Wed, 27 Aug 2014 10:36:01 -0300 Subject: [PATCH] Fail to send should check if already sent --- js/models/core/Wallet.js | 2 +- test/mocks/FakeBlockchain.js | 5 +++++ test/test.Wallet.js | 12 ++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/js/models/core/Wallet.js b/js/models/core/Wallet.js index 385368c17..f214625a6 100644 --- a/js/models/core/Wallet.js +++ b/js/models/core/Wallet.js @@ -817,7 +817,7 @@ Wallet.prototype.sendTx = function(ntxid, cb) { self.store(); return cb(txid); } else { - self.log('Sent failed. Checking is the TX was sent already'); + self.log('Sent failed. Checking if the TX was sent already'); self._checkSentTx(ntxid, function(txid) { if (txid) self.store(); diff --git a/test/mocks/FakeBlockchain.js b/test/mocks/FakeBlockchain.js index e4c3997bc..8438d8a75 100644 --- a/test/mocks/FakeBlockchain.js +++ b/test/mocks/FakeBlockchain.js @@ -46,4 +46,9 @@ FakeBlockchain.prototype.sendRawTransaction = function(rawtx, cb) { return cb(txid); }; +FakeBlockchain.prototype.checkSentTx = function (tx, cb) { + var txid = '0be0fb4579911be829e3077202e1ab47fcc12cf3ab8f8487ccceae768e1f95fa'; + return cb(null, txid); +}; + module.exports = FakeBlockchain; diff --git a/test/test.Wallet.js b/test/test.Wallet.js index 5e79f01d7..cdd8af1a1 100644 --- a/test/test.Wallet.js +++ b/test/test.Wallet.js @@ -756,6 +756,18 @@ describe('Wallet model', function() { done(); }); }); + it('should check if transaction already sent when failing to send', function(done) { + var w = createW2(null, 1); + var utxo = createUTXO(w); + w.blockchain.fixUnspent(utxo); + w.createTx(toAddress, amountSatStr, null, function(ntxid) { + sinon.stub(w.blockchain, 'sendRawTransaction').yields(undefined); + var spyCheckSentTx = sinon.spy(w, '_checkSentTx'); + w.sendTx(ntxid, function () {}); + chai.expect(spyCheckSentTx.calledOnce).to.be.true; + done(); + }); + }); it('should send TxProposal', function(done) { var w = cachedCreateW2(); var utxo = createUTXO(w);