diff --git a/app/src/main/java/to/bitkit/repositories/WalletRepo.kt b/app/src/main/java/to/bitkit/repositories/WalletRepo.kt index 3b5782db4..6ea1981b5 100644 --- a/app/src/main/java/to/bitkit/repositories/WalletRepo.kt +++ b/app/src/main/java/to/bitkit/repositories/WalletRepo.kt @@ -300,6 +300,8 @@ class WalletRepo @Inject constructor( keychain.saveString(Keychain.Key.BIP39_PASSPHRASE.name, bip39Passphrase) } setWalletExistsState() + }.onSuccess { + settingsStore.update { it.copy(backupVerified = true) } }.onFailure { Logger.error("restoreWallet error", it, context = TAG) } diff --git a/app/src/test/java/to/bitkit/repositories/WalletRepoTest.kt b/app/src/test/java/to/bitkit/repositories/WalletRepoTest.kt index 1ea061bba..b44a661b7 100644 --- a/app/src/test/java/to/bitkit/repositories/WalletRepoTest.kt +++ b/app/src/test/java/to/bitkit/repositories/WalletRepoTest.kt @@ -166,6 +166,28 @@ class WalletRepoTest : BaseUnitTest() { verify(keychain).saveString(Keychain.Key.BIP39_MNEMONIC.name, mnemonic) } + @Test + fun `restoreWallet should set backupVerified to true on success`() = test { + val mnemonic = "restore mnemonic" + whenever(keychain.saveString(any(), any())).thenReturn(Unit) + + val result = sut.restoreWallet(mnemonic, null) + + assertTrue(result.isSuccess) + verify(settingsStore).update(any()) + } + + @Test + fun `restoreWallet should not set backupVerified when keychain fails`() = test { + val mnemonic = "restore mnemonic" + whenever(keychain.saveString(any(), any())).thenThrow(error) + + val result = sut.restoreWallet(mnemonic, null) + + assertTrue(result.isFailure) + verify(settingsStore, never()).update(any()) + } + @Test fun `refreshBip21 should generate new address when current is empty`() = test { whenever(lightningRepo.newAddress()).thenReturn(Result.success(ADDRESS_NEW))