Skip to content

Commit

Permalink
Fixes brave#11422, keeps recovery modal open after a recovery failure
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanml committed Feb 21, 2018
1 parent 1b8741c commit c37b12f
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 6 deletions.
12 changes: 7 additions & 5 deletions app/renderer/components/preferences/payment/ledgerRecovery.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,10 @@ class LedgerRecoveryContent extends ImmutableComponent {
this.props.handleRecoveryKeyChange(e.target.value)
}

clearRecoveryStatus () {
this.props.hideAdvancedOverlays()
clearRecoveryStatus (success) {
if (success) {
this.props.hideAdvancedOverlays()
}
appActions.resetRecoverStatus()
}

Expand All @@ -57,7 +59,7 @@ class LedgerRecoveryContent extends ImmutableComponent {
<BrowserButton secondaryColor
l10nId='ok'
testId='recoveryOverlayOkButton'
onClick={this.clearRecoveryStatus.bind(this)}
onClick={this.clearRecoveryStatus.bind(this, true)}
/>
</section>
: null
Expand All @@ -73,7 +75,7 @@ class LedgerRecoveryContent extends ImmutableComponent {
<BrowserButton secondaryColor
l10nId='ok'
testId='recoveryOverlayErrorButton'
onClick={this.clearRecoveryStatus.bind(this)}
onClick={this.clearRecoveryStatus.bind(this, false)}
/>
</section>
: null
Expand All @@ -89,7 +91,7 @@ class LedgerRecoveryContent extends ImmutableComponent {
<BrowserButton secondaryColor
l10nId='ok'
testId='recoveryOverlayErrorButton'
onClick={this.clearRecoveryStatus.bind(this)}
onClick={this.clearRecoveryStatus.bind(this, false)}
/>
</section>
: null
Expand Down
12 changes: 11 additions & 1 deletion test/about/ledgerPanelAdvancedPanelTest.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* global describe, it, beforeEach */

const Brave = require('../lib/brave')
const {urlInput, paymentsWelcomePage, paymentsTab, walletSwitch, backupWallet, recoverWallet, saveWalletFile, advancedSettingsButton, recoverWalletFromFileButton, balanceRecovered, balanceNotRecovered, recoveryOverlayOkButton} = require('../lib/selectors')
const {urlInput, paymentsWelcomePage, paymentsTab, walletSwitch, backupWallet, recoverWallet, saveWalletFile, advancedSettingsButton, recoverWalletFromFileButton, balanceRecovered, balanceNotRecovered, recoveryOverlayOkButton, modalOverlay, recoveryOverlayErrorButton} = require('../lib/selectors')
const messages = require('../../js/constants/messages')

const assert = require('assert')
Expand Down Expand Up @@ -186,4 +186,14 @@ describe.skip('Advanced payment panel tests', function () {
yield this.app.client
.waitForVisible(balanceNotRecovered, ledgerAPIWaitTimeout)
})

it('keeps ledger recovery modal open if there was a recovery error', function * () {
generateAndSaveRecoveryFile(context.recoveryFilePathname, '')
yield recoverWalletFromFile(this.app.client)
yield this.app.client
.waitForVisible(balanceNotRecovered, ledgerAPIWaitTimeout)
.click(recoveryOverlayErrorButton)
.pause(1000)
.waitForVisible(modalOverlay, ledgerAPIWaitTimeout)
})
})
1 change: 1 addition & 0 deletions test/lib/selectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ module.exports = {
recoverWallet: '[data-test-id="recoverLedgerButton"]',
recoverWalletFromFileButton: '[data-test-id="recoverFromFileButton"]',
recoveryOverlayOkButton: '[data-test-id="recoveryOverlayOkButton"]',
recoveryOverlayErrorButton: '[data-test-id="recoveryOverlayErrorButton"]',
saveWalletFile: '[data-test-id="saveRecoveryFileButton"]',
balanceRecovered: '[data-test-id="balanceRecoveredMessage"]',
balanceNotRecovered: '[data-test-id="ledgerRecoveryFailedMessage"]',
Expand Down

0 comments on commit c37b12f

Please sign in to comment.