@@ -22,6 +22,7 @@ import net.primal.android.user.domain.Credential
2222import net.primal.android.user.repository.BlossomRepository
2323import net.primal.android.user.repository.RelayRepository
2424import net.primal.android.user.repository.UserRepository
25+ import net.primal.domain.account.WalletAccountRepository
2526import net.primal.domain.common.exception.NetworkException
2627import net.primal.domain.nostr.NostrEvent
2728import net.primal.domain.nostr.NostrEventKind
@@ -43,6 +44,7 @@ class CreateAccountHandlerTest {
4344 blossomRepository : BlossomRepository = mockk(relaxed = true),
4445 settingsRepository : SettingsRepository = mockk(relaxed = true),
4546 credentialsStore : CredentialsStore = mockk(relaxed = true),
47+ walletAccountRepository : WalletAccountRepository = mockk(relaxed = true),
4648 eventsSignatureHandler : NostrEventSignatureHandler = FakeNostrNotary (
4749 expectedSignedNostrEvent = mockk(relaxed = true),
4850 ),
@@ -56,6 +58,7 @@ class CreateAccountHandlerTest {
5658 dispatchers = coroutinesTestRule.dispatcherProvider,
5759 eventsSignatureHandler = eventsSignatureHandler,
5860 blossomRepository = blossomRepository,
61+ walletAccountRepository = walletAccountRepository,
5962 )
6063 }
6164
@@ -261,6 +264,58 @@ class CreateAccountHandlerTest {
261264 }
262265 }
263266
267+ @Test
268+ fun createNostrAccount_callsFetchWalletAccountInfo () =
269+ runTest {
270+ val keyPair = CryptoUtils .generateHexEncodedKeypair()
271+ val walletAccountRepository = mockk<WalletAccountRepository >(relaxed = true )
272+ val credentialsStore = mockk<CredentialsStore >(relaxed = true ) {
273+ coEvery { saveNsec(any()) } returns keyPair.pubKey
274+ }
275+
276+ val handler = createAccountHandler(
277+ authRepository = createAuthRepository(),
278+ walletAccountRepository = walletAccountRepository,
279+ credentialsStore = credentialsStore,
280+ )
281+
282+ handler.createNostrAccount(
283+ privateKey = keyPair.privateKey,
284+ profileMetadata = ProfileMetadata (displayName = " Test" , username = null ),
285+ interests = emptyList(),
286+ )
287+
288+ coVerify {
289+ walletAccountRepository.fetchWalletAccountInfo(keyPair.pubKey)
290+ }
291+ }
292+
293+ @Test
294+ fun createNostrAccount_setsActiveWalletId () =
295+ runTest {
296+ val keyPair = CryptoUtils .generateHexEncodedKeypair()
297+ val walletAccountRepository = mockk<WalletAccountRepository >(relaxed = true )
298+ val credentialsStore = mockk<CredentialsStore >(relaxed = true ) {
299+ coEvery { saveNsec(any()) } returns keyPair.pubKey
300+ }
301+
302+ val handler = createAccountHandler(
303+ authRepository = createAuthRepository(),
304+ walletAccountRepository = walletAccountRepository,
305+ credentialsStore = credentialsStore,
306+ )
307+
308+ handler.createNostrAccount(
309+ privateKey = keyPair.privateKey,
310+ profileMetadata = ProfileMetadata (displayName = " Test" , username = null ),
311+ interests = emptyList(),
312+ )
313+
314+ coVerify {
315+ walletAccountRepository.setActiveWallet(keyPair.pubKey, keyPair.pubKey)
316+ }
317+ }
318+
264319 @Test
265320 fun createNostrAccount_revertsAuthData_ifAnyOfApiCallsFail () =
266321 runTest {
0 commit comments