-
Notifications
You must be signed in to change notification settings - Fork 0
Test Repository
Ali Sadeghi edited this page Jan 6, 2026
·
6 revisions
Generates Repository tests using Mokkery.
// feature/login/src/commonTest/kotlin/data/repository/LoginRepositoryTest.kt
class LoginRepositoryTest {
private val mockDataSource = mock<LoginRemoteDataSource>()
private val repository = LoginRepositoryImpl(mockDataSource)
@Test
fun `login success delegates to datasource`() = runTest {
val request = LoginFixtures.loginRequest()
val response = LoginFixtures.loginResponse()
every { mockDataSource.login(request) } returns Success(response)
val result = repository.login(request)
assertTrue(result is Success)
assertEquals(response, (result as Success).data)
verify { mockDataSource.login(request) }
}
@Test
fun `login failure propagates error`() = runTest {
val request = LoginFixtures.loginRequest()
val error = ErrorResponse("Invalid credentials")
every { mockDataSource.login(request) } returns Failure(error)
val result = repository.login(request)
assertTrue(result is Failure)
assertEquals(error, (result as Failure).error)
}
}Back to Agents