From 8171d50efa4258cd78e068060634debe03dd519f Mon Sep 17 00:00:00 2001 From: Klaus Date: Sun, 12 Jul 2026 17:39:31 +0900 Subject: [PATCH] =?UTF-8?q?fix(chat):=20DM=20=ED=85=8D=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=20=ED=91=B8=EC=8B=9C=20=EB=AC=B8=EA=B5=AC=20=ED=82=A4=EB=A5=BC?= =?UTF-8?q?=20=EB=B6=84=EB=A6=AC=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/i18n/SodaMessageSource.kt | 5 +++++ .../service/UserCreatorChatService.kt | 2 +- .../sodalive/i18n/SodaMessageSourceTest.kt | 20 +++++++++++++++++++ .../UserCreatorChatServiceTest.kt | 3 +++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSource.kt b/src/main/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSource.kt index 3c77acd7..f8bdaaaf 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSource.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSource.kt @@ -1170,6 +1170,11 @@ class SodaMessageSource { Lang.EN to "You have received a text message from %s.", Lang.JA to "%sからテキストメッセージが届きました。" ), + "message.fcm.dm_received" to mapOf( + Lang.KO to "%s님으로 부터 DM이 도착했습니다.", + Lang.EN to "You have received a DM from %s.", + Lang.JA to "%sからDMが届きました。" + ), "message.fcm.voice_received" to mapOf( Lang.KO to "%s님으로 부터 음성메시지가 도착했습니다.", Lang.EN to "You have received a voice message from %s.", diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/usercreatorchat/service/UserCreatorChatService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/usercreatorchat/service/UserCreatorChatService.kt index dcc3d77c..db688b1a 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/usercreatorchat/service/UserCreatorChatService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/usercreatorchat/service/UserCreatorChatService.kt @@ -224,7 +224,7 @@ class UserCreatorChatService( val messageKey = if (message.messageType == UserCreatorChatMessageType.VOICE) { "message.fcm.voice_received" } else { - "message.fcm.text_received" + "message.fcm.dm_received" } applicationEventPublisher.publishEvent( FcmEvent( diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSourceTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSourceTest.kt index 027c79ab..eca10cc9 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSourceTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/i18n/SodaMessageSourceTest.kt @@ -21,4 +21,24 @@ class SodaMessageSourceTest { sodaMessageSource.getMessage("partner.agent.ratio.not_found", Lang.JA) ) } + + @Test + fun shouldProvideDmPushMessagesAndKeepLegacyTextMessage() { + assertEquals( + "%s님으로 부터 문자메시지가 도착했습니다.", + sodaMessageSource.getMessage("message.fcm.text_received", Lang.KO) + ) + assertEquals( + "%s님으로 부터 DM이 도착했습니다.", + sodaMessageSource.getMessage("message.fcm.dm_received", Lang.KO) + ) + assertEquals( + "You have received a DM from %s.", + sodaMessageSource.getMessage("message.fcm.dm_received", Lang.EN) + ) + assertEquals( + "%sからDMが届きました。", + sodaMessageSource.getMessage("message.fcm.dm_received", Lang.JA) + ) + } } diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/v2/usercreatorchat/UserCreatorChatServiceTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/v2/usercreatorchat/UserCreatorChatServiceTest.kt index 41434029..997fbd94 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/v2/usercreatorchat/UserCreatorChatServiceTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/v2/usercreatorchat/UserCreatorChatServiceTest.kt @@ -197,6 +197,7 @@ class UserCreatorChatServiceTest { val eventCaptor = ArgumentCaptor.forClass(FcmEvent::class.java) Mockito.verify(eventPublisher).publishEvent(eventCaptor.capture()) assertEquals(FcmEventType.INDIVIDUAL, eventCaptor.value.type) + assertEquals("message.fcm.dm_received", eventCaptor.value.messageKey) assertEquals(listOf(2L), eventCaptor.value.recipients) assertEquals(null, eventCaptor.value.roomId) assertEquals(null, eventCaptor.value.messageId) @@ -229,6 +230,7 @@ class UserCreatorChatServiceTest { val eventCaptor = ArgumentCaptor.forClass(FcmEvent::class.java) Mockito.verify(eventPublisher).publishEvent(eventCaptor.capture()) assertEquals(FcmEventType.INDIVIDUAL, eventCaptor.value.type) + assertEquals("message.fcm.dm_received", eventCaptor.value.messageKey) assertEquals(listOf(2L), eventCaptor.value.recipients) Mockito.verifyNoInteractions(roomMessageBroker) } @@ -286,6 +288,7 @@ class UserCreatorChatServiceTest { val eventCaptor = ArgumentCaptor.forClass(FcmEvent::class.java) Mockito.verify(eventPublisher).publishEvent(eventCaptor.capture()) assertEquals(FcmEventType.INDIVIDUAL, eventCaptor.value.type) + assertEquals("message.fcm.voice_received", eventCaptor.value.messageKey) assertEquals(listOf(2L), eventCaptor.value.recipients) assertEquals(null, eventCaptor.value.roomId) assertEquals(null, eventCaptor.value.messageId)