diff options
author | Dan Finlay <dan@danfinlay.com> | 2017-05-17 15:09:59 +0800 |
---|---|---|
committer | Dan Finlay <dan@danfinlay.com> | 2017-05-17 15:10:18 +0800 |
commit | c0516ddf333336a7784787a02183c4fe212364b9 (patch) | |
tree | 6ff68554ec056e6f344c988b3827ef6d9b6424c0 | |
parent | 90bfa3cbcdbe0ace28bb25ecb350b1080a4139d4 (diff) | |
download | tangerine-wallet-browser-c0516ddf333336a7784787a02183c4fe212364b9.tar tangerine-wallet-browser-c0516ddf333336a7784787a02183c4fe212364b9.tar.gz tangerine-wallet-browser-c0516ddf333336a7784787a02183c4fe212364b9.tar.bz2 tangerine-wallet-browser-c0516ddf333336a7784787a02183c4fe212364b9.tar.lz tangerine-wallet-browser-c0516ddf333336a7784787a02183c4fe212364b9.tar.xz tangerine-wallet-browser-c0516ddf333336a7784787a02183c4fe212364b9.tar.zst tangerine-wallet-browser-c0516ddf333336a7784787a02183c4fe212364b9.zip |
Add test requiring high precision
-rw-r--r-- | test/unit/components/bn-as-decimal-input-test.js | 59 | ||||
-rw-r--r-- | test/unit/components/pending-tx-test.js | 2 |
2 files changed, 60 insertions, 1 deletions
diff --git a/test/unit/components/bn-as-decimal-input-test.js b/test/unit/components/bn-as-decimal-input-test.js new file mode 100644 index 000000000..4ea910fb0 --- /dev/null +++ b/test/unit/components/bn-as-decimal-input-test.js @@ -0,0 +1,59 @@ +var assert = require('assert') + +const additions = require('react-testutils-additions') +const h = require('react-hyperscript') +const ReactTestUtils = require('react-addons-test-utils') +const ethUtil = require('ethereumjs-util') +const BN = ethUtil.BN + +var BnInput = require('../../../ui/app/components/bn-as-decimal-input') + +describe.only('BnInput', function () { + let bnInput + const message = 'Hello, world!' + const buffer = new Buffer(message, 'utf8') + const hex = buffer.toString('hex') + + it('can tolerate a large number at a high precision', function (done) { + + const renderer = ReactTestUtils.createRenderer(); + + let valueStr = '1' + while (valueStr.length < 18 + 7) { + valueStr += '0' + } + const value = new BN(valueStr, 10) + + let inputStr = '11' + while (inputStr.length < 7) { + inputStr += '0' + } + inputStr += '.01' + + let targetStr = inputStr.split('.').join() + while (targetStr.length < 18 + 7) { + targetStr += '0' + } + const target = new BN(targetStr, 10) + + const precision = 1e18 // ether precision + + const props = { + value, + precision, + onChange: (newBn) => { + assert.equal(newBn.toString(), targetValue.toString(), 'should tolerate increase') + done() + } + } + + const inputComponent = h(BnInput, props) + const component = additions.renderIntoDocument(inputComponent) + renderer.render(inputComponent) + const input = additions.find(component, 'input.hex-input')[0] + ReactTestUtils.Simulate.change(input, { preventDefault() {}, target: { + value: inputStr, + checkValidity() {return true} }, + }) + }) +}) diff --git a/test/unit/components/pending-tx-test.js b/test/unit/components/pending-tx-test.js index fe8290003..166b471cb 100644 --- a/test/unit/components/pending-tx-test.js +++ b/test/unit/components/pending-tx-test.js @@ -9,7 +9,7 @@ const Factory = createReactFactory(PendingTx) const ReactTestUtils = require('react-addons-test-utils') const ethUtil = require('ethereumjs-util') -describe.only('PendingTx', function () { +describe('PendingTx', function () { let pendingTxComponent const identities = { |