1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 09:57:02 +01:00

Merge pull request #8443 from MetaMask/return-promise-from-set-rpc-target

Return Promise from `setRpcTarget`
This commit is contained in:
Mark Stacey 2020-04-28 13:56:46 -03:00 committed by GitHub
commit da373713da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 20 deletions

View File

@ -1105,31 +1105,27 @@ describe('Actions', function () {
describe('#setRpcTarget', function () {
let setRpcTargetSpy
beforeEach(function () {
setRpcTargetSpy = sinon.stub(background, 'setCustomRpc')
})
afterEach(function () {
setRpcTargetSpy.restore()
})
it('calls setRpcTarget', function () {
it('calls setRpcTarget', async function () {
setRpcTargetSpy = sinon.stub(background, 'setCustomRpc')
.callsArgWith(4, null)
const store = mockStore()
store.dispatch(actions.setRpcTarget('http://localhost:8545'))
await store.dispatch(actions.setRpcTarget('http://localhost:8545'))
assert(setRpcTargetSpy.calledOnce)
})
it('displays warning when setRpcTarget throws', function () {
it('displays warning when setRpcTarget throws', async function () {
setRpcTargetSpy = sinon.stub(background, 'setCustomRpc')
.callsArgWith(4, new Error('error'))
const store = mockStore()
const expectedActions = [
{ type: 'DISPLAY_WARNING', value: 'Had a problem changing networks!' },
]
setRpcTargetSpy.callsFake((_, __, ___, ____, callback) => {
callback(new Error('error'))
})
store.dispatch(actions.setRpcTarget())
await store.dispatch(actions.setRpcTarget())
assert.deepEqual(store.getActions(), expectedActions)
})
})

View File

@ -1492,15 +1492,17 @@ export function editRpc (oldRpc, newRpc, chainId, ticker = 'ETH', nickname, rpcP
}
export function setRpcTarget (newRpc, chainId, ticker = 'ETH', nickname) {
return (dispatch) => {
return async (dispatch) => {
log.debug(`background.setRpcTarget: ${newRpc} ${chainId} ${ticker} ${nickname}`)
background.setCustomRpc(newRpc, chainId, ticker, nickname || newRpc, (err) => {
if (err) {
log.error(err)
return dispatch(displayWarning('Had a problem changing networks!'))
}
dispatch(setSelectedToken())
})
try {
await promisifiedBackground.setCustomRpc(newRpc, chainId, ticker, nickname || newRpc)
} catch (error) {
log.error(error)
dispatch(displayWarning('Had a problem changing networks!'))
return
}
dispatch(setSelectedToken())
}
}