Skip to content

Commit

Permalink
fix: E2EI enroll twice on login (#2638)
Browse files Browse the repository at this point in the history
* Commit with unresolved merge conflicts outside of

* Fix merge conflicts afte cherry-pick

* Fix codeStyle

---------

Co-authored-by: boris <[email protected]>
  • Loading branch information
github-actions[bot] and borichellow authored Mar 15, 2024
1 parent 3b7b82d commit bb07ad1
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
*/
package com.wire.kalium.logic.feature.e2ei.usecase

import com.wire.kalium.logic.StorageFailure
import com.wire.kalium.logic.data.conversation.ClientId
import com.wire.kalium.logic.data.conversation.MLSConversationRepository
import com.wire.kalium.logic.feature.e2ei.CertificateStatusMapper
Expand All @@ -37,10 +36,7 @@ class GetE2eiCertificateUseCaseImpl internal constructor(
) : GetE2eiCertificateUseCase {
override suspend operator fun invoke(clientId: ClientId): GetE2EICertificateUseCaseResult =
mlsConversationRepository.getClientIdentity(clientId).fold(
{
if (it is StorageFailure.DataNotFound) GetE2EICertificateUseCaseResult.NotActivated
else GetE2EICertificateUseCaseResult.Failure
},
{ GetE2EICertificateUseCaseResult.Failure },
{
it?.let {
val certificate = E2eiCertificate(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ package com.wire.kalium.logic.feature.e2ei
import com.wire.kalium.cryptography.CryptoCertificateStatus
import com.wire.kalium.cryptography.CryptoQualifiedClientId
import com.wire.kalium.cryptography.WireIdentity
import com.wire.kalium.logic.CoreFailure
import com.wire.kalium.logic.E2EIFailure
import com.wire.kalium.logic.StorageFailure
import com.wire.kalium.logic.data.conversation.ClientId
import com.wire.kalium.logic.data.conversation.MLSConversationRepository
import com.wire.kalium.logic.data.id.toCrypto
Expand Down Expand Up @@ -57,6 +59,22 @@ class GetE2eiCertificateUseCaseTest {
assertEquals(GetE2EICertificateUseCaseResult.Failure, result)
}

@Test
fun givenRepositoryReturnsStorageFailure_whenRunningUseCase_thenReturnFailure() = runTest {
val (arrangement, getE2eiCertificateUseCase) = Arrangement()
.withRepositoryFailure(StorageFailure.DataNotFound)
.arrange()

val result = getE2eiCertificateUseCase.invoke(CLIENT_ID)

verify(arrangement.mlsConversationRepository)
.suspendFunction(arrangement.mlsConversationRepository::getClientIdentity)
.with(any())
.wasInvoked(once)

assertEquals(GetE2EICertificateUseCaseResult.Failure, result)
}

@Test
fun givenRepositoryReturnsValidCertificateString_whenRunningUseCase_thenReturnCertificate() =
runTest {
Expand Down Expand Up @@ -115,11 +133,11 @@ class GetE2eiCertificateUseCaseTest {
certificateStatusMapper = certificateStatusMapper
)

fun withRepositoryFailure() = apply {
fun withRepositoryFailure(failure: CoreFailure = E2EIFailure.Generic(Exception())) = apply {
given(mlsConversationRepository)
.suspendFunction(mlsConversationRepository::getClientIdentity)
.whenInvokedWith(any())
.thenReturn(Either.Left(E2EIFailure.Generic(Exception())))
.thenReturn(Either.Left(failure))
}

fun withRepositoryValidCertificate(identity: WireIdentity?) = apply {
Expand Down

0 comments on commit bb07ad1

Please sign in to comment.