From c176498ebc8e9e19ab3b82b91760cf153e2c2ea8 Mon Sep 17 00:00:00 2001 From: Jason Sadler Date: Thu, 3 May 2018 11:42:29 -0400 Subject: [PATCH] Merge pull request #14002 from NejcZdovc/fix/#14001-seed Fixes broken seed overlay trigger --- app/browser/api/ledger.js | 1 + test/unit/app/browser/api/ledgerTest.js | 28 +++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/app/browser/api/ledger.js b/app/browser/api/ledger.js index 03a5d53ded0..3377d23d25c 100644 --- a/app/browser/api/ledger.js +++ b/app/browser/api/ledger.js @@ -1688,6 +1688,7 @@ const getStateInfo = (state, parsedData) => { } } catch (e) { console.error(e) + state = ledgerState.setAboutProp(state, 'status', ledgerStatuses.CORRUPTED_SEED) } state = ledgerState.mergeInfoProp(state, newInfo) diff --git a/test/unit/app/browser/api/ledgerTest.js b/test/unit/app/browser/api/ledgerTest.js index a4b69515d1d..069f143fc25 100644 --- a/test/unit/app/browser/api/ledgerTest.js +++ b/test/unit/app/browser/api/ledgerTest.js @@ -12,6 +12,7 @@ const appActions = require('../../../../../js/actions/appActions') const batPublisher = require('bat-publisher') const ledgerMediaProviders = require('../../../../../app/common/constants/ledgerMediaProviders') const fs = require('fs') +const ledgerStatuses = require('../../../../../app/common/constants/ledgerStatuses') describe('ledger api unit tests', function () { let ledgerApi @@ -161,6 +162,10 @@ describe('ledger api unit tests', function () { isReadyToReconcile: () => {} } window.getWalletPassphrase = (parsedData) => { + if (walletPassphraseReturn === 'error') { + throw TypeError('Invalid entropy') + } + return walletPassphraseReturn } ledgerClient.prototype.boolion = function (value) { return false } @@ -2002,6 +2007,29 @@ describe('ledger api unit tests', function () { })) assert.deepEqual(result.toJS(), expectedState.toJS()) }) + + it('seed is broken', function () { + const wrongSeed = Immutable + .fromJS(seedData) + .setIn(['properties', 'wallet', 'keyinfo', 'seed'], Buffer.from([0, 0])) + .toJS() + + walletPassphraseReturn = 'error' + + const result = ledgerApi.getStateInfo(defaultAppState, wrongSeed) + const expectedState = defaultAppState + .setIn(['ledger', 'info'], Immutable.fromJS({ + 'created': true, + 'creating': false, + 'paymentId': '21951877-5998-4acf-9302-4a7b101c9188', + 'reconcileFrequency': 30, + 'reconcileStamp': 1 + })) + .setIn(['ledger', 'about', 'status'], ledgerStatuses.CORRUPTED_SEED) + + assert.deepEqual(result.toJS(), expectedState.toJS()) + assert(getWalletPassphraseSpy.withArgs(wrongSeed).calledOnce) + }) }) })