Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions feature-releases/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,7 @@ dependencies {

implementation(libs.hilt.android)
ksp(libs.hilt.compiler)

testImplementation(libs.junit)
testImplementation(libs.kotlinx.coroutines.test)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.sayanthrock.rockreleasehub.feature.releases

import com.sayanthrock.rockreleasehub.core.model.Release
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.assertEquals
import org.junit.Before
import org.junit.Test

@OptIn(ExperimentalCoroutinesApi::class)
class ReleaseViewModelTest {

private val testDispatcher = StandardTestDispatcher()
private lateinit var viewModel: ReleaseViewModel

@Before
fun setup() {
Dispatchers.setMain(testDispatcher)
viewModel = ReleaseViewModel()
}

@After
fun tearDown() {
Dispatchers.resetMain()
}

@Test
fun `uiState is initialized with success state containing mock releases`() {
val expectedReleases = listOf(
Release(1, "v1.0.0", "v1.0.0", "Initial Release", "2024-01-01", "2024-01-01", false, false, emptyList()),
Release(2, "v1.1.0-beta", "v1.1.0", "Beta Release", "2024-01-02", "2024-01-02", false, true, emptyList())
)

val currentState = viewModel.uiState.value

assertEquals(ReleaseState.Success(expectedReleases), currentState)
}
}
Loading