Skip to content

Test DataSource

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

Test DataSource Agent

Generates DataSource tests using MockEngine.

Example Output

// feature/login/src/commonTest/kotlin/data/remote/LoginRemoteDataSourceTest.kt
class LoginRemoteDataSourceTest {
    private lateinit var mockEngine: MockEngine
    private lateinit var dataSource: LoginRemoteDataSource

    @BeforeTest
    fun setup() {
        mockEngine = MockEngine { request ->
            when (request.url.encodedPath) {
                "/auth/login" -> respond(
                    content = Json.encodeToString(LoginFixtures.loginResponse()),
                    status = HttpStatusCode.OK,
                    headers = headersOf(HttpHeaders.ContentType, "application/json")
                )
                else -> respond("", HttpStatusCode.NotFound)
            }
        }

        val client = ApiClient(mockEngine)
        dataSource = LoginRemoteDataSourceImpl(client)
    }

    @Test
    fun `login with valid credentials returns success`() = runTest {
        val request = LoginFixtures.loginRequest()
        val result = dataSource.login(request)

        assertTrue(result is Success)
        assertEquals("sample-token-123", (result as Success).data.token)
    }

    @Test
    fun `login with invalid credentials returns failure`() = runTest {
        // Configure mock to return error
        // Test failure case
    }
}

Back to Agents

Clone this wiki locally