diff options
author | Whymarrh Whitby <whymarrh.whitby@gmail.com> | 2018-08-20 22:37:44 +0800 |
---|---|---|
committer | Whymarrh Whitby <whymarrh.whitby@gmail.com> | 2018-08-23 02:08:34 +0800 |
commit | e803b8e047b5acad9143fe28d99d9e7d65211f46 (patch) | |
tree | 8529af12b3dbaf884a73c8d72110063abff1e103 /test/unit | |
parent | 003d445a98164dac0c0529dfd69f5e3987d7d05c (diff) | |
download | tangerine-wallet-browser-e803b8e047b5acad9143fe28d99d9e7d65211f46.tar tangerine-wallet-browser-e803b8e047b5acad9143fe28d99d9e7d65211f46.tar.gz tangerine-wallet-browser-e803b8e047b5acad9143fe28d99d9e7d65211f46.tar.bz2 tangerine-wallet-browser-e803b8e047b5acad9143fe28d99d9e7d65211f46.tar.lz tangerine-wallet-browser-e803b8e047b5acad9143fe28d99d9e7d65211f46.tar.xz tangerine-wallet-browser-e803b8e047b5acad9143fe28d99d9e7d65211f46.tar.zst tangerine-wallet-browser-e803b8e047b5acad9143fe28d99d9e7d65211f46.zip |
Add test cases for MetaMaskController#_onKeyringControllerUpdate
Diffstat (limited to 'test/unit')
-rw-r--r-- | test/unit/app/controllers/metamask-controller-test.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/unit/app/controllers/metamask-controller-test.js b/test/unit/app/controllers/metamask-controller-test.js index a798d41e2..85c78fe1e 100644 --- a/test/unit/app/controllers/metamask-controller-test.js +++ b/test/unit/app/controllers/metamask-controller-test.js @@ -814,6 +814,77 @@ describe('MetaMaskController', function () { }) }) + describe('#_onKeyringControllerUpdate', function () { + it('should do nothing if there are no keyrings in state', async function () { + const addAddresses = sinon.fake() + const syncWithAddresses = sinon.fake() + sandbox.replace(metamaskController, 'preferencesController', { + addAddresses, + }) + sandbox.replace(metamaskController, 'accountTracker', { + syncWithAddresses, + }) + + const oldState = metamaskController.getState() + await metamaskController._onKeyringControllerUpdate({keyrings: []}) + + assert.ok(addAddresses.notCalled) + assert.ok(syncWithAddresses.notCalled) + assert.deepEqual(metamaskController.getState(), oldState) + }) + + it('should update selected address if keyrings was locked', async function () { + const addAddresses = sinon.fake() + const getSelectedAddress = sinon.fake.returns('0x42') + const setSelectedAddress = sinon.fake() + const syncWithAddresses = sinon.fake() + sandbox.replace(metamaskController, 'preferencesController', { + addAddresses, + getSelectedAddress, + setSelectedAddress, + }) + sandbox.replace(metamaskController, 'accountTracker', { + syncWithAddresses, + }) + + const oldState = metamaskController.getState() + await metamaskController._onKeyringControllerUpdate({ + isUnlocked: false, + keyrings: [{ + accounts: ['0x1', '0x2'], + }], + }) + + assert.deepEqual(addAddresses.args, [[['0x1', '0x2']]]) + assert.deepEqual(syncWithAddresses.args, [[['0x1', '0x2']]]) + assert.deepEqual(setSelectedAddress.args, [['0x1']]) + assert.deepEqual(metamaskController.getState(), oldState) + }) + + it('should NOT update selected address if already unlocked', async function () { + const addAddresses = sinon.fake() + const syncWithAddresses = sinon.fake() + sandbox.replace(metamaskController, 'preferencesController', { + addAddresses, + }) + sandbox.replace(metamaskController, 'accountTracker', { + syncWithAddresses, + }) + + const oldState = metamaskController.getState() + await metamaskController._onKeyringControllerUpdate({ + isUnlocked: true, + keyrings: [{ + accounts: ['0x1', '0x2'], + }], + }) + + assert.deepEqual(addAddresses.args, [[['0x1', '0x2']]]) + assert.deepEqual(syncWithAddresses.args, [[['0x1', '0x2']]]) + assert.deepEqual(metamaskController.getState(), oldState) + }) + }) + }) function deferredPromise () { |