Merge pull request #3069 from tmashuang/uat

Revert integration tests to uat to oldUI
This commit is contained in:
Dan J Miller 2018-01-23 15:08:39 -03:30 committed by GitHub
commit 62ce65c99e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 75 additions and 27 deletions

View File

@ -2,6 +2,16 @@
## Current Master ## Current Master
## 3.13.7 2018-1-22
- Add ability to bypass gas estimation loading indicator.
- Forward failed transactions to Sentry error reporting service
- Re-add changes from 3.13.5
## 3.13.6 2017-1-18
- Roll back changes to 3.13.4 to fix some issues with the new Infura REST provider.
## 3.13.5 2018-1-16 ## 3.13.5 2018-1-16
- Estimating gas limit for simple ether sends now faster & cheaper, by avoiding VM usage on recipients with no code. - Estimating gas limit for simple ether sends now faster & cheaper, by avoiding VM usage on recipients with no code.

View File

@ -1,7 +1,7 @@
{ {
"name": "MetaMask", "name": "MetaMask",
"short_name": "Metamask", "short_name": "Metamask",
"version": "4.0.10", "version": "3.13.7",
"manifest_version": 2, "manifest_version": 2,
"author": "https://metamask.io", "author": "https://metamask.io",
"description": "Ethereum Browser Extension", "description": "Ethereum Browser Extension",

View File

@ -27,7 +27,7 @@ global.METAMASK_NOTIFIER = notificationManager
// setup sentry error reporting // setup sentry error reporting
const release = platform.getVersion() const release = platform.getVersion()
setupRaven({ release }) const raven = setupRaven({ release })
let popupIsOpen = false let popupIsOpen = false
@ -77,6 +77,16 @@ function setupController (initState) {
}) })
global.metamaskController = controller global.metamaskController = controller
// report failed transactions to Sentry
controller.txController.on(`tx:status-update`, (txId, status) => {
if (status !== 'failed') return
const txMeta = controller.txController.txStateManager.getTx(txId)
raven.captureMessage('Transaction Failed', {
// "extra" key is required by Sentry
extra: txMeta,
})
})
// setup state persistence // setup state persistence
pump( pump(
asStream(controller.store), asStream(controller.store),

View File

@ -21,4 +21,6 @@ function setupRaven(opts) {
Raven.config(ravenTarget, { Raven.config(ravenTarget, {
release, release,
}).install() }).install()
return Raven
} }

View File

@ -37,3 +37,8 @@ apis.forEach(function (api) {
extension.runtime.reload = noop extension.runtime.reload = noop
extension.tabs.create = noop extension.tabs.create = noop
extension.runtime.getManifest = function () {
return {
version: 'development'
}
}

View File

@ -23,6 +23,7 @@ const states = require('./development/states')
const Selector = require('./development/selector') const Selector = require('./development/selector')
const MetamaskController = require('./app/scripts/metamask-controller') const MetamaskController = require('./app/scripts/metamask-controller')
const firstTimeState = require('./app/scripts/first-time-state') const firstTimeState = require('./app/scripts/first-time-state')
const ExtensionPlatform = require('./app/scripts/platforms/extension')
const extension = require('./development/mockExtension') const extension = require('./development/mockExtension')
const noop = function () {} const noop = function () {}
@ -67,6 +68,7 @@ const controller = new MetamaskController({
initState: firstTimeState, initState: firstTimeState,
}) })
global.metamaskController = controller global.metamaskController = controller
global.platform = new ExtensionPlatform
// //
// User Interface // User Interface

View File

@ -11,7 +11,7 @@ function LoadingIndicator () {
} }
LoadingIndicator.prototype.render = function () { LoadingIndicator.prototype.render = function () {
const { isLoading, loadingMessage } = this.props const { isLoading, loadingMessage, canBypass, bypass } = this.props
return ( return (
isLoading ? h('.full-flex-height', { isLoading ? h('.full-flex-height', {
@ -28,6 +28,16 @@ LoadingIndicator.prototype.render = function () {
background: 'rgba(255, 255, 255, 0.8)', background: 'rgba(255, 255, 255, 0.8)',
}, },
}, [ }, [
canBypass ? h( 'i.fa.fa-close.cursor-pointer.close-loading', {
style: {
position: 'absolute',
top: '1px',
right: '15px',
color: '#AEAEAE',
},
onClick: bypass,
}) : null,
h('img', { h('img', {
src: 'images/loading.svg', src: 'images/loading.svg',
}), }),

View File

@ -62,8 +62,12 @@ ConfirmTxScreen.prototype.render = function () {
h('.flex-column.flex-grow', [ h('.flex-column.flex-grow', [
h(LoadingIndicator, { h(LoadingIndicator, {
isLoading: txData.loadingDefaults, isLoading: this.state ? !this.state.bypassLoadingScreen : txData.loadingDefaults,
loadingMessage: 'Estimating transaction cost…', loadingMessage: 'Estimating transaction cost…',
canBypass: true,
bypass: () => {
this.setState({bypassLoadingScreen: true})
},
}), }),
// subtitle and nav // subtitle and nav

View File

@ -77,9 +77,8 @@
"eslint-plugin-react": "^7.4.0", "eslint-plugin-react": "^7.4.0",
"eth-bin-to-ops": "^1.0.1", "eth-bin-to-ops": "^1.0.1",
"eth-block-tracker": "^2.3.0", "eth-block-tracker": "^2.3.0",
"eth-contract-metadata": "^1.1.4",
"eth-json-rpc-filters": "^1.2.5", "eth-json-rpc-filters": "^1.2.5",
"eth-json-rpc-infura": "^2.0.7", "eth-json-rpc-infura": "^2.0.11",
"eth-keyring-controller": "^2.1.4", "eth-keyring-controller": "^2.1.4",
"eth-contract-metadata": "^1.1.5", "eth-contract-metadata": "^1.1.5",
"eth-hd-keyring": "^1.2.1", "eth-hd-keyring": "^1.2.1",
@ -114,7 +113,7 @@
"iframe-stream": "^3.0.0", "iframe-stream": "^3.0.0",
"inject-css": "^0.1.1", "inject-css": "^0.1.1",
"jazzicon": "^1.2.0", "jazzicon": "^1.2.0",
"json-rpc-engine": "^3.5.0", "json-rpc-engine": "^3.6.1",
"json-rpc-middleware-stream": "^1.0.1", "json-rpc-middleware-stream": "^1.0.1",
"lodash.debounce": "^4.0.8", "lodash.debounce": "^4.0.8",
"lodash.memoize": "^4.1.2", "lodash.memoize": "^4.1.2",
@ -170,7 +169,7 @@
"valid-url": "^1.0.9", "valid-url": "^1.0.9",
"vreme": "^3.0.2", "vreme": "^3.0.2",
"web3": "^0.20.1", "web3": "^0.20.1",
"web3-provider-engine": "^13.5.0", "web3-provider-engine": "^13.5.6",
"web3-stream-provider": "^3.0.1", "web3-stream-provider": "^3.0.1",
"xtend": "^4.0.1" "xtend": "^4.0.1"
}, },
@ -188,6 +187,7 @@
"brfs": "^1.4.3", "brfs": "^1.4.3",
"browserify": "^14.4.0", "browserify": "^14.4.0",
"chai": "^4.1.0", "chai": "^4.1.0",
"compression": "^1.7.1",
"coveralls": "^3.0.0", "coveralls": "^3.0.0",
"deep-freeze-strict": "^1.1.1", "deep-freeze-strict": "^1.1.1",
"del": "^3.0.0", "del": "^3.0.0",

View File

@ -39,9 +39,8 @@ async function runFirstTimeUsageTest(assert, done) {
await timeout() await timeout()
// Scroll through terms // Scroll through terms
const title = app.find('h1').text() const title = app.find('h1')[1]
// TODO Find where Metamask is getting added twice in the title assert.equal(title.textContent, 'MetaMask', 'title screen')
assert.equal(title, 'MetaMaskMetaMask', 'title screen')
// enter password // enter password
const pwBox = app.find('#password-box')[0] const pwBox = app.find('#password-box')[0]
@ -67,19 +66,19 @@ async function runFirstTimeUsageTest(assert, done) {
await timeout(1000) await timeout(1000)
const detail = app.find('.wallet-view')[0] const detail = app.find('.account-detail-section')[0]
assert.ok(detail, 'Account detail section loaded.') assert.ok(detail, 'Account detail section loaded.')
await timeout(1000) const sandwich = app.find('.sandwich-expando')[0]
sandwich.click()
const menu = app.find('.account-menu__icon')[0] await timeout()
menu.click()
await timeout(1000) const menu = app.find('.menu-droppo')[0]
const children = menu.children
const lock = app.find('.account-menu__logout-button')[0] const logout = children[2]
assert.ok(lock, 'Lock menu item found') assert.ok(logout, 'Lock menu item found')
lock.click() logout.click()
await timeout(1000) await timeout(1000)
@ -91,30 +90,36 @@ async function runFirstTimeUsageTest(assert, done) {
await timeout(1000) await timeout(1000)
const detail2 = app.find('.wallet-view')[0] const detail2 = app.find('.account-detail-section')[0]
assert.ok(detail2, 'Account detail section loaded again.') assert.ok(detail2, 'Account detail section loaded again.')
await timeout() await timeout()
// open account settings dropdown // open account settings dropdown
const qrButton = app.find('.wallet-view__details-button')[0] const qrButton = app.find('.fa.fa-ellipsis-h')[0]
qrButton.click() qrButton.click()
await timeout(1000) await timeout(1000)
const qrHeader = app.find('.editable-label__value')[0] // qr code item
const qrContainer = app.find('.qr-wrapper')[0] const qrButton2 = app.find('.dropdown-menu-item')[1]
qrButton2.click()
await timeout(1000)
const qrHeader = app.find('.qr-header')[0]
const qrContainer = app.find('#qr-container')[0]
assert.equal(qrHeader.textContent, 'Account 1', 'Should show account label.') assert.equal(qrHeader.textContent, 'Account 1', 'Should show account label.')
assert.ok(qrContainer, 'QR Container found') assert.ok(qrContainer, 'QR Container found')
await timeout() await timeout()
const networkMenu = app.find('.network-component')[0] const networkMenu = app.find('.network-indicator')[0]
networkMenu.click() networkMenu.click()
await timeout() await timeout()
const networkMenu2 = app.find('.menu-droppo')[0] const networkMenu2 = app.find('.network-indicator')[0]
const children2 = networkMenu2.children const children2 = networkMenu2.children
children2.length[3] children2.length[3]
assert.ok(children2, 'All network options present') assert.ok(children2, 'All network options present')

View File

@ -342,7 +342,7 @@ class Settings extends Component {
this.renderLogo(), this.renderLogo(),
h('div.settings__info-item', [ h('div.settings__info-item', [
h('div.settings__info-version-header', 'MetaMask Version'), h('div.settings__info-version-header', 'MetaMask Version'),
h('div.settings__info-version-number', version), h('div.settings__info-version-number', `${version}`),
]), ]),
h('div.settings__info-item', [ h('div.settings__info-item', [
h( h(