Add Konsist test to check that toPersistentList() is not used.
Same for `toPersistentSet()` and `toPersistentMap()`. Fix existing issues.
This commit is contained in:
parent
2fa1b9d448
commit
67c9daa0bf
85 changed files with 305 additions and 254 deletions
|
|
@ -15,7 +15,7 @@ import io.element.android.libraries.matrix.api.spaces.SpaceRoom
|
|||
import io.element.android.libraries.previewutils.room.aSpaceRoom
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
class LeaveSpaceStateProvider : PreviewParameterProvider<LeaveSpaceState> {
|
||||
override val values: Sequence<LeaveSpaceState>
|
||||
|
|
@ -92,13 +92,13 @@ class LeaveSpaceStateProvider : PreviewParameterProvider<LeaveSpaceState> {
|
|||
),
|
||||
aLeaveSpaceState(
|
||||
selectableSpaceRooms = AsyncData.Success(
|
||||
List(10) { aSelectableSpaceRoom() }.toPersistentList()
|
||||
List(10) { aSelectableSpaceRoom() }.toImmutableList()
|
||||
),
|
||||
leaveSpaceAction = AsyncAction.Loading,
|
||||
),
|
||||
aLeaveSpaceState(
|
||||
selectableSpaceRooms = AsyncData.Success(
|
||||
List(10) { aSelectableSpaceRoom() }.toPersistentList()
|
||||
List(10) { aSelectableSpaceRoom() }.toImmutableList()
|
||||
),
|
||||
leaveSpaceAction = AsyncAction.Failure(Exception("An error")),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -33,11 +33,12 @@ import io.element.android.libraries.matrix.api.room.join.JoinRoom
|
|||
import io.element.android.libraries.matrix.api.spaces.SpaceRoom
|
||||
import io.element.android.libraries.matrix.api.spaces.SpaceRoomList
|
||||
import io.element.android.libraries.matrix.ui.safety.rememberHideInvitesAvatar
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.persistentSetOf
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import kotlinx.collections.immutable.toPersistentMap
|
||||
import kotlinx.collections.immutable.toPersistentSet
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.collections.immutable.toImmutableMap
|
||||
import kotlinx.collections.immutable.toImmutableSet
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.launch
|
||||
|
|
@ -52,18 +53,18 @@ class SpacePresenter(
|
|||
private val acceptDeclineInvitePresenter: Presenter<AcceptDeclineInviteState>,
|
||||
@SessionCoroutineScope private val sessionCoroutineScope: CoroutineScope,
|
||||
) : Presenter<SpaceState> {
|
||||
private var children by mutableStateOf(persistentListOf<SpaceRoom>())
|
||||
private var children by mutableStateOf<ImmutableList<SpaceRoom>>(persistentListOf())
|
||||
|
||||
@Composable
|
||||
override fun present(): SpaceState {
|
||||
LaunchedEffect(Unit) {
|
||||
paginate()
|
||||
spaceRoomList.spaceRoomsFlow.collect { children = it.toPersistentList() }
|
||||
spaceRoomList.spaceRoomsFlow.collect { children = it.toImmutableList() }
|
||||
}
|
||||
|
||||
val hideInvitesAvatar by client.rememberHideInvitesAvatar()
|
||||
val seenSpaceInvites by remember {
|
||||
seenInvitesStore.seenRoomIds().map { it.toPersistentSet() }
|
||||
seenInvitesStore.seenRoomIds().map { it.toImmutableSet() }
|
||||
}.collectAsState(persistentSetOf())
|
||||
|
||||
val localCoroutineScope = rememberCoroutineScope()
|
||||
|
|
@ -120,7 +121,7 @@ class SpacePresenter(
|
|||
seenSpaceInvites = seenSpaceInvites,
|
||||
hideInvitesAvatar = hideInvitesAvatar,
|
||||
hasMoreToLoad = hasMoreToLoad,
|
||||
joinActions = joinActions.toPersistentMap(),
|
||||
joinActions = joinActions.toImmutableMap(),
|
||||
acceptDeclineInviteState = acceptDeclineInviteState,
|
||||
eventSink = ::handleEvents,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ package io.element.android.features.space.impl.leave
|
|||
import com.google.common.truth.Truth.assertThat
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import org.junit.Test
|
||||
|
||||
class LeaveSpaceStateTest {
|
||||
|
|
@ -64,7 +64,7 @@ class LeaveSpaceStateTest {
|
|||
listOf(
|
||||
aSelectableSpaceRoom(isLastAdmin = false, isSelected = true),
|
||||
aSelectableSpaceRoom(isLastAdmin = false, isSelected = false),
|
||||
).toPersistentList()
|
||||
).toImmutableList()
|
||||
)
|
||||
)
|
||||
assertThat(sut.showQuickAction).isTrue()
|
||||
|
|
@ -81,7 +81,7 @@ class LeaveSpaceStateTest {
|
|||
listOf(
|
||||
aSelectableSpaceRoom(isLastAdmin = false, isSelected = true),
|
||||
aSelectableSpaceRoom(isLastAdmin = false, isSelected = true),
|
||||
).toPersistentList()
|
||||
).toImmutableList()
|
||||
)
|
||||
)
|
||||
assertThat(sut.showQuickAction).isTrue()
|
||||
|
|
@ -95,11 +95,11 @@ class LeaveSpaceStateTest {
|
|||
fun `test 1 last admin, 2 selected`() {
|
||||
val sut = aLeaveSpaceState(
|
||||
selectableSpaceRooms = AsyncData.Success(
|
||||
listOf(
|
||||
persistentListOf(
|
||||
aSelectableSpaceRoom(isLastAdmin = true, isSelected = false),
|
||||
aSelectableSpaceRoom(isLastAdmin = false, isSelected = true),
|
||||
aSelectableSpaceRoom(isLastAdmin = false, isSelected = true),
|
||||
).toPersistentList()
|
||||
)
|
||||
)
|
||||
)
|
||||
assertThat(sut.showQuickAction).isTrue()
|
||||
|
|
@ -116,7 +116,7 @@ class LeaveSpaceStateTest {
|
|||
listOf(
|
||||
aSelectableSpaceRoom(isLastAdmin = true, isSelected = false),
|
||||
aSelectableSpaceRoom(isLastAdmin = true, isSelected = false),
|
||||
).toPersistentList()
|
||||
).toImmutableList()
|
||||
)
|
||||
)
|
||||
assertThat(sut.showQuickAction).isFalse()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue