test(ai-character): 오디오 콘텐츠 수정 테스트를 안정화한다

This commit is contained in:
2026-07-30 13:09:54 +09:00
parent 5a90fbf98e
commit b30447f004
3 changed files with 22 additions and 17 deletions

View File

@@ -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)
}

View File

@@ -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)