aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
authorDan Finlay <dan@danfinlay.com>2017-05-17 15:16:26 +0800
committerDan Finlay <dan@danfinlay.com>2017-05-17 15:16:26 +0800
commitc2b012ccc577da1c07b5467d9b3364159eeea7b8 (patch)
treefad96756c4516b07aa79f04e4fc9786673a4c277 /test/unit
parent340b91f07b3411624905da08943d46f80027186c (diff)
parent965a72486ff8745e86cd81a93c880904416d4c58 (diff)
downloadtangerine-wallet-browser-c2b012ccc577da1c07b5467d9b3364159eeea7b8.tar
tangerine-wallet-browser-c2b012ccc577da1c07b5467d9b3364159eeea7b8.tar.gz
tangerine-wallet-browser-c2b012ccc577da1c07b5467d9b3364159eeea7b8.tar.bz2
tangerine-wallet-browser-c2b012ccc577da1c07b5467d9b3364159eeea7b8.tar.lz
tangerine-wallet-browser-c2b012ccc577da1c07b5467d9b3364159eeea7b8.tar.xz
tangerine-wallet-browser-c2b012ccc577da1c07b5467d9b3364159eeea7b8.tar.zst
tangerine-wallet-browser-c2b012ccc577da1c07b5467d9b3364159eeea7b8.zip
Merge branch 'master' into i1412-BrutalTests
Diffstat (limited to 'test/unit')
-rw-r--r--test/unit/components/pending-tx-test.js27
-rw-r--r--test/unit/tx-controller-test.js87
2 files changed, 95 insertions, 19 deletions
diff --git a/test/unit/components/pending-tx-test.js b/test/unit/components/pending-tx-test.js
index 166b471cb..52e5e5910 100644
--- a/test/unit/components/pending-tx-test.js
+++ b/test/unit/components/pending-tx-test.js
@@ -2,16 +2,10 @@ const assert = require('assert')
const additions = require('react-testutils-additions')
const h = require('react-hyperscript')
const PendingTx = require('../../../ui/app/components/pending-tx')
-const createReactFactory = require('create-react-factory').createReactFactory
-const React = require('react')
-const shallow = require('react-test-renderer/shallow')
-const Factory = createReactFactory(PendingTx)
const ReactTestUtils = require('react-addons-test-utils')
const ethUtil = require('ethereumjs-util')
describe('PendingTx', function () {
- let pendingTxComponent
-
const identities = {
'0xfdea65c8e26263f6d9a1b5de9555d2931a33b826': {
name: 'Main Account 1',
@@ -38,7 +32,7 @@ describe('PendingTx', function () {
it('should use updated values when edited.', function (done) {
- const renderer = ReactTestUtils.createRenderer();
+ const renderer = ReactTestUtils.createRenderer()
const newGasPrice = '0x77359400'
const props = {
@@ -56,34 +50,31 @@ describe('PendingTx', function () {
}
const pendingTxComponent = h(PendingTx, props)
- const component = additions.renderIntoDocument(pendingTxComponent);
+ const component = additions.renderIntoDocument(pendingTxComponent)
renderer.render(pendingTxComponent)
const result = renderer.getRenderOutput()
- const form = result.props.children
- const children = form.props.children[form.props.children.length - 1]
assert.equal(result.type, 'div', 'should create a div')
- try{
-
+ try {
const input = additions.find(component, '.cell.row input[type="number"]')[1]
ReactTestUtils.Simulate.change(input, {
target: {
value: 2,
checkValidity() { return true },
- }
+ },
})
- let form = additions.find(component, 'form')[0]
+ const form = additions.find(component, 'form')[0]
form.checkValidity = () => true
form.getFormEl = () => { return { checkValidity() { return true } } }
- ReactTestUtils.Simulate.submit(form, { preventDefault() {}, target: { checkValidity() {return true} } })
+ ReactTestUtils.Simulate.submit(form, { preventDefault() {}, target: { checkValidity() {
+ return true
+ } } })
} catch (e) {
- console.log("WHAAAA")
+ console.log('WHAAAA')
console.error(e)
}
-
})
-
})
diff --git a/test/unit/tx-controller-test.js b/test/unit/tx-controller-test.js
index d0b32ff41..d4e8d79f0 100644
--- a/test/unit/tx-controller-test.js
+++ b/test/unit/tx-controller-test.js
@@ -3,13 +3,15 @@ const EventEmitter = require('events')
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
const otherNetworkId = 36
const privKey = new Buffer('8718b9618a37d1fc78c436511fc6df3c8258d3250635bba617f33003270ec03e', 'hex')
-describe('Transaction Manager', function () {
+describe('Transaction Controller', function () {
let txController
beforeEach(function () {
@@ -170,6 +172,28 @@ describe('Transaction Manager', function () {
var result = txController.getTx('1')
assert.equal(result.hash, 'foo')
})
+
+ it('updates gas price', function () {
+ const originalGasPrice = '0x01'
+ const desiredGasPrice = '0x02'
+
+ const txMeta = {
+ id: '1',
+ status: 'unapproved',
+ metamaskNetworkId: currentNetworkId,
+ txParams: {
+ gasPrice: originalGasPrice,
+ },
+ }
+
+ const updatedMeta = clone(txMeta)
+
+ txController.addTx(txMeta)
+ updatedMeta.txParams.gasPrice = desiredGasPrice
+ txController.updateTx(updatedMeta)
+ var result = txController.getTx('1')
+ assert.equal(result.txParams.gasPrice, desiredGasPrice, 'gas price updated')
+ })
})
describe('#getUnapprovedTxList', function () {
@@ -224,6 +248,66 @@ describe('Transaction Manager', 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)
@@ -234,4 +318,5 @@ describe('Transaction Manager', function () {
})
})
})
+
})