From 3afd0ef27d69ed5d130f4ea37e3e856cadba34d9 Mon Sep 17 00:00:00 2001 From: kumavis Date: Fri, 27 Jan 2017 23:04:34 -0800 Subject: tests - remove persistence and start with initial state --- test/unit/idStore-migration-test.js | 58 ++---------------------------- test/unit/metamask-controller-test.js | 68 +++++------------------------------ 2 files changed, 11 insertions(+), 115 deletions(-) (limited to 'test/unit') diff --git a/test/unit/idStore-migration-test.js b/test/unit/idStore-migration-test.js index 38667fc3e..47894a458 100644 --- a/test/unit/idStore-migration-test.js +++ b/test/unit/idStore-migration-test.js @@ -4,12 +4,13 @@ const ObservableStore = require('obs-store') const ethUtil = require('ethereumjs-util') const BN = ethUtil.BN const ConfigManager = require('../../app/scripts/lib/config-manager') +const firstTimeState = require('../../app/scripts/first-time-state') const delegateCallCode = require('../lib/example-code.json').delegateCallCode +const clone = require('clone') // The old way: const IdentityStore = require('../../app/scripts/lib/idStore') const STORAGE_KEY = 'metamask-config' -const extend = require('xtend') // The new ways: var KeyringController = require('../../app/scripts/keyring-controller') @@ -42,12 +43,9 @@ describe('IdentityStore to KeyringController migration', function() { // and THEN create a new one, before we can run tests on it. beforeEach(function(done) { this.sinon = sinon.sandbox.create() - window.localStorage = {} // Hacking localStorage support into JSDom - let store = new ObservableStore(loadData()) - store.subscribe(setData) + let store = new ObservableStore(clone(firstTimeState)) configManager = new ConfigManager({ store }) - idStore = new IdentityStore({ configManager: configManager, ethStore: { @@ -94,53 +92,3 @@ describe('IdentityStore to KeyringController migration', function() { }) }) }) - -function loadData () { - var oldData = getOldStyleData() - var newData - try { - newData = JSON.parse(window.localStorage[STORAGE_KEY]) - } catch (e) {} - - var data = extend({ - meta: { - version: 0, - }, - data: { - config: { - provider: { - type: 'testnet', - }, - }, - }, - }, oldData || null, newData || null) - return data -} - -function setData (data) { - window.localStorage[STORAGE_KEY] = JSON.stringify(data) -} - -function getOldStyleData () { - var config, wallet, seedWords - - var result = { - meta: { version: 0 }, - data: {}, - } - - try { - config = JSON.parse(window.localStorage['config']) - result.data.config = config - } catch (e) {} - try { - wallet = JSON.parse(window.localStorage['lightwallet']) - result.data.wallet = wallet - } catch (e) {} - try { - seedWords = window.localStorage['seedWords'] - result.data.seedWords = seedWords - } catch (e) {} - - return result -} diff --git a/test/unit/metamask-controller-test.js b/test/unit/metamask-controller-test.js index 24d9ddd67..78b9e9df7 100644 --- a/test/unit/metamask-controller-test.js +++ b/test/unit/metamask-controller-test.js @@ -1,7 +1,9 @@ -var assert = require('assert') -var MetaMaskController = require('../../app/scripts/metamask-controller') -var sinon = require('sinon') -var extend = require('xtend') +const assert = require('assert') +const sinon = require('sinon') +const clone = require('clone') +const MetaMaskController = require('../../app/scripts/metamask-controller') +const firstTimeState = require('../../app/scripts/first-time-state') + const STORAGE_KEY = 'metamask-config' describe('MetaMaskController', function() { @@ -11,15 +13,12 @@ describe('MetaMaskController', function() { unlockAccountMessage: noop, showUnapprovedTx: noop, // initial state - initState: loadData(), + initState: clone(firstTimeState), }) - // setup state persistence - controller.store.subscribe(setData) beforeEach(function() { // sinon allows stubbing methods that are easily verified this.sinon = sinon.sandbox.create() - window.localStorage = {} // Hacking localStorage support into JSDom }) afterEach(function() { @@ -27,55 +26,4 @@ describe('MetaMaskController', function() { this.sinon.restore() }) -}) - - -function loadData () { - var oldData = getOldStyleData() - var newData - try { - newData = JSON.parse(window.localStorage[STORAGE_KEY]) - } catch (e) {} - - var data = extend({ - meta: { - version: 0, - }, - data: { - config: { - provider: { - type: 'testnet', - }, - }, - }, - }, oldData || null, newData || null) - return data -} - -function getOldStyleData () { - var config, wallet, seedWords - - var result = { - meta: { version: 0 }, - data: {}, - } - - try { - config = JSON.parse(window.localStorage['config']) - result.data.config = config - } catch (e) {} - try { - wallet = JSON.parse(window.localStorage['lightwallet']) - result.data.wallet = wallet - } catch (e) {} - try { - seedWords = window.localStorage['seedWords'] - result.data.seedWords = seedWords - } catch (e) {} - - return result -} - -function setData (data) { - window.localStorage[STORAGE_KEY] = JSON.stringify(data) -} +}) \ No newline at end of file -- cgit From 4dd6ba9c1b6704dafcf9d10e1db02a3bb3071cb6 Mon Sep 17 00:00:00 2001 From: kumavis Date: Sat, 28 Jan 2017 19:19:03 -0800 Subject: migration 5 - move keyring controller state to substate --- test/unit/idStore-migration-test.js | 3 ++ test/unit/keyring-controller-test.js | 56 +++++++++++------------------------- 2 files changed, 20 insertions(+), 39 deletions(-) (limited to 'test/unit') diff --git a/test/unit/idStore-migration-test.js b/test/unit/idStore-migration-test.js index 47894a458..3aaf4bb94 100644 --- a/test/unit/idStore-migration-test.js +++ b/test/unit/idStore-migration-test.js @@ -89,6 +89,9 @@ describe('IdentityStore to KeyringController migration', function() { assert(!state.lostAccounts, 'no lost accounts') done() }) + .catch((err) => { + done(err) + }) }) }) }) diff --git a/test/unit/keyring-controller-test.js b/test/unit/keyring-controller-test.js index d6d2db817..347aa2bdf 100644 --- a/test/unit/keyring-controller-test.js +++ b/test/unit/keyring-controller-test.js @@ -1,6 +1,6 @@ -var assert = require('assert') -var KeyringController = require('../../app/scripts/keyring-controller') -var configManagerGen = require('../lib/mock-config-manager') +const assert = require('assert') +const KeyringController = require('../../app/scripts/keyring-controller') +const configManagerGen = require('../lib/mock-config-manager') const ethUtil = require('ethereumjs-util') const BN = ethUtil.BN const async = require('async') @@ -55,17 +55,16 @@ describe('KeyringController', function() { this.timeout(10000) it('should set a vault on the configManager', function(done) { - keyringController.configManager.setVault(null) - assert(!keyringController.configManager.getVault(), 'no previous vault') + keyringController.store.updateState({ vault: null }) + assert(!keyringController.store.getState().vault, 'no previous vault') keyringController.createNewVaultAndKeychain(password) .then(() => { - const vault = keyringController.configManager.getVault() + const vault = keyringController.store.getState().vault assert(vault, 'vault created') done() }) .catch((reason) => { - assert.ifError(reason) - done() + done(reason) }) }) }) @@ -96,8 +95,7 @@ describe('KeyringController', function() { done() }) .catch((reason) => { - assert.ifError(reason) - done() + done(reason) }) }) }) @@ -109,9 +107,6 @@ describe('KeyringController', function() { const identities = keyringController.identities const identity = identities[fakeAddress] assert.equal(identity.address, fakeAddress) - - const nick = keyringController.configManager.nicknameForWallet(fakeAddress) - assert.equal(typeof nick, 'string') }) }) @@ -122,34 +117,17 @@ describe('KeyringController', function() { keyringController.identities[ethUtil.addHexPrefix(account)] = {} keyringController.saveAccountLabel(account, nick) .then((label) => { - assert.equal(label, nick) - const persisted = keyringController.configManager.nicknameForWallet(account) - assert.equal(persisted, nick) - done() - }) - .catch((reason) => { - assert.ifError(reason) - done() - }) - }) - - this.timeout(10000) - it('retrieves the persisted nickname', function(done) { - const account = addresses[0] - var nick = 'Test nickname' - keyringController.configManager.setNicknameForWallet(account, nick) - keyringController.createNewVaultAndRestore(password, seedWords) - .then((state) => { - - const identity = keyringController.identities['0x' + account] - assert.equal(identity.name, nick) - - assert(accounts) - done() + try { + assert.equal(label, nick) + const persisted = keyringController.store.getState().walletNicknames[account] + assert.equal(persisted, nick) + done() + } catch (err) { + done() + } }) .catch((reason) => { - assert.ifError(reason) - done() + done(reason) }) }) }) -- cgit