diff options
-rw-r--r-- | test/e2e/beta/metamask-beta-ui.spec.js | 23 | ||||
-rw-r--r-- | ui/app/components/input-number.js | 12 |
2 files changed, 26 insertions, 9 deletions
diff --git a/test/e2e/beta/metamask-beta-ui.spec.js b/test/e2e/beta/metamask-beta-ui.spec.js index 6391e686e..9711bf821 100644 --- a/test/e2e/beta/metamask-beta-ui.spec.js +++ b/test/e2e/beta/metamask-beta-ui.spec.js @@ -378,9 +378,8 @@ describe('MetaMask', function () { const transactions = await findElements(driver, By.css('.tx-list-item')) assert.equal(transactions.length, 1) - const txValues = await findElements(driver, By.css('.tx-list-value')) - assert.equal(txValues.length, 1) - assert.equal(await txValues[0].getText(), '1 ETH') + const txValues = await findElement(driver, By.css('.tx-list-value')) + await driver.wait(until.elementTextMatches(txValues, /1\sETH/), 10000) }) }) @@ -524,6 +523,8 @@ describe('MetaMask', function () { describe('Add a custom token from TokenFactory', () => { it('creates a new token', async () => { openNewPage(driver, 'https://tokenfactory.surge.sh/#/factory') + + await delay(regularDelayMs * 10) const [extension, tokenFactory] = await driver.getAllWindowHandles() const [ @@ -552,12 +553,15 @@ describe('MetaMask', function () { await driver.switchTo().window(tokenFactory) await delay(regularDelayMs) + const tokenContactAddress = await driver.findElement(By.css('div > div > div:nth-child(2) > span:nth-child(3)')) tokenAddress = await tokenContactAddress.getText() + await driver.close() await driver.switchTo().window(extension) await loadExtension(driver, extensionId) await delay(regularDelayMs) + }) it('clicks on the Add Token button', async () => { @@ -641,6 +645,7 @@ describe('MetaMask', function () { const txValues = await findElements(driver, By.css('.tx-list-value')) assert.equal(txValues.length, 1) + await delay(regularDelayMs) assert.equal(await txValues[0].getText(), '50 TST') const txStatuses = await findElements(driver, By.css('.tx-list-status')) const tx = await driver.wait(until.elementTextMatches(txStatuses[0], /Confirmed|Failed/)) @@ -684,16 +689,24 @@ describe('MetaMask', function () { const [gasPriceInput, gasLimitInput] = await findElements(driver, By.css('.customize-gas-input')) await gasPriceInput.clear() + await delay(tinyDelayMs) await gasPriceInput.sendKeys('10') + await delay(tinyDelayMs) await gasLimitInput.clear() + await delay(tinyDelayMs) + await gasLimitInput.sendKeys(Key.chord(Key.CONTROL, 'a')) await gasLimitInput.sendKeys('60000') + await gasLimitInput.sendKeys(Key.chord(Key.CONTROL, 'e')) + if (process.env.SELENIUM_BROWSER === 'firefox') { + await gasLimitInput.sendKeys(Key.BACK_SPACE) + } + await delay(tinyDelayMs) - const save = await findElement(driver, By.xpath(`//button[contains(text(), 'Save')]`)) + const save = await findElement(driver, By.css('.send-v2__customize-gas__save')) await save.click() await driver.wait(until.stalenessOf(gasModal)) const gasFeeInput = await findElement(driver, By.css('.currency-display__input')) - await delay(regularDelayMs) assert.equal(await gasFeeInput.getAttribute('value'), 0.0006) }) diff --git a/ui/app/components/input-number.js b/ui/app/components/input-number.js index de5fcca54..59c6842ef 100644 --- a/ui/app/components/input-number.js +++ b/ui/app/components/input-number.js @@ -22,12 +22,16 @@ function isValidInput (text) { return re.test(text) } +function removeLeadingZeroes (str) { + return str.replace(/^0*(?=\d)/, '') +} + InputNumber.prototype.setValue = function (newValue) { + newValue = removeLeadingZeroes(newValue) if (newValue && !isValidInput(newValue)) return const { fixed, min = -1, max = Infinity, onChange } = this.props newValue = fixed ? newValue.toFixed(4) : newValue - const newValueGreaterThanMin = conversionGTE( { value: newValue || '0', fromNumericBase: 'dec' }, { value: min, fromNumericBase: 'hex' }, @@ -47,7 +51,7 @@ InputNumber.prototype.setValue = function (newValue) { } InputNumber.prototype.render = function () { - const { unitLabel, step = 1, placeholder, value = 0 } = this.props + const { unitLabel, step = 1, placeholder, value } = this.props return h('div.customize-gas-input-wrapper', {}, [ h('input', { @@ -63,11 +67,11 @@ InputNumber.prototype.render = function () { h('span.gas-tooltip-input-detail', {}, [unitLabel]), h('div.gas-tooltip-input-arrows', {}, [ h('i.fa.fa-angle-up', { - onClick: () => this.setValue(addCurrencies(value, step)), + onClick: () => this.setValue(addCurrencies(value, step, { toNumericBase: 'dec' })), }), h('i.fa.fa-angle-down', { style: { cursor: 'pointer' }, - onClick: () => this.setValue(subtractCurrencies(value, step)), + onClick: () => this.setValue(subtractCurrencies(value, step, { toNumericBase: 'dec' })), }), ]), ]) |