Skip to content

Commit 62b0830

Browse files
committed
test: add unit tests
1 parent 027df5a commit 62b0830

File tree

3 files changed

+61
-2
lines changed

3 files changed

+61
-2
lines changed

ychat/src/commonTest/kotlin/co/yml/ychat/domain/usecases/AudioUseCaseTest.kt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,39 @@ class AudioUseCaseTest {
5858
// assert
5959
assertEquals(true, result.exceptionOrNull() is ChatGptException)
6060
}
61+
62+
@Test
63+
fun `on requestAudioTranslations when request succeed then should return formatted result`() {
64+
// arrange
65+
val fileName = "audio-test.m4a"
66+
val audioFile = ByteArray(1024) as FileBytes
67+
val audioParams = AudioParams()
68+
val audioResultDto = AudioResultDto("this is a test.")
69+
val apiResult = ApiResult(body = audioResultDto)
70+
coEvery { chatGptApiMock.audioTranslations(any()) } returns apiResult
71+
72+
// act
73+
val result = runBlocking { useCase.requestAudioTranslations(fileName, audioFile, audioParams) }
74+
75+
// assert
76+
assertEquals("this is a test.", result)
77+
}
78+
79+
@Test
80+
fun `on requestAudioTranslations when not request succeed then should throw an exception`() {
81+
// arrange
82+
val fileName = "audio-test.m4a"
83+
val audioFile = ByteArray(1024) as FileBytes
84+
val audioParams = AudioParams()
85+
val apiResult = ApiResult<AudioResultDto>(exception = ChatGptException())
86+
coEvery { chatGptApiMock.audioTranslations(any()) } returns apiResult
87+
88+
// act
89+
val result = runCatching {
90+
runBlocking { useCase.requestAudioTranslations(fileName, audioFile, audioParams) }
91+
}
92+
93+
// assert
94+
assertEquals(true, result.exceptionOrNull() is ChatGptException)
95+
}
6196
}

ychat/src/commonTest/kotlin/co/yml/ychat/entrypoint/YChatTest.kt

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,13 +149,37 @@ class YChatTest {
149149
// arrange
150150
val expectedResult = "This is a test."
151151
val imageGenerationsSuccessResult =
152-
MockStorage.audioTranscriptionsSuccessResult(expectedResult)
152+
MockStorage.audioSuccessResult(expectedResult)
153153
val audioFile = ByteArray(1024) as FileBytes
154154
mockHttpEngine(imageGenerationsSuccessResult)
155155

156156
// act
157157
val result = runBlocking {
158158
yChat.audioTranscriptions()
159+
.setTemperature(0.0)
160+
.setModel("model-1")
161+
.setPrompt("Test")
162+
.setResponseFormat("json")
163+
.setLanguage("en")
164+
.execute("file.mp4", audioFile)
165+
}
166+
167+
// assert
168+
assertEquals(expectedResult, result)
169+
}
170+
171+
@Test
172+
fun `on audioTranslations execute method should return result successfully`() {
173+
// arrange
174+
val expectedResult = "This is a test."
175+
val imageGenerationsSuccessResult =
176+
MockStorage.audioSuccessResult(expectedResult)
177+
val audioFile = ByteArray(1024) as FileBytes
178+
mockHttpEngine(imageGenerationsSuccessResult)
179+
180+
// act
181+
val result = runBlocking {
182+
yChat.audioTranslations()
159183
.setTemperature(0.0)
160184
.setModel("model-1")
161185
.setPrompt("Test")

ychat/src/commonTest/kotlin/infrastructure/MockStorage.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ object MockStorage {
136136
}
137137
"""
138138

139-
fun audioTranscriptionsSuccessResult(text: String) = """
139+
fun audioSuccessResult(text: String) = """
140140
{
141141
"text": "$text"
142142
}

0 commit comments

Comments
 (0)