diff --git a/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandler.kt b/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandler.kt index 73a98016680..ce0449b1cf3 100644 --- a/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandler.kt +++ b/logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandler.kt @@ -107,5 +107,7 @@ internal class MLSConversationsVerificationStatusesHandlerImpl( ) persistMessage(conversationDegradedMessage) + + conversationRepository.setDegradedConversationNotifiedFlag(conversationId, updatedStatus == VerificationStatus.DEGRADED) } } diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandlerTest.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandlerTest.kt index 268ee7c1cf5..8cfa45b598b 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandlerTest.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/conversation/MLSConversationsVerificationStatusesHandlerTest.kt @@ -66,6 +66,11 @@ class MLSConversationsVerificationStatusesHandlerTest { .suspendFunction(arrangement.persistMessageUseCase::invoke) .with(any()) .wasNotInvoked() + + verify(arrangement.conversationRepository) + .suspendFunction(arrangement.conversationRepository::setDegradedConversationNotifiedFlag) + .with(any(), any()) + .wasNotInvoked() } @Test @@ -89,6 +94,11 @@ class MLSConversationsVerificationStatusesHandlerTest { .suspendFunction(arrangement.persistMessageUseCase::invoke) .with(any()) .wasNotInvoked() + + verify(arrangement.conversationRepository) + .suspendFunction(arrangement.conversationRepository::setDegradedConversationNotifiedFlag) + .with(any(), any()) + .wasNotInvoked() } @Test @@ -116,6 +126,11 @@ class MLSConversationsVerificationStatusesHandlerTest { .suspendFunction(arrangement.persistMessageUseCase::invoke) .with(anyInstanceOf(Message.System::class)) .wasInvoked(once) + + verify(arrangement.conversationRepository) + .suspendFunction(arrangement.conversationRepository::setDegradedConversationNotifiedFlag) + .with(any(), eq(true)) + .wasInvoked(once) } @Test @@ -142,6 +157,11 @@ class MLSConversationsVerificationStatusesHandlerTest { .suspendFunction(arrangement.persistMessageUseCase::invoke) .with(any()) .wasNotInvoked() + + verify(arrangement.conversationRepository) + .suspendFunction(arrangement.conversationRepository::setDegradedConversationNotifiedFlag) + .with(any(), any()) + .wasNotInvoked() } @Test @@ -169,6 +189,11 @@ class MLSConversationsVerificationStatusesHandlerTest { .suspendFunction(arrangement.persistMessageUseCase::invoke) .with(anyInstanceOf(Message.System::class)) .wasInvoked(once) + + verify(arrangement.conversationRepository) + .suspendFunction(arrangement.conversationRepository::setDegradedConversationNotifiedFlag) + .with(any(), eq(false)) + .wasInvoked(once) } private fun arrange(block: Arrangement.() -> Unit) = Arrangement(block).arrange() @@ -182,6 +207,7 @@ class MLSConversationsVerificationStatusesHandlerTest { init { withUpdateVerificationStatus(Either.Right(Unit)) withPersistingMessage(Either.Right(Unit)) + withSetDegradedConversationNotifiedFlag(Either.Right(Unit)) } fun arrange() = block().run { diff --git a/logic/src/commonTest/kotlin/com/wire/kalium/logic/util/arrangement/repository/ConversationRepositoryArrangement.kt b/logic/src/commonTest/kotlin/com/wire/kalium/logic/util/arrangement/repository/ConversationRepositoryArrangement.kt index 513cc6b8728..f582a57c9ea 100644 --- a/logic/src/commonTest/kotlin/com/wire/kalium/logic/util/arrangement/repository/ConversationRepositoryArrangement.kt +++ b/logic/src/commonTest/kotlin/com/wire/kalium/logic/util/arrangement/repository/ConversationRepositoryArrangement.kt @@ -98,6 +98,8 @@ internal interface ConversationRepositoryArrangement { .whenInvokedWith(any(), any()) .thenReturn(result) } + + fun withSetDegradedConversationNotifiedFlag(result: Either) } internal open class ConversationRepositoryArrangementImpl : ConversationRepositoryArrangement { @@ -252,4 +254,11 @@ internal open class ConversationRepositoryArrangementImpl : ConversationReposito .thenReturn(result) } + override fun withSetDegradedConversationNotifiedFlag(result: Either) { + given(conversationRepository) + .suspendFunction(conversationRepository::setDegradedConversationNotifiedFlag) + .whenInvokedWith(any()) + .thenReturn(result) + } + }