aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit/tx-controller-test.js
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2017-05-17 09:16:18 +0800
committerDan Finlay <dan@danfinlay.com>2017-05-17 09:16:18 +0800
commit6491b42266b2114af72e72a46a6453dc3dd59290 (patch)
tree0bb794cfda4df75d76ce88f5845552537c3841cd /test/unit/tx-controller-test.js
parentc6fd5090519af64bbe3d29346484bcf45572d3c2 (diff)
downloadtangerine-wallet-browser-6491b42266b2114af72e72a46a6453dc3dd59290.tar
tangerine-wallet-browser-6491b42266b2114af72e72a46a6453dc3dd59290.tar.gz
tangerine-wallet-browser-6491b42266b2114af72e72a46a6453dc3dd59290.tar.bz2
tangerine-wallet-browser-6491b42266b2114af72e72a46a6453dc3dd59290.tar.lz
tangerine-wallet-browser-6491b42266b2114af72e72a46a6453dc3dd59290.tar.xz
tangerine-wallet-browser-6491b42266b2114af72e72a46a6453dc3dd59290.tar.zst
tangerine-wallet-browser-6491b42266b2114af72e72a46a6453dc3dd59290.zip
Add test around txManager#approveTransaction
Diffstat (limited to 'test/unit/tx-controller-test.js')
-rw-r--r--test/unit/tx-controller-test.js67
1 files changed, 64 insertions, 3 deletions
diff --git a/test/unit/tx-controller-test.js b/test/unit/tx-controller-test.js
index e6645090e..d4e8d79f0 100644
--- a/test/unit/tx-controller-test.js
+++ b/test/unit/tx-controller-test.js
@@ -4,6 +4,7 @@ const ethUtil = require('ethereumjs-util')
const EthTx = require('ethereumjs-tx')
const ObservableStore = require('obs-store')
const clone = require('clone')
+const sinon = require('sinon')
const TransactionController = require('../../app/scripts/controllers/transactions')
const noop = () => true
const currentNetworkId = 42
@@ -174,7 +175,7 @@ describe('Transaction Controller', function () {
it('updates gas price', function () {
const originalGasPrice = '0x01'
- const desiredGasPriced = '0x02'
+ const desiredGasPrice = '0x02'
const txMeta = {
id: '1',
@@ -188,10 +189,10 @@ describe('Transaction Controller', function () {
const updatedMeta = clone(txMeta)
txController.addTx(txMeta)
- updatedMeta.txParams.gasPrice = desiredGasPriced
+ updatedMeta.txParams.gasPrice = desiredGasPrice
txController.updateTx(updatedMeta)
var result = txController.getTx('1')
- assert.equal(result.txParams.gasPrice, desiredGasPriced, 'gas price updated')
+ assert.equal(result.txParams.gasPrice, desiredGasPrice, 'gas price updated')
})
})
@@ -247,6 +248,66 @@ describe('Transaction Controller', function () {
})
})
+ describe('#approveTransaction', function () {
+ let txMeta, originalValue
+
+ beforeEach(function () {
+ originalValue = '0x01'
+ txMeta = {
+ id: '1',
+ status: 'unapproved',
+ metamaskNetworkId: currentNetworkId,
+ txParams: {
+ nonce: originalValue,
+ gas: originalValue,
+ gasPrice: originalValue,
+ },
+ }
+ })
+
+
+ it('does not overwrite set values', function (done) {
+ const wrongValue = '0x05'
+
+ txController.addTx(txMeta)
+
+ const estimateStub = sinon.stub(txController.txProviderUtils.query, 'estimateGas')
+ .callsArgWith(1, null, wrongValue)
+
+ const priceStub = sinon.stub(txController.txProviderUtils.query, 'gasPrice')
+ .callsArgWith(0, null, wrongValue)
+
+ const nonceStub = sinon.stub(txController.txProviderUtils.query, 'getTransactionCount')
+ .callsArgWith(2, null, wrongValue)
+
+ const signStub = sinon.stub(txController, 'signTransaction')
+ .callsArgWith(1, null, noop)
+
+ const pubStub = sinon.stub(txController.txProviderUtils, 'publishTransaction')
+ .callsArgWith(1, null, originalValue)
+
+ txController.approveTransaction(txMeta.id, (err) => {
+ assert.ifError(err, 'should not error')
+
+ const result = txController.getTx(txMeta.id)
+ const params = result.txParams
+
+ assert.equal(params.gas, originalValue, 'gas unmodified')
+ assert.equal(params.gasPrice, originalValue, 'gas price unmodified')
+ assert.equal(params.nonce, originalValue, 'nonce unmodified')
+ assert.equal(result.hash, originalValue, 'hash was set')
+
+ estimateStub.restore()
+ priceStub.restore()
+ signStub.restore()
+ nonceStub.restore()
+ pubStub.restore()
+
+ done()
+ })
+ })
+ })
+
describe('#sign replay-protected tx', function () {
it('prepares a tx with the chainId set', function () {
txController.addTx({ id: '1', status: 'unapproved', metamaskNetworkId: currentNetworkId, txParams: {} }, noop)