summaryrefslogtreecommitdiffhomepage
path: root/android/app
diff options
context:
space:
mode:
authorJonatan Rhodin <jonatan.rhodin@mullvad.net>2023-11-17 13:30:06 +0100
committerAlbin <albin@mullvad.net>2023-11-17 16:19:07 +0100
commita3502f553d2e82e72a9dec93c3dcc0275253bc04 (patch)
tree06c5c7e2f938d729166a269c23909ab5bca788a2 /android/app
parent72afbbfb6f8e8fca71b9a5190c1686861ff8fe8b (diff)
downloadmullvadvpn-a3502f553d2e82e72a9dec93c3dcc0275253bc04.tar.xz
mullvadvpn-a3502f553d2e82e72a9dec93c3dcc0275253bc04.zip
Fix and add tests in ReportProblemModelTest
Diffstat (limited to 'android/app')
-rw-r--r--android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ReportProblemModelTest.kt49
1 files changed, 48 insertions, 1 deletions
diff --git a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ReportProblemModelTest.kt b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ReportProblemModelTest.kt
index 4f91189d0a..e0b1c5274c 100644
--- a/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ReportProblemModelTest.kt
+++ b/android/app/src/test/kotlin/net/mullvad/mullvadvpn/viewmodel/ReportProblemModelTest.kt
@@ -5,12 +5,16 @@ import app.cash.turbine.test
import io.mockk.MockKAnnotations
import io.mockk.coEvery
import io.mockk.impl.annotations.MockK
+import io.mockk.verify
import kotlin.test.assertEquals
import kotlinx.coroutines.cancel
+import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.runTest
import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport
import net.mullvad.mullvadvpn.dataproxy.SendProblemReportResult
+import net.mullvad.mullvadvpn.dataproxy.UserReport
import net.mullvad.mullvadvpn.lib.common.test.TestCoroutineRule
+import net.mullvad.mullvadvpn.repository.ProblemReportRepository
import org.junit.After
import org.junit.Before
import org.junit.Rule
@@ -20,6 +24,9 @@ class ReportProblemModelTest {
@get:Rule val testCoroutineRule = TestCoroutineRule()
@MockK private lateinit var mockMullvadProblemReport: MullvadProblemReport
+ @MockK(relaxed = true) private lateinit var mockProblemReportRepository: ProblemReportRepository
+
+ private val problemReportFlow = MutableStateFlow(UserReport("", ""))
private lateinit var viewModel: ReportProblemViewModel
@@ -27,7 +34,8 @@ class ReportProblemModelTest {
fun setUp() {
MockKAnnotations.init(this)
coEvery { mockMullvadProblemReport.collectLogs() } returns true
- viewModel = ReportProblemViewModel(mockMullvadProblemReport)
+ coEvery { mockProblemReportRepository.problemReport } returns problemReportFlow
+ viewModel = ReportProblemViewModel(mockMullvadProblemReport, mockProblemReportRepository)
}
@After
@@ -114,4 +122,43 @@ class ReportProblemModelTest {
)
}
}
+
+ @Test
+ fun testUpdateEmail() = runTest {
+ // Arrange
+ val email = "my@email.com"
+
+ // Act
+ viewModel.updateEmail(email)
+
+ // Assert
+ verify { mockProblemReportRepository.setEmail(email) }
+ }
+
+ @Test
+ fun testUpdateDescription() = runTest {
+ // Arrange
+ val description = "My description"
+
+ // Act
+ viewModel.updateDescription(description)
+
+ // Assert
+ verify { mockProblemReportRepository.setDescription(description) }
+ }
+
+ @Test
+ fun testUpdateProblemReport() = runTest {
+ // Arrange
+ val userReport = UserReport("my@email.com", "My description")
+
+ // Act, Assert
+ viewModel.uiState.test {
+ awaitItem()
+ problemReportFlow.value = userReport
+ val result = awaitItem()
+ assertEquals(userReport.email, result.email)
+ assertEquals(userReport.description, result.description)
+ }
+ }
}