parent
90bfa3cbcd
commit
c0516ddf33
@ -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} }, |
||||
}) |
||||
}) |
||||
}) |
Loading…
Reference in new issue