aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit
diff options
context:
space:
mode:
authorWhymarrh Whitby <whymarrh.whitby@gmail.com>2018-08-20 22:37:44 +0800
committerWhymarrh Whitby <whymarrh.whitby@gmail.com>2018-08-23 02:08:34 +0800
commite803b8e047b5acad9143fe28d99d9e7d65211f46 (patch)
tree8529af12b3dbaf884a73c8d72110063abff1e103 /test/unit
parent003d445a98164dac0c0529dfd69f5e3987d7d05c (diff)
downloadtangerine-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.js71
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 () {