mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-26 12:29:06 +01:00
implemented improvements to RPC history
This commit is contained in:
parent
25eac2334b
commit
b23cca1469
@ -338,7 +338,7 @@ class PreferencesController {
|
|||||||
if (_url !== 'http://localhost:8545') {
|
if (_url !== 'http://localhost:8545') {
|
||||||
rpcList.push(_url)
|
rpcList.push(_url)
|
||||||
}
|
}
|
||||||
if (rpcList.length > 2) {
|
if (rpcList.length > 3) {
|
||||||
rpcList.shift()
|
rpcList.shift()
|
||||||
}
|
}
|
||||||
return Promise.resolve(rpcList)
|
return Promise.resolve(rpcList)
|
||||||
|
@ -1011,4 +1011,64 @@ describe('MetaMask', function () {
|
|||||||
await delay(regularDelayMs)
|
await delay(regularDelayMs)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('Stores custom RPC history', () => {
|
||||||
|
const customRpcUrls = [
|
||||||
|
'https://mainnet.infura.io/1',
|
||||||
|
'https://mainnet.infura.io/2',
|
||||||
|
'https://mainnet.infura.io/3',
|
||||||
|
'https://mainnet.infura.io/4',
|
||||||
|
]
|
||||||
|
|
||||||
|
customRpcUrls.forEach(customRpcUrl => {
|
||||||
|
it('creates custom RPC: ' + customRpcUrl, async () => {
|
||||||
|
const networkDropdown = await findElement(driver, By.css('.network-name'))
|
||||||
|
await networkDropdown.click()
|
||||||
|
await delay(regularDelayMs)
|
||||||
|
|
||||||
|
const customRpcButton = await findElement(driver, By.xpath(`//span[contains(text(), 'Custom RPC')]`))
|
||||||
|
await customRpcButton.click()
|
||||||
|
await delay(regularDelayMs)
|
||||||
|
|
||||||
|
const customRpcInput = await findElement(driver, By.css('input[placeholder="New RPC URL"]'))
|
||||||
|
await customRpcInput.clear()
|
||||||
|
await customRpcInput.sendKeys(customRpcUrl)
|
||||||
|
|
||||||
|
const customRpcSave = await findElement(driver, By.css('.settings__rpc-save-button'))
|
||||||
|
await customRpcSave.click()
|
||||||
|
await delay(largeDelayMs * 2)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('selects another provider', async () => {
|
||||||
|
const networkDropdown = await findElement(driver, By.css('.network-name'))
|
||||||
|
await networkDropdown.click()
|
||||||
|
await delay(regularDelayMs)
|
||||||
|
|
||||||
|
const customRpcButton = await findElement(driver, By.xpath(`//span[contains(text(), 'Main Ethereum Network')]`))
|
||||||
|
await customRpcButton.click()
|
||||||
|
await delay(largeDelayMs * 2)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('finds 3 recent RPCs in history', async () => {
|
||||||
|
const networkDropdown = await findElement(driver, By.css('.network-name'))
|
||||||
|
await networkDropdown.click()
|
||||||
|
await delay(regularDelayMs)
|
||||||
|
|
||||||
|
// oldest selected RPC is not found
|
||||||
|
await assertElementNotPresent(webdriver, driver, By.xpath(`//span[contains(text(), '${customRpcUrls[0]}')]`))
|
||||||
|
|
||||||
|
// only recent 3 are found and in correct order (most recent at the top)
|
||||||
|
const customRpcs = await findElements(driver, By.xpath(`//span[contains(text(), 'https://mainnet.infura.io/')]`))
|
||||||
|
|
||||||
|
assert.equal(customRpcs.length, 3)
|
||||||
|
|
||||||
|
for (let i = 0; i < customRpcs.length; i++) {
|
||||||
|
const linkText = await customRpcs[i].getText()
|
||||||
|
const rpcUrl = customRpcUrls[customRpcUrls.length - i - 1]
|
||||||
|
|
||||||
|
assert.notEqual(linkText.indexOf(rpcUrl), -1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
@ -275,7 +275,9 @@ NetworkDropdown.prototype.renderCommonRpc = function (rpcList, provider) {
|
|||||||
const rpcTarget = provider.rpcTarget
|
const rpcTarget = provider.rpcTarget
|
||||||
|
|
||||||
return rpcList.map((rpc) => {
|
return rpcList.map((rpc) => {
|
||||||
if ((rpc === 'http://localhost:8545') || (rpc === rpcTarget)) {
|
const currentRpcTarget = provider.type === 'rpc' && rpc === rpcTarget
|
||||||
|
|
||||||
|
if ((rpc === 'http://localhost:8545') || currentRpcTarget) {
|
||||||
return null
|
return null
|
||||||
} else {
|
} else {
|
||||||
return h(
|
return h(
|
||||||
@ -291,17 +293,17 @@ NetworkDropdown.prototype.renderCommonRpc = function (rpcList, provider) {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
[
|
[
|
||||||
rpcTarget === rpc ? h('i.fa.fa-check') : h('.network-check__transparent', '✓'),
|
currentRpcTarget ? h('i.fa.fa-check') : h('.network-check__transparent', '✓'),
|
||||||
h('i.fa.fa-question-circle.fa-med.menu-icon-circle'),
|
h('i.fa.fa-question-circle.fa-med.menu-icon-circle'),
|
||||||
h('span.network-name-item', {
|
h('span.network-name-item', {
|
||||||
style: {
|
style: {
|
||||||
color: rpcTarget === rpc ? '#ffffff' : '#9b9b9b',
|
color: currentRpcTarget ? '#ffffff' : '#9b9b9b',
|
||||||
},
|
},
|
||||||
}, rpc),
|
}, rpc),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
})
|
}).reverse()
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkDropdown.prototype.renderCustomOption = function (provider) {
|
NetworkDropdown.prototype.renderCustomOption = function (provider) {
|
||||||
|
Loading…
Reference in New Issue
Block a user