-
Notifications
You must be signed in to change notification settings - Fork 0
Test DataSource
Ali Sadeghi edited this page Jan 6, 2026
·
6 revisions
Generates DataSource tests using MockEngine.
// 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