Skip to content

Commit

Permalink
test(ut): add ut for DefaultHttpRequester.kt
Browse files Browse the repository at this point in the history
 - upgrade grade to 8.8
  • Loading branch information
hanrw committed Jun 3, 2024
1 parent 2cc7090 commit f54e0e4
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
package com.tddworks.common.network.api.ktor

import app.cash.turbine.test
import com.tddworks.common.network.api.ktor.api.performRequest
import com.tddworks.common.network.api.ktor.api.streamRequest
import com.tddworks.common.network.api.ktor.internal.DefaultHttpRequester
import com.tddworks.common.network.api.ktor.internal.exception.PermissionException
import com.tddworks.common.network.api.mockHttpClient
import com.tddworks.di.initKoin
import io.ktor.client.*
import io.ktor.client.request.*
import io.ktor.http.*
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.test.runTest
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
import org.koin.test.junit5.AutoCloseKoinTest
import kotlin.time.Duration.Companion.seconds

class DefaultHttpRequesterTest {
class DefaultHttpRequesterTest : AutoCloseKoinTest() {
private lateinit var httpClient: HttpClient

@Test
Expand Down Expand Up @@ -43,6 +49,28 @@ class DefaultHttpRequesterTest {
}
}

@Test
fun `should return chat stream completion response`() = runTest {

initKoin()

val mockResponse = StreamResponse("some-content")

httpClient = mockHttpClient("""data: {"content": "some-content"}""")

val requester = DefaultHttpRequester(httpClient)

requester.streamRequest<StreamResponse> {
url(path = "/v1/chat/completions")
}.test(timeout = 10.seconds) {
assertEquals(
mockResponse,
awaitItem()
)
awaitComplete()
}
}

@Test
fun `should return chat completion response`() = runBlocking {
val mockResponse = """
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.tddworks.common.network.api.ktor

import kotlinx.serialization.Serializable

@Serializable
data class StreamResponse(
val content: String
)
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

0 comments on commit f54e0e4

Please sign in to comment.