Skip to content

Test Repository

Ali Sadeghi edited this page Jan 6, 2026 · 6 revisions

Test Repository Agent

Generates Repository tests using Mokkery.

Example Output

// 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

Clone this wiki locally