mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-30 08:09:15 +01:00
041b5493dc
Fixes #122 Had used multiple actions for some transitions, which would lead to brief intermediary states. Now making a few actions much more explicit about what they route to, so there is less intermediary logic, and we can transition confidently to the correct view.
61 lines
1.7 KiB
JavaScript
61 lines
1.7 KiB
JavaScript
var jsdom = require('mocha-jsdom')
|
|
var assert = require('assert')
|
|
var freeze = require('deep-freeze-strict')
|
|
var path = require('path')
|
|
var sinon = require('sinon')
|
|
|
|
var actions = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'actions.js'))
|
|
var reducers = require(path.join(__dirname, '..', '..', '..', 'ui', 'app', 'reducers.js'))
|
|
|
|
describe('#recoverFromSeed(password, seed)', function() {
|
|
|
|
beforeEach(function() {
|
|
// sinon allows stubbing methods that are easily verified
|
|
this.sinon = sinon.sandbox.create()
|
|
})
|
|
|
|
afterEach(function() {
|
|
// sinon requires cleanup otherwise it will overwrite context
|
|
this.sinon.restore()
|
|
})
|
|
|
|
// stub out account manager
|
|
actions._setAccountManager({
|
|
recoverFromSeed(pw, seed, cb) {
|
|
cb(null, {
|
|
identities: {
|
|
foo: 'bar'
|
|
}
|
|
})
|
|
},
|
|
})
|
|
|
|
it('sets metamask.isUnlocked to true', function() {
|
|
var initialState = {
|
|
metamask: {
|
|
isUnlocked: false,
|
|
isInitialized: false,
|
|
}
|
|
}
|
|
freeze(initialState)
|
|
|
|
const restorePhrase = 'invite heavy among daring outdoor dice jelly coil stable note seat vicious'
|
|
const password = 'foo'
|
|
const dispatchFunc = actions.recoverFromSeed(password, restorePhrase)
|
|
|
|
var dispatchStub = this.sinon.stub()
|
|
dispatchStub.withArgs({ TYPE: actions.unlockMetamask() }).onCall(0)
|
|
dispatchStub.withArgs({ TYPE: actions.showAccountsPage() }).onCall(1)
|
|
|
|
var action
|
|
var resultingState = initialState
|
|
dispatchFunc((newAction) => {
|
|
action = newAction
|
|
resultingState = reducers(resultingState, action)
|
|
})
|
|
|
|
assert.equal(resultingState.metamask.isUnlocked, true, 'was unlocked')
|
|
assert.equal(resultingState.metamask.isInitialized, true, 'was initialized')
|
|
});
|
|
});
|