|
|
|
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, [{}, {}]) },
|
|
|
|
})
|
|
|
|
|
|
|
|
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')
|
|
|
|
});
|
|
|
|
});
|