Don't require leading 0 in amount field (#1718)
Don't require leading 0 in amount field
This commit is contained in:
parent
c2f79128bd
commit
7e605c4058
|
@ -32,8 +32,7 @@ export function* valueHandler(
|
||||||
const unit: string = yield select(getUnit);
|
const unit: string = yield select(getUnit);
|
||||||
const isEth = yield select(isEtherTransaction);
|
const isEth = yield select(isEtherTransaction);
|
||||||
const validNum = isEth ? validNumber : validPositiveNumber;
|
const validNum = isEth ? validNumber : validPositiveNumber;
|
||||||
|
if (!validNum(Number(payload)) || !validDecimal(payload, decimal)) {
|
||||||
if (!validNum(parseInt(payload, 10)) || !validDecimal(payload, decimal)) {
|
|
||||||
return yield put(setter({ raw: payload, value: null }));
|
return yield put(setter({ raw: payload, value: null }));
|
||||||
}
|
}
|
||||||
const value = toTokenBase(payload, decimal);
|
const value = toTokenBase(payload, decimal);
|
||||||
|
@ -59,7 +58,7 @@ export function* reparseCurrentValue(value: IInput): SagaIterator {
|
||||||
const decimal = yield select(getDecimal);
|
const decimal = yield select(getDecimal);
|
||||||
const validNum = isEth ? validNumber : validPositiveNumber;
|
const validNum = isEth ? validNumber : validPositiveNumber;
|
||||||
|
|
||||||
if (validNum(parseInt(value.raw, 10)) && validDecimal(value.raw, decimal)) {
|
if (validNum(Number(value.raw)) && validDecimal(value.raw, decimal)) {
|
||||||
return {
|
return {
|
||||||
raw: value.raw,
|
raw: value.raw,
|
||||||
value: toTokenBase(value.raw, decimal)
|
value: toTokenBase(value.raw, decimal)
|
||||||
|
|
|
@ -45,8 +45,10 @@ describe('valueHandler', () => {
|
||||||
setter
|
setter
|
||||||
);
|
);
|
||||||
gen.invalidZeroToken = cloneableGenerator(valueHandler)(zeroAction, setTokenValue);
|
gen.invalidZeroToken = cloneableGenerator(valueHandler)(zeroAction, setTokenValue);
|
||||||
|
|
||||||
const value = toTokenBase(action.payload, decimal);
|
const value = toTokenBase(action.payload, decimal);
|
||||||
const zeroValue = toTokenBase(zeroAction.payload, decimal);
|
const zeroValue = toTokenBase(zeroAction.payload, decimal);
|
||||||
|
|
||||||
const unit = 'eth';
|
const unit = 'eth';
|
||||||
const isEth = true;
|
const isEth = true;
|
||||||
|
|
||||||
|
@ -76,6 +78,23 @@ describe('valueHandler', () => {
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('handles floats without lead zero', () => {
|
||||||
|
const leadZeroValue = {
|
||||||
|
decimal: 18,
|
||||||
|
action: {
|
||||||
|
payload: '.1'
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const g = cloneableGenerator(valueHandler)(leadZeroValue.action as any, setter);
|
||||||
|
|
||||||
|
expect(g.next().value).toEqual(select(getDecimal));
|
||||||
|
expect(g.next(leadZeroValue.decimal).value).toEqual(select(getUnit));
|
||||||
|
expect(g.next(unit).value).toEqual(select(isEtherTransaction));
|
||||||
|
expect(g.next(isEth).value).not.toEqual(
|
||||||
|
put(setter({ raw: leadZeroValue.action.payload, value: null }))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
it('should fail on invalid number or decimal and put null as value', () => {
|
it('should fail on invalid number or decimal and put null as value', () => {
|
||||||
expect(gen.invalidNumber.next(isEth).value).toEqual(
|
expect(gen.invalidNumber.next(isEth).value).toEqual(
|
||||||
put(setter({ raw: failCases.invalidNumber.action.payload, value: null }))
|
put(setter({ raw: failCases.invalidNumber.action.payload, value: null }))
|
||||||
|
|
Loading…
Reference in New Issue