Skip to content

Commit b13bdaa

Browse files
Add tests for WalletAccountRepository in CreateAccountHandlerTest
1 parent 0bd8735 commit b13bdaa

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

app/src/test/kotlin/net/primal/android/auth/repository/CreateAccountHandlerTest.kt

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import net.primal.android.user.domain.Credential
2222
import net.primal.android.user.repository.BlossomRepository
2323
import net.primal.android.user.repository.RelayRepository
2424
import net.primal.android.user.repository.UserRepository
25+
import net.primal.domain.account.WalletAccountRepository
2526
import net.primal.domain.common.exception.NetworkException
2627
import net.primal.domain.nostr.NostrEvent
2728
import 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

Comments
 (0)