diff --git a/apps/remix-ide-e2e/src/tests/runAndDeploy.ts b/apps/remix-ide-e2e/src/tests/runAndDeploy.ts index 918aeba0b5..31a4c0942f 100644 --- a/apps/remix-ide-e2e/src/tests/runAndDeploy.ts +++ b/apps/remix-ide-e2e/src/tests/runAndDeploy.ts @@ -23,6 +23,24 @@ module.exports = { .assert.containsText('*[data-id="sidePanelSwapitTitle"]', 'DEPLOY & RUN TRANSACTIONS') }, + 'Should load run and deploy tab and check value validation': function (browser: NightwatchBrowser) { + browser.waitForElementPresent('*[data-id="remixIdeSidePanel"]') + .clickLaunchIcon('udapp') + .waitForElementPresent('*[data-id="sidePanelSwapitTitle"]') + .assert.containsText('*[data-id="sidePanelSwapitTitle"]', 'DEPLOY & RUN TRANSACTIONS') + .clearValue('#value') + .setValue('#value', '0000') + .assert.containsText('*[data-id="dandrValue"]', '0') + .clearValue('#value') + .setValue('#value', '-44') + .assert.containsText('*[data-id="dandrValue"]', '44') + .clearValue('#value') + .setValue('#value', '') + .assert.containsText('*[data-id="dandrValue"]', '0') + .setValue('#value', 'dragon') + .assert.containsText('*[data-id="dandrValue"]', '0') + }, + 'Should sign message using account key': function (browser: NightwatchBrowser) { browser.waitForElementPresent('*[data-id="settingsRemixRunSignMsg"]') .click('*[data-id="settingsRemixRunSignMsg"]') diff --git a/apps/remix-ide/src/app/tabs/runTab/settings.js b/apps/remix-ide/src/app/tabs/runTab/settings.js index e47e8c1ddc..a10aac0fa4 100644 --- a/apps/remix-ide/src/app/tabs/runTab/settings.js +++ b/apps/remix-ide/src/app/tabs/runTab/settings.js @@ -54,7 +54,15 @@ class SettingsUI { } validateValue () { - if (this.el.querySelector('#value').value === '') this.el.querySelector('#value').value = 0 + const valueEl = this.el.querySelector('#value') + valueEl.value = parseInt(valueEl.value) + // assign 0 if given value is + // - empty + // - not valid (for ex 4345-54) + // - contains only '0's (for ex 00..0) + if (!valueEl.value) valueEl.value = 0 + // if giveen value is negative, ignore '-' + if (valueEl.value < 0) valueEl.value = Math.abs(valueEl.value) } render () { @@ -126,6 +134,7 @@ class SettingsUI { min="0" class="form-control ${css.gasNval} ${css.col2}" id="value" + data-id="dandrValue" value="0" title="Enter the value and choose the unit" onchange=${() => this.validateValue()}