diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt index 38e160a566..be7835a1aa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt @@ -239,8 +239,6 @@ class ConversationViewModel( //todo DELETION handle multi select scenarios - //todo DELETION seems I can't "delete for everyone" when a message is sent by me on another phone - viewModelScope.launch(Dispatchers.IO) { val allSentByCurrentUser = messages.all { it.isOutgoing } diff --git a/app/src/test/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModelTest.kt b/app/src/test/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModelTest.kt index 991acde792..3a59cff9ab 100644 --- a/app/src/test/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModelTest.kt +++ b/app/src/test/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModelTest.kt @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.conversation.v2 +import android.app.Application import com.goterl.lazysodium.utils.KeyPair import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.first @@ -27,6 +28,7 @@ class ConversationViewModelTest: BaseViewModelTest() { private val repository = mock() private val storage = mock() + private val application = mock() private val threadId = 123L private val edKeyPair = mock() @@ -34,7 +36,7 @@ class ConversationViewModelTest: BaseViewModelTest() { private lateinit var messageRecord: MessageRecord private val viewModel: ConversationViewModel by lazy { - ConversationViewModel(threadId, edKeyPair, mock(), repository, storage, mock(), mock(), mock()) + ConversationViewModel(threadId, edKeyPair, application, repository, storage, mock(), mock(), mock()) } @Before @@ -90,21 +92,23 @@ class ConversationViewModelTest: BaseViewModelTest() { fun `should emit error message on ban user failure`() = runBlockingTest { val error = Throwable() whenever(repository.banUser(anyLong(), any())).thenReturn(Result.failure(error)) + whenever(application.getString(any())).thenReturn("Ban failed") viewModel.banUser(recipient) - assertThat(viewModel.uiState.first().uiMessages.first().message, endsWith("$error")) + assertThat(viewModel.uiState.first().uiMessages.first().message, equalTo("Ban failed")) } @Test fun `should emit a message on ban user success`() = runBlockingTest { whenever(repository.banUser(anyLong(), any())).thenReturn(Result.success(Unit)) + whenever(application.getString(any())).thenReturn("User banned") viewModel.banUser(recipient) assertThat( viewModel.uiState.first().uiMessages.first().message, - equalTo("Successfully banned user") + equalTo("User banned") ) } @@ -112,21 +116,23 @@ class ConversationViewModelTest: BaseViewModelTest() { fun `should emit error message on ban user and delete all failure`() = runBlockingTest { val error = Throwable() whenever(repository.banAndDeleteAll(anyLong(), any())).thenReturn(Result.failure(error)) + whenever(application.getString(any())).thenReturn("Ban failed") viewModel.banAndDeleteAll(messageRecord) - assertThat(viewModel.uiState.first().uiMessages.first().message, endsWith("$error")) + assertThat(viewModel.uiState.first().uiMessages.first().message, equalTo("Ban failed")) } @Test fun `should emit a message on ban user and delete all success`() = runBlockingTest { whenever(repository.banAndDeleteAll(anyLong(), any())).thenReturn(Result.success(Unit)) + whenever(application.getString(any())).thenReturn("User banned") viewModel.banAndDeleteAll(messageRecord) assertThat( viewModel.uiState.first().uiMessages.first().message, - equalTo("Successfully banned user and deleted all their messages") + equalTo("User banned") ) } @@ -148,6 +154,8 @@ class ConversationViewModelTest: BaseViewModelTest() { fun `should remove shown message`() = runBlockingTest { // Given that a message is generated whenever(repository.banUser(anyLong(), any())).thenReturn(Result.success(Unit)) + whenever(application.getString(any())).thenReturn("User banned") + viewModel.banUser(recipient) assertThat(viewModel.uiState.value.uiMessages.size, equalTo(1)) // When the message is shown