mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-26 04:20:53 +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') {
|
||||
rpcList.push(_url)
|
||||
}
|
||||
if (rpcList.length > 2) {
|
||||
if (rpcList.length > 3) {
|
||||
rpcList.shift()
|
||||
}
|
||||
return Promise.resolve(rpcList)
|
||||
|
@ -1011,4 +1011,64 @@ describe('MetaMask', function () {
|
||||
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
|
||||
|
||||
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
|
||||
} else {
|
||||
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('span.network-name-item', {
|
||||
style: {
|
||||
color: rpcTarget === rpc ? '#ffffff' : '#9b9b9b',
|
||||
color: currentRpcTarget ? '#ffffff' : '#9b9b9b',
|
||||
},
|
||||
}, rpc),
|
||||
]
|
||||
)
|
||||
}
|
||||
})
|
||||
}).reverse()
|
||||
}
|
||||
|
||||
NetworkDropdown.prototype.renderCustomOption = function (provider) {
|
||||
|
Loading…
Reference in New Issue
Block a user