From b30447f0040c22729011688b8d4f4361c2fb564d Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 30 Jul 2026 13:09:54 +0900 Subject: [PATCH] =?UTF-8?q?test(ai-character):=20=EC=98=A4=EB=94=94?= =?UTF-8?q?=EC=98=A4=20=EC=BD=98=ED=85=90=EC=B8=A0=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=A5=BC=20=EC=95=88=EC=A0=95?= =?UTF-8?q?=ED=99=94=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 4 +-- ...haracterAdminAudioContentControllerTest.kt | 8 +++--- .../AiCharacterAdminAudioContentUpdateTest.kt | 27 ++++++++++--------- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index e87a520c..5649c034 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -99,9 +99,9 @@ tasks.withType { } } -tasks.withType { +tasks.withType().configureEach { useJUnitPlatform() - maxHeapSize = "4096m" + maxHeapSize = "4g" jvmArgs("-Dfile.encoding=UTF-8") } diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/v2/api/admin/aicharacter/content/AiCharacterAdminAudioContentControllerTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/v2/api/admin/aicharacter/content/AiCharacterAdminAudioContentControllerTest.kt index d036f39f..c3b6638b 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/v2/api/admin/aicharacter/content/AiCharacterAdminAudioContentControllerTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/v2/api/admin/aicharacter/content/AiCharacterAdminAudioContentControllerTest.kt @@ -756,13 +756,15 @@ class AiCharacterAdminAudioContentControllerTest @Autowired constructor( title = "invalid release title", contentPath = "private/invalid-release.mp3" ) + val contentId = content.id!! entityManager.flush() + entityManager.clear() val beforeAudioContents = countAudioContents() val beforeSeriesContents = countSeriesContents() - val beforeReleaseDate = content.releaseDate + val beforeReleaseDate = entityManager.find(AudioContent::class.java, contentId).releaseDate mockMvc.perform( - multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/${content.id}") + multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/$contentId") .file(MockMultipartFile("coverImage", "cover.png", "image/png", byteArrayOf(1))) .file( MockMultipartFile( @@ -778,7 +780,7 @@ class AiCharacterAdminAudioContentControllerTest @Autowired constructor( .andExpectApiError(message) assertNoSideEffects(beforeAudioContents, beforeSeriesContents) { - val persistedContent = entityManager.find(AudioContent::class.java, content.id) + val persistedContent = entityManager.find(AudioContent::class.java, contentId) assertEquals("invalid release title", persistedContent.title) assertEquals(beforeReleaseDate, persistedContent.releaseDate) } diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/v2/api/admin/aicharacter/content/AiCharacterAdminAudioContentUpdateTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/v2/api/admin/aicharacter/content/AiCharacterAdminAudioContentUpdateTest.kt index e1c269de..05c10248 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/v2/api/admin/aicharacter/content/AiCharacterAdminAudioContentUpdateTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/v2/api/admin/aicharacter/content/AiCharacterAdminAudioContentUpdateTest.kt @@ -235,17 +235,18 @@ class AiCharacterAdminAudioContentUpdateTest @Autowired constructor( ) val series = saveSeries("preserve-series", character.creatorMember!!) val content = saveAudioContent(character.creatorMember!!, "preserve-series-content") - val seriesContent = saveSeriesContent(series, content).apply { orders = 7 } + saveSeriesContent(series, content).apply { orders = 7 } + val contentId = content.id!! entityManager.flush() - - val beforeId = seriesContent.id - val beforeCreatedAt = seriesContent.createdAt entityManager.clear() + val persistedSeriesContent = findSeriesContents(contentId).single() + val beforeId = persistedSeriesContent.id + val beforeCreatedAt = persistedSeriesContent.createdAt Mockito.`when`(audioContentCloudFront.generateSignedURL(Mockito.anyString(), Mockito.anyLong())) .thenReturn("https://test.cloudfront.net/private/preserve-series-content.mp3") mockMvc.perform( - multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/${content.id}") + multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/$contentId") .file( MockMultipartFile( "request", @@ -270,11 +271,11 @@ class AiCharacterAdminAudioContentUpdateTest @Autowired constructor( .andExpect(status().isOk) .andExpect(jsonPath("$.data").value(nullValue())) - val saved = findSeriesContents(content.id!!).single() + val saved = findSeriesContents(contentId).single() assertEquals(beforeId, saved.id) assertEquals(7, saved.orders) assertEquals(beforeCreatedAt, saved.createdAt) - val updated = entityManager.find(AudioContent::class.java, content.id) + val updated = entityManager.find(AudioContent::class.java, contentId) assertEquals("updated title", updated.title) assertEquals("updated detail", updated.detail) assertEquals(250, updated.price) @@ -298,17 +299,19 @@ class AiCharacterAdminAudioContentUpdateTest @Autowired constructor( val addedSeries = saveSeries("added-series", character.creatorMember!!) val content = saveAudioContent(character.creatorMember!!, "diff-series-content") saveSeriesContent(removedSeries, content) - val keptSeriesContent = saveSeriesContent(keptSeries, content).apply { orders = 5 } + saveSeriesContent(keptSeries, content).apply { orders = 5 } + val contentId = content.id!! entityManager.flush() - val keptId = keptSeriesContent.id - val keptCreatedAt = keptSeriesContent.createdAt entityManager.clear() + val persistedKept = findSeriesContents(contentId).single { it.series!!.id == keptSeries.id } + val keptId = persistedKept.id + val keptCreatedAt = persistedKept.createdAt Mockito.`when`(audioContentCloudFront.generateSignedURL(Mockito.anyString(), Mockito.anyLong())) .thenReturn("https://test.cloudfront.net/private/diff-series-content.mp3") mockMvc.perform( - multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/${content.id}") + multipart(HttpMethod.PUT, "/api/v2/admin/ai-characters/${character.id}/audio-contents/$contentId") .file( MockMultipartFile( "request", @@ -322,7 +325,7 @@ class AiCharacterAdminAudioContentUpdateTest @Autowired constructor( .andExpect(status().isOk) .andExpect(jsonPath("$.data").value(nullValue())) - val saved = findSeriesContents(content.id!!) + val saved = findSeriesContents(contentId) assertEquals(setOf(removedSeries.id, keptSeries.id), saved.map { it.series!!.id }.toSet()) val kept = saved.single { it.series!!.id == keptSeries.id } assertEquals(keptId, kept.id)