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
|
|
@ -33,7 +33,6 @@ import io.element.android.libraries.matrix.api.timeline.Timeline
|
|||
import io.element.android.services.analytics.api.AnalyticsService
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
|
||||
|
|
@ -79,7 +78,7 @@ class CreatePollPresenter(
|
|||
repository.getPoll(mode.eventId).onSuccess {
|
||||
val loadedPoll = PollFormState(
|
||||
question = it.question,
|
||||
answers = it.answers.map(PollAnswer::text).toPersistentList(),
|
||||
answers = it.answers.map(PollAnswer::text).toImmutableList(),
|
||||
isDisclosed = it.kind.isDisclosed,
|
||||
)
|
||||
initialPoll = loadedPoll
|
||||
|
|
|
|||
|
|
@ -9,8 +9,7 @@ package io.element.android.features.poll.impl.create
|
|||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.matrix.api.poll.PollKind
|
||||
import kotlinx.collections.immutable.PersistentList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
class CreatePollStateProvider : PreviewParameterProvider<CreatePollState> {
|
||||
override val values: Sequence<CreatePollState>
|
||||
|
|
@ -20,7 +19,7 @@ class CreatePollStateProvider : PreviewParameterProvider<CreatePollState> {
|
|||
canCreate = false,
|
||||
canAddAnswer = true,
|
||||
question = "",
|
||||
answers = persistentListOf(
|
||||
answers = listOf(
|
||||
Answer("", false),
|
||||
Answer("", false)
|
||||
),
|
||||
|
|
@ -33,7 +32,7 @@ class CreatePollStateProvider : PreviewParameterProvider<CreatePollState> {
|
|||
canCreate = true,
|
||||
canAddAnswer = true,
|
||||
question = "What type of food should we have?",
|
||||
answers = persistentListOf(
|
||||
answers = listOf(
|
||||
Answer("Italian \uD83C\uDDEE\uD83C\uDDF9", false),
|
||||
Answer("Chinese \uD83C\uDDE8\uD83C\uDDF3", false),
|
||||
),
|
||||
|
|
@ -46,7 +45,7 @@ class CreatePollStateProvider : PreviewParameterProvider<CreatePollState> {
|
|||
canCreate = true,
|
||||
canAddAnswer = true,
|
||||
question = "What type of food should we have?",
|
||||
answers = persistentListOf(
|
||||
answers = listOf(
|
||||
Answer("Italian \uD83C\uDDEE\uD83C\uDDF9", false),
|
||||
Answer("Chinese \uD83C\uDDE8\uD83C\uDDF3", false),
|
||||
),
|
||||
|
|
@ -59,7 +58,7 @@ class CreatePollStateProvider : PreviewParameterProvider<CreatePollState> {
|
|||
canCreate = true,
|
||||
canAddAnswer = true,
|
||||
question = "What type of food should we have?",
|
||||
answers = persistentListOf(
|
||||
answers = listOf(
|
||||
Answer("Italian \uD83C\uDDEE\uD83C\uDDF9", true),
|
||||
Answer("Chinese \uD83C\uDDE8\uD83C\uDDF3", true),
|
||||
Answer("Brazilian \uD83C\uDDE7\uD83C\uDDF7", true),
|
||||
|
|
@ -74,7 +73,7 @@ class CreatePollStateProvider : PreviewParameterProvider<CreatePollState> {
|
|||
canCreate = true,
|
||||
canAddAnswer = false,
|
||||
question = "Should there be more than 20 answers?",
|
||||
answers = persistentListOf(
|
||||
answers = listOf(
|
||||
Answer("1", true),
|
||||
Answer("2", true),
|
||||
Answer("3", true),
|
||||
|
|
@ -108,7 +107,7 @@ class CreatePollStateProvider : PreviewParameterProvider<CreatePollState> {
|
|||
" Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor" +
|
||||
" in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt" +
|
||||
" in culpa qui officia deserunt mollit anim id est laborum.",
|
||||
answers = persistentListOf(
|
||||
answers = listOf(
|
||||
Answer(
|
||||
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." +
|
||||
" Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis a.",
|
||||
|
|
@ -129,7 +128,7 @@ class CreatePollStateProvider : PreviewParameterProvider<CreatePollState> {
|
|||
canCreate = false,
|
||||
canAddAnswer = true,
|
||||
question = "",
|
||||
answers = persistentListOf(
|
||||
answers = listOf(
|
||||
Answer("", false),
|
||||
Answer("", false)
|
||||
),
|
||||
|
|
@ -142,7 +141,7 @@ class CreatePollStateProvider : PreviewParameterProvider<CreatePollState> {
|
|||
canCreate = false,
|
||||
canAddAnswer = true,
|
||||
question = "",
|
||||
answers = persistentListOf(
|
||||
answers = listOf(
|
||||
Answer("", false),
|
||||
Answer("", false)
|
||||
),
|
||||
|
|
@ -158,7 +157,7 @@ private fun aCreatePollState(
|
|||
canCreate: Boolean,
|
||||
canAddAnswer: Boolean,
|
||||
question: String,
|
||||
answers: PersistentList<Answer>,
|
||||
answers: List<Answer>,
|
||||
showBackConfirmation: Boolean,
|
||||
showDeleteConfirmation: Boolean,
|
||||
pollKind: PollKind
|
||||
|
|
@ -168,7 +167,7 @@ private fun aCreatePollState(
|
|||
canSave = canCreate,
|
||||
canAddAnswer = canAddAnswer,
|
||||
question = question,
|
||||
answers = answers,
|
||||
answers = answers.toImmutableList(),
|
||||
showBackConfirmation = showBackConfirmation,
|
||||
showDeleteConfirmation = showDeleteConfirmation,
|
||||
pollKind = pollKind,
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import io.element.android.features.poll.impl.PollConstants
|
|||
import io.element.android.features.poll.impl.PollConstants.MIN_ANSWERS
|
||||
import io.element.android.libraries.matrix.api.poll.PollKind
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
/**
|
||||
* Represents the state of the poll creation / edit form.
|
||||
|
|
@ -28,7 +28,7 @@ data class PollFormState(
|
|||
companion object {
|
||||
val Empty = PollFormState(
|
||||
question = "",
|
||||
answers = MutableList(MIN_ANSWERS) { "" }.toPersistentList(),
|
||||
answers = MutableList(MIN_ANSWERS) { "" }.toImmutableList(),
|
||||
isDisclosed = true,
|
||||
)
|
||||
}
|
||||
|
|
@ -49,7 +49,7 @@ data class PollFormState(
|
|||
return this
|
||||
}
|
||||
|
||||
return copy(answers = (answers + "").toPersistentList())
|
||||
return copy(answers = (answers + "").toImmutableList())
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -66,7 +66,7 @@ data class PollFormState(
|
|||
return this
|
||||
}
|
||||
|
||||
return copy(answers = answers.filterIndexed { i, _ -> i != index }.toPersistentList())
|
||||
return copy(answers = answers.filterIndexed { i, _ -> i != index }.toImmutableList())
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -82,7 +82,7 @@ data class PollFormState(
|
|||
fun withAnswerChanged(index: Int, rawAnswer: String): PollFormState =
|
||||
copy(answers = answers.toMutableList().apply {
|
||||
this[index] = rawAnswer.take(PollConstants.MAX_ANSWER_LENGTH)
|
||||
}.toPersistentList())
|
||||
}.toImmutableList())
|
||||
|
||||
/**
|
||||
* Whether a new answer can be added.
|
||||
|
|
@ -114,7 +114,7 @@ internal val pollFormStateSaver = mapSaver(
|
|||
restore = { saved ->
|
||||
PollFormState(
|
||||
question = saved["question"] as String,
|
||||
answers = (saved["answers"] as Array<*>).map { it as String }.toPersistentList(),
|
||||
answers = (saved["answers"] as Array<*>).map { it as String }.toImmutableList(),
|
||||
isDisclosed = saved["isDisclosed"] as Boolean,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ import io.element.android.features.poll.api.pollcontent.aPollContentState
|
|||
import io.element.android.features.poll.impl.history.model.PollHistoryFilter
|
||||
import io.element.android.features.poll.impl.history.model.PollHistoryItem
|
||||
import io.element.android.features.poll.impl.history.model.PollHistoryItems
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
class PollHistoryStateProvider : PreviewParameterProvider<PollHistoryState> {
|
||||
override val values: Sequence<PollHistoryState>
|
||||
|
|
@ -53,8 +53,8 @@ internal fun aPollHistoryState(
|
|||
hasMoreToLoad = hasMoreToLoad,
|
||||
activeFilter = activeFilter,
|
||||
pollHistoryItems = PollHistoryItems(
|
||||
ongoing = currentItems.toPersistentList(),
|
||||
past = currentItems.toPersistentList(),
|
||||
ongoing = currentItems.toImmutableList(),
|
||||
past = currentItems.toImmutableList(),
|
||||
),
|
||||
eventSink = eventSink,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import io.element.android.libraries.dateformatter.api.DateFormatter
|
|||
import io.element.android.libraries.dateformatter.api.DateFormatterMode
|
||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.PollContent
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
@Inject
|
||||
|
|
@ -36,8 +36,8 @@ class PollHistoryItemsFactory(
|
|||
}
|
||||
}
|
||||
PollHistoryItems(
|
||||
ongoing = ongoing.toPersistentList(),
|
||||
past = past.toPersistentList()
|
||||
ongoing = ongoing.toImmutableList(),
|
||||
past = past.toImmutableList()
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ package io.element.android.features.poll.impl.create
|
|||
|
||||
import androidx.compose.runtime.saveable.SaverScope
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import org.junit.Test
|
||||
|
||||
class PollFormStateSaverTest {
|
||||
|
|
@ -21,7 +21,7 @@ class PollFormStateSaverTest {
|
|||
fun `test save and restore`() {
|
||||
val state = PollFormState(
|
||||
question = "question",
|
||||
answers = listOf("answer1", "answer2").toPersistentList(),
|
||||
answers = persistentListOf("answer1", "answer2"),
|
||||
isDisclosed = true,
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ package io.element.android.features.poll.impl.create
|
|||
import com.google.common.truth.Truth.assertThat
|
||||
import io.element.android.features.poll.impl.PollConstants
|
||||
import io.element.android.libraries.matrix.api.poll.PollKind
|
||||
import kotlinx.collections.immutable.toPersistentList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import org.junit.Test
|
||||
|
||||
class PollFormStateTest {
|
||||
|
|
@ -47,7 +47,7 @@ class PollFormStateTest {
|
|||
val state = PollFormState.Empty
|
||||
val newState = state.withAnswerChanged(1, "New answer")
|
||||
assertThat(newState).isEqualTo(PollFormState.Empty.copy(
|
||||
answers = listOf("", "New answer").toPersistentList()
|
||||
answers = listOf("", "New answer").toImmutableList()
|
||||
))
|
||||
}
|
||||
|
||||
|
|
@ -58,7 +58,7 @@ class PollFormStateTest {
|
|||
val state = PollFormState.Empty
|
||||
val newState = state.withAnswerChanged(1, tooLongAnswer)
|
||||
assertThat(newState).isEqualTo(PollFormState.Empty.copy(
|
||||
answers = listOf("", truncatedAnswer).toPersistentList()
|
||||
answers = listOf("", truncatedAnswer).toImmutableList()
|
||||
))
|
||||
}
|
||||
|
||||
|
|
@ -101,7 +101,7 @@ class PollFormStateTest {
|
|||
|
||||
@Test
|
||||
fun `is valid is false when not enough answers`() {
|
||||
val state = aValidPollFormState().copy(answers = listOf("").toPersistentList())
|
||||
val state = aValidPollFormState().copy(answers = listOf("").toImmutableList())
|
||||
assertThat(state.isValid).isFalse()
|
||||
}
|
||||
|
||||
|
|
@ -127,10 +127,10 @@ class PollFormStateTest {
|
|||
private fun aValidPollFormState(): PollFormState {
|
||||
return PollFormState.Empty.copy(
|
||||
question = "question",
|
||||
answers = listOf("answer1", "answer2").toPersistentList(),
|
||||
answers = listOf("answer1", "answer2").toImmutableList(),
|
||||
isDisclosed = true,
|
||||
)
|
||||
}
|
||||
|
||||
private fun PollFormState.withBlankAnswers(numAnswers: Int): PollFormState =
|
||||
copy(answers = List(numAnswers) { "" }.toPersistentList())
|
||||
copy(answers = List(numAnswers) { "" }.toImmutableList())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue