@@ -25,6 +25,7 @@ import io.getstream.feeds.android.client.api.state.query.MembersQueryConfig
25
25
import io.getstream.feeds.android.client.api.state.query.MembersSort
26
26
import io.getstream.feeds.android.client.internal.test.TestData.defaultPaginationResult
27
27
import io.getstream.feeds.android.client.internal.test.TestData.feedMemberData
28
+ import java.util.Date
28
29
import kotlinx.coroutines.test.runTest
29
30
import org.junit.Assert.assertEquals
30
31
import org.junit.Assert.assertNull
@@ -61,9 +62,8 @@ internal class MemberListStateImplTest {
61
62
val updatedMember = feedMemberData(" user-1" , role = " admin" )
62
63
memberListState.onMemberUpdated(updatedMember)
63
64
64
- val updatedMembers = memberListState.members.value
65
- assertEquals(updatedMember, updatedMembers.find { it.id == updatedMember.id })
66
- assertEquals(initialMembers[1 ], updatedMembers.find { it.id == initialMembers[1 ].id })
65
+ val expectedMembers = listOf (updatedMember, initialMembers[1 ])
66
+ assertEquals(expectedMembers, memberListState.members.value)
67
67
}
68
68
69
69
@Test
@@ -79,22 +79,29 @@ internal class MemberListStateImplTest {
79
79
}
80
80
81
81
@Test
82
- fun `on membersUpdated, then apply multiple updates` () = runTest {
83
- val initialMembers = listOf (feedMemberData(), feedMemberData(" user-2" ))
82
+ fun `on membersUpdated, then apply add update and remove operations` () = runTest {
83
+ val initialMembers =
84
+ listOf (
85
+ feedMemberData(" user-3" , createdAt = Date (3000 )),
86
+ feedMemberData(" user-2" , createdAt = Date (2000 )),
87
+ feedMemberData(" user-1" , createdAt = Date (1000 )),
88
+ )
84
89
val paginationResult = defaultPaginationResult(initialMembers)
85
90
memberListState.onQueryMoreMembers(paginationResult, queryConfig)
86
91
87
- val updatedMember = feedMemberData(" user-1" , role = " admin" )
92
+ val updatedMember = feedMemberData(" user-1" , role = " admin" , createdAt = Date (5000 ))
93
+ val newMember = feedMemberData(" user-4" , createdAt = Date (4000 ))
88
94
val updates =
89
95
ModelUpdates (
90
- added = emptyList( ),
96
+ added = listOf (newMember ),
91
97
updated = listOf (updatedMember),
92
- removedIds = listOf (initialMembers[ 1 ].id ),
98
+ removedIds = listOf (" user-2 " ),
93
99
)
94
100
memberListState.onMembersUpdated(updates)
95
101
96
- val finalMembers = memberListState.members.value
97
- assertEquals(listOf (updatedMember), finalMembers)
102
+ // Members should be sorted by createdAt in descending order
103
+ val expectedMembers = listOf (updatedMember, newMember, initialMembers[0 ])
104
+ assertEquals(expectedMembers, memberListState.members.value)
98
105
}
99
106
100
107
@Test
@@ -119,10 +126,8 @@ internal class MemberListStateImplTest {
119
126
val updatedMember = feedMemberData(" user-1" , role = " admin" )
120
127
memberListState.onMemberAdded(updatedMember)
121
128
122
- val updatedMembers = memberListState.members.value
123
- assertEquals(2 , updatedMembers.size)
124
- assertEquals(updatedMember, updatedMembers.find { it.id == updatedMember.id })
125
- assertEquals(initialMembers[1 ], updatedMembers.find { it.id == initialMembers[1 ].id })
129
+ val expectedMembers = listOf (updatedMember, initialMembers[1 ])
130
+ assertEquals(expectedMembers, memberListState.members.value)
126
131
}
127
132
128
133
@Test
0 commit comments