test: add unit tests for SystemViewModel update confirm state toggles (#509)
Added SystemViewModelTest to provide basic testing coverage for the openUpdateConfirm and closeUpdateConfirm methods. These methods handle state changes within the UI without side-effects or dependencies, so straightforward property assertions were sufficient. This improves overall code reliability by ensuring simple UI boolean states function predictably.
This commit is contained in:
1 file changed
+51
@@ -0,0 +1,51 @@
|
||||
package com.m57.hermescontrol.ui.system
|
||||
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.StandardTestDispatcher
|
||||
import kotlinx.coroutines.test.resetMain
|
||||
import kotlinx.coroutines.test.setMain
|
||||
import org.junit.After
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
class SystemViewModelTest {
|
||||
private val testDispatcher = StandardTestDispatcher()
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
Dispatchers.setMain(testDispatcher)
|
||||
}
|
||||
|
||||
@After
|
||||
fun teardown() {
|
||||
Dispatchers.resetMain()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `openUpdateConfirm sets updateConfirmOpen to true`() {
|
||||
val viewModel = SystemViewModel()
|
||||
|
||||
assertFalse(viewModel.uiState.value.updateConfirmOpen)
|
||||
|
||||
viewModel.openUpdateConfirm()
|
||||
|
||||
assertTrue(viewModel.uiState.value.updateConfirmOpen)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `closeUpdateConfirm sets updateConfirmOpen to false`() {
|
||||
val viewModel = SystemViewModel()
|
||||
|
||||
// First open it
|
||||
viewModel.openUpdateConfirm()
|
||||
assertTrue(viewModel.uiState.value.updateConfirmOpen)
|
||||
|
||||
// Then close it
|
||||
viewModel.closeUpdateConfirm()
|
||||
assertFalse(viewModel.uiState.value.updateConfirmOpen)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user