diff --git a/android/app/src/main/java/com/zulipmobile/notifications/FcmMessage.kt b/android/app/src/main/java/com/zulipmobile/notifications/FcmMessage.kt index 37f1bab844f..f2d7a0ca36d 100644 --- a/android/app/src/main/java/com/zulipmobile/notifications/FcmMessage.kt +++ b/android/app/src/main/java/com/zulipmobile/notifications/FcmMessage.kt @@ -51,7 +51,7 @@ sealed class Recipient { * pmUsers: the user IDs of all users in the conversation. */ data class GroupPm(val pmUsers: Set) : Recipient() { - fun getPmUsersString() = pmUsers.sorted().joinToString { toString() } + fun getPmUsersString() = pmUsers.sorted().joinToString(separator=",") { it.toString() } } /** A stream message. */ diff --git a/android/app/src/test/java/com/zulipmobile/notifications/FcmMessageTest.kt b/android/app/src/test/java/com/zulipmobile/notifications/FcmMessageTest.kt index a780a1bf59b..37253c87544 100644 --- a/android/app/src/test/java/com/zulipmobile/notifications/FcmMessageTest.kt +++ b/android/app/src/test/java/com/zulipmobile/notifications/FcmMessageTest.kt @@ -52,6 +52,19 @@ class FcmMessageTest : FcmMessageTestBase() { } } +class RecipientTest : FcmMessageTestBase() { + @Test + fun `GroupPm#getPmUsersString gives the correct string`() { + expect.that(Recipient.GroupPm(pmUsers = setOf(123,234,345)).getPmUsersString()) + .isEqualTo("123,234,345") + } + @Test + fun `GroupPm#getPmUsersString correctly reorders user ids`() { + expect.that(Recipient.GroupPm(pmUsers = setOf(234,123,23,345)).getPmUsersString()) + .isEqualTo("23,123,234,345") + } +} + class MessageFcmMessageTest : FcmMessageTestBase() { object Example { val base = FcmMessageTestBase.Example.base.plus(sequenceOf( diff --git a/src/notification/index.js b/src/notification/index.js index eab6e18b538..e500c33744b 100644 --- a/src/notification/index.js +++ b/src/notification/index.js @@ -97,7 +97,8 @@ export const getNarrowFromNotificationData = ( const emails = []; const idStrs = data.pm_users.split(','); for (let i = 0; i < idStrs.length; ++i) { - const user = usersById.get(+idStrs[i]); + const id = parseInt(idStrs[i], 10); + const user = usersById.get(id); if (!user) { return null; }