added unit tests for metamaskcontroller

feature/default_network_editable
brunobar79 6 years ago
parent 41879a9835
commit e5512c306d
  1. 20
      app/scripts/metamask-controller.js
  2. 70
      test/unit/app/controllers/metamask-controller-test.js

@ -561,10 +561,15 @@ module.exports = class MetamaskController extends EventEmitter {
return accounts
default:
throw new Error('MetamaskController - Unknown device')
throw new Error('MetamaskController:connectHardware - Unknown device')
}
}
/**
* Check if the device is unlocked
*
* @returns {Promise<boolean>}
*/
async checkHardwareStatus (deviceName) {
switch (deviceName) {
@ -574,12 +579,19 @@ module.exports = class MetamaskController extends EventEmitter {
'Trezor Hardware'
)[0]
if (!keyring) {
return false
throw new Error('MetamaskController:checkHardwareStatus - Trezor Hardware keyring not found')
}
return keyring.isUnlocked()
default:
throw new Error('MetamaskController:checkHardwareStatus - Unknown device')
}
}
/**
* Clear
*
* @returns {Promise<boolean>}
*/
async forgetDevice (deviceName) {
switch (deviceName) {
@ -589,10 +601,12 @@ module.exports = class MetamaskController extends EventEmitter {
'Trezor Hardware'
)[0]
if (!keyring) {
return false
throw new Error('MetamaskController:forgetDevice - Trezor Hardware keyring not found')
}
keyring.forgetDevice()
return true
default:
throw new Error('MetamaskController:forgetDevice - Unknown device')
}
}

@ -222,6 +222,76 @@ describe('MetaMaskController', function () {
})
})
describe('connectHardware', function () {
it('should throw if it receives an unknown device name', async function () {
try {
await metamaskController.connectHardware('Some random device name', 0)
} catch (e) {
assert.equal(e, 'Error: MetamaskController:connectHardware - Unknown device')
}
})
it('should add the Trezor Hardware keyring', async function () {
await metamaskController.connectHardware('trezor', 0).catch((e) => null)
const keyrings = await metamaskController.keyringController.getKeyringsByType(
'Trezor Hardware'
)
assert.equal(keyrings.length, 1)
})
})
describe('checkHardwareStatus', function () {
it('should throw if it receives an unknown device name', async function () {
try {
await metamaskController.checkHardwareStatus('Some random device name')
} catch (e) {
assert.equal(e, 'Error: MetamaskController:checkHardwareStatus - Unknown device')
}
})
it('should be locked by default', async function () {
await metamaskController.connectHardware('trezor', 0).catch((e) => null)
const status = await metamaskController.checkHardwareStatus('trezor')
assert.equal(status, false)
})
})
describe('forgetDevice', function () {
it('should throw if it receives an unknown device name', async function () {
try {
await metamaskController.forgetDevice('Some random device name')
} catch (e) {
assert.equal(e, 'Error: MetamaskController:forgetDevice - Unknown device')
}
})
it('should wipe all the keyring info', async function () {
await metamaskController.connectHardware('trezor', 0).catch((e) => null)
await metamaskController.forgetDevice('trezor')
const keyrings = await metamaskController.keyringController.getKeyringsByType(
'Trezor Hardware'
)
assert.deepEqual(keyrings[0].accounts, [])
assert.deepEqual(keyrings[0].page, 0)
assert.deepEqual(keyrings[0].isUnlocked(), false)
})
})
describe('unlockTrezorAccount', function () {
it('should set accountToUnlock in the keyring', async function () {
await metamaskController.connectHardware('trezor', 0).catch((e) => null)
const accountToUnlock = 10
await metamaskController.unlockTrezorAccount(accountToUnlock).catch((e) => null)
const keyrings = await metamaskController.keyringController.getKeyringsByType(
'Trezor Hardware'
)
assert.equal(keyrings[0].unlockedAccount, accountToUnlock)
})
})
describe('#setCustomRpc', function () {
const customRPC = 'https://custom.rpc/'
let rpcTarget

Loading…
Cancel
Save