diff --git a/persistence/src/commonMain/db_user/com/wire/kalium/persistence/Conversations.sq b/persistence/src/commonMain/db_user/com/wire/kalium/persistence/Conversations.sq index b80aa3d633c..58a73cc42bc 100644 --- a/persistence/src/commonMain/db_user/com/wire/kalium/persistence/Conversations.sq +++ b/persistence/src/commonMain/db_user/com/wire/kalium/persistence/Conversations.sq @@ -331,7 +331,8 @@ WHERE qualified_id = (SELECT active_one_on_one_conversation_id FROM User WHERE q selectOneOnOneConversationIdsByProtocol: SELECT Member.conversation FROM Member JOIN Conversation ON Conversation.qualified_id = Member.conversation -WHERE Conversation.type = 'ONE_ON_ONE' AND Conversation.protocol = :protocol AND Member.user = :user; +WHERE Conversation.type = 'ONE_ON_ONE' AND Conversation.protocol = :protocol AND Member.user = :user +ORDER BY Member.conversation ASC; getConversationIdByGroupId: SELECT qualified_id FROM Conversation WHERE mls_group_id = ?; diff --git a/persistence/src/commonTest/kotlin/com/wire/kalium/persistence/dao/ConversationDAOTest.kt b/persistence/src/commonTest/kotlin/com/wire/kalium/persistence/dao/ConversationDAOTest.kt index 96f79aae34e..46dff97f38f 100644 --- a/persistence/src/commonTest/kotlin/com/wire/kalium/persistence/dao/ConversationDAOTest.kt +++ b/persistence/src/commonTest/kotlin/com/wire/kalium/persistence/dao/ConversationDAOTest.kt @@ -1262,6 +1262,26 @@ class ConversationDAOTest : BaseDatabaseTest() { ) } + @Test + fun givenMultipleOneOnOneProteusConversationExisting_whenGettingOneOnOneConversationId_thenShouldReturnAlphabeticallyOrderedConversation() = + runTest { + // given + val conversationA = conversationEntity1.copy(id = QualifiedIDEntity("a", "wire.com")) + val conversationB = conversationEntity1.copy(id = QualifiedIDEntity("b", "wire.com")) + + userDAO.upsertUser(user1) + conversationDAO.insertConversation(conversationB) + conversationDAO.insertConversation(conversationA) + memberDAO.insertMember(member1, conversationB.id) + memberDAO.insertMember(member1, conversationA.id) + + // then + assertEquals( + conversationA.id, + conversationDAO.getOneOnOneConversationIdsWithOtherUser(user1.id, protocol = ConversationEntity.Protocol.PROTEUS).first() + ) + } + @Test fun givenNoMLSConversationExistsForGivenClients_whenGettingE2EIClientInfoByClientId_thenReturnsNull() = runTest { // given