From 65804261f7ab53e09e140dc1039f6a49787cdf63 Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 25 Jun 2026 15:37:06 +0900 Subject: [PATCH] =?UTF-8?q?test(content-recommendation):=20=EC=B6=94?= =?UTF-8?q?=EC=B2=9C=20=EC=A0=80=EC=9E=A5=EC=86=8C=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=8B=9C=EA=B0=84=EC=9D=84=20=EA=B3=A0=EC=A0=95?= =?UTF-8?q?=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tAudioRecommendationQueryRepositoryTest.kt | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/v2/content/recommendation/adapter/out/persistence/DefaultAudioRecommendationQueryRepositoryTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/v2/content/recommendation/adapter/out/persistence/DefaultAudioRecommendationQueryRepositoryTest.kt index 9eeae02f..7cf054bd 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/v2/content/recommendation/adapter/out/persistence/DefaultAudioRecommendationQueryRepositoryTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/v2/content/recommendation/adapter/out/persistence/DefaultAudioRecommendationQueryRepositoryTest.kt @@ -161,7 +161,7 @@ class DefaultAudioRecommendationQueryRepositoryTest @Autowired constructor( @Test @DisplayName("New & Hot 후보는 조회/좋아요/댓글/최신성 점수순으로 산정하고 SAFE는 성인을 제외한다") fun shouldFindNewAndHotSnapshotsWithVisibility() { - val snapshotAt = LocalDateTime.now().plusDays(1) + val snapshotAt = LocalDateTime.of(2026, 6, 23, 12, 0) val windowStart = snapshotAt.minusDays(2).toLocalDate().atStartOfDay() val creator = saveMember("snapshot-creator", MemberRole.CREATOR) val theme = saveTheme() @@ -186,7 +186,7 @@ class DefaultAudioRecommendationQueryRepositoryTest @Autowired constructor( releaseDate = visible.releaseDate!!, now = snapshotAt ) - assertEquals(expectedScore, safe.first().score) + assertEquals(expectedScore, safe.first().score, 0.0001) } @Test @@ -401,9 +401,9 @@ class DefaultAudioRecommendationQueryRepositoryTest @Autowired constructor( private fun saveLike(audio: AudioContent, createdAt: LocalDateTime) { val like = AudioContentLike(memberId = 1L) like.audioContent = audio - like.createdAt = createdAt - like.updatedAt = createdAt entityManager.persist(like) + entityManager.flush() + updateTimestamps("content_like", like.id!!, createdAt, createdAt) } private fun saveComment( @@ -424,15 +424,22 @@ class DefaultAudioRecommendationQueryRepositoryTest @Autowired constructor( comment.audioContent = audio comment.member = writer comment.parent = parent - comment.createdAt = createdAt - comment.updatedAt = createdAt entityManager.persist(comment) entityManager.flush() - comment.createdAt = createdAt - comment.updatedAt = createdAt + updateTimestamps("content_comment", comment.id!!, createdAt, createdAt) return comment } + private fun updateTimestamps(tableName: String, id: Long, createdAt: LocalDateTime, updatedAt: LocalDateTime) { + entityManager.createNativeQuery( + "update $tableName set created_at = :createdAt, updated_at = :updatedAt where id = :id" + ) + .setParameter("createdAt", createdAt) + .setParameter("updatedAt", updatedAt) + .setParameter("id", id) + .executeUpdate() + } + private fun saveSeriesContent(series: Series, audio: AudioContent) { val seriesContent = SeriesContent() seriesContent.series = series