Fix test compilation
This commit is contained in:
parent
c47ce5bc1c
commit
d702d3d265
6 changed files with 52 additions and 23 deletions
|
|
@ -32,10 +32,10 @@ import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new list of [TimelineItem] by grouping some of them into [TimelineItem.GroupedEvents].
|
|
||||||
*/
|
|
||||||
class TimelineItemGrouper @Inject constructor() {
|
class TimelineItemGrouper @Inject constructor() {
|
||||||
|
/**
|
||||||
|
* Create a new list of [TimelineItem] by grouping some of them into [TimelineItem.GroupedEvents].
|
||||||
|
*/
|
||||||
fun group(from: List<TimelineItem>, expandedGroups: Map<String, Boolean>): List<TimelineItem> {
|
fun group(from: List<TimelineItem>, expandedGroups: Map<String, Boolean>): List<TimelineItem> {
|
||||||
val result = mutableListOf<TimelineItem>()
|
val result = mutableListOf<TimelineItem>()
|
||||||
val currentGroup = mutableListOf<TimelineItem.Event>()
|
val currentGroup = mutableListOf<TimelineItem.Event>()
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ import io.element.android.features.messages.impl.actionlist.ActionListPresenter
|
||||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||||
import io.element.android.features.messages.impl.textcomposer.MessageComposerPresenter
|
import io.element.android.features.messages.impl.textcomposer.MessageComposerPresenter
|
||||||
import io.element.android.features.messages.impl.timeline.TimelinePresenter
|
import io.element.android.features.messages.impl.timeline.TimelinePresenter
|
||||||
|
import io.element.android.features.messages.impl.timeline.groups.TimelineItemGrouper
|
||||||
import io.element.android.features.networkmonitor.test.FakeNetworkMonitor
|
import io.element.android.features.networkmonitor.test.FakeNetworkMonitor
|
||||||
import io.element.android.libraries.designsystem.utils.SnackbarDispatcher
|
import io.element.android.libraries.designsystem.utils.SnackbarDispatcher
|
||||||
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
import io.element.android.libraries.featureflag.test.FakeFeatureFlagService
|
||||||
|
|
@ -138,6 +139,7 @@ class MessagesPresenterTest {
|
||||||
)
|
)
|
||||||
val timelinePresenter = TimelinePresenter(
|
val timelinePresenter = TimelinePresenter(
|
||||||
timelineItemsFactory = aTimelineItemsFactory(),
|
timelineItemsFactory = aTimelineItemsFactory(),
|
||||||
|
timelineItemGrouper = TimelineItemGrouper(),
|
||||||
room = matrixRoom,
|
room = matrixRoom,
|
||||||
)
|
)
|
||||||
val actionListPresenter = ActionListPresenter()
|
val actionListPresenter = ActionListPresenter()
|
||||||
|
|
|
||||||
|
|
@ -31,26 +31,39 @@ import io.element.android.features.messages.impl.timeline.factories.event.Timeli
|
||||||
import io.element.android.features.messages.impl.timeline.factories.virtual.TimelineItemDaySeparatorFactory
|
import io.element.android.features.messages.impl.timeline.factories.virtual.TimelineItemDaySeparatorFactory
|
||||||
import io.element.android.features.messages.impl.timeline.factories.virtual.TimelineItemVirtualFactory
|
import io.element.android.features.messages.impl.timeline.factories.virtual.TimelineItemVirtualFactory
|
||||||
import io.element.android.libraries.dateformatter.test.FakeDaySeparatorFormatter
|
import io.element.android.libraries.dateformatter.test.FakeDaySeparatorFormatter
|
||||||
|
import io.element.android.libraries.eventformatter.api.TimelineEventFormatter
|
||||||
|
import io.element.android.libraries.matrix.api.timeline.item.event.EventTimelineItem
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
|
|
||||||
internal fun aTimelineItemsFactory() = TimelineItemsFactory(
|
internal fun aTimelineItemsFactory(): TimelineItemsFactory {
|
||||||
dispatchers = testCoroutineDispatchers(),
|
val timelineEventFormatter = aTimelineEventFormatter()
|
||||||
eventItemFactory = TimelineItemEventFactory(
|
return TimelineItemsFactory(
|
||||||
TimelineItemContentFactory(
|
dispatchers = testCoroutineDispatchers(),
|
||||||
messageFactory = TimelineItemContentMessageFactory(),
|
eventItemFactory = TimelineItemEventFactory(
|
||||||
redactedMessageFactory = TimelineItemContentRedactedFactory(),
|
TimelineItemContentFactory(
|
||||||
stickerFactory = TimelineItemContentStickerFactory(),
|
messageFactory = TimelineItemContentMessageFactory(),
|
||||||
utdFactory = TimelineItemContentUTDFactory(),
|
redactedMessageFactory = TimelineItemContentRedactedFactory(),
|
||||||
roomMembershipFactory = TimelineItemContentRoomMembershipFactory(),
|
stickerFactory = TimelineItemContentStickerFactory(),
|
||||||
profileChangeFactory = TimelineItemContentProfileChangeFactory(),
|
utdFactory = TimelineItemContentUTDFactory(),
|
||||||
stateFactory = TimelineItemContentStateFactory(),
|
roomMembershipFactory = TimelineItemContentRoomMembershipFactory(timelineEventFormatter),
|
||||||
failedToParseMessageFactory = TimelineItemContentFailedToParseMessageFactory(),
|
profileChangeFactory = TimelineItemContentProfileChangeFactory(timelineEventFormatter),
|
||||||
failedToParseStateFactory = TimelineItemContentFailedToParseStateFactory()
|
stateFactory = TimelineItemContentStateFactory(timelineEventFormatter),
|
||||||
)
|
failedToParseMessageFactory = TimelineItemContentFailedToParseMessageFactory(),
|
||||||
),
|
failedToParseStateFactory = TimelineItemContentFailedToParseStateFactory()
|
||||||
virtualItemFactory = TimelineItemVirtualFactory(
|
)
|
||||||
daySeparatorFactory = TimelineItemDaySeparatorFactory(
|
|
||||||
FakeDaySeparatorFormatter()
|
|
||||||
),
|
),
|
||||||
|
virtualItemFactory = TimelineItemVirtualFactory(
|
||||||
|
daySeparatorFactory = TimelineItemDaySeparatorFactory(
|
||||||
|
FakeDaySeparatorFormatter()
|
||||||
|
),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
}
|
||||||
|
|
||||||
|
internal fun aTimelineEventFormatter(): TimelineEventFormatter {
|
||||||
|
return object : TimelineEventFormatter {
|
||||||
|
override fun format(event: EventTimelineItem): CharSequence {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@file:OptIn(ExperimentalCoroutinesApi::class)
|
||||||
|
|
||||||
package io.element.android.features.messages.textcomposer
|
package io.element.android.features.messages.textcomposer
|
||||||
|
|
||||||
import app.cash.molecule.RecompositionClock
|
import app.cash.molecule.RecompositionClock
|
||||||
|
|
@ -50,6 +52,7 @@ import io.element.android.libraries.mediaupload.test.FakeMediaPreProcessor
|
||||||
import io.element.android.libraries.textcomposer.MessageComposerMode
|
import io.element.android.libraries.textcomposer.MessageComposerMode
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import kotlinx.coroutines.test.runCurrent
|
import kotlinx.coroutines.test.runCurrent
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.messages.fixtures.aTimelineItemsFactory
|
import io.element.android.features.messages.fixtures.aTimelineItemsFactory
|
||||||
import io.element.android.features.messages.impl.timeline.TimelineEvents
|
import io.element.android.features.messages.impl.timeline.TimelineEvents
|
||||||
import io.element.android.features.messages.impl.timeline.TimelinePresenter
|
import io.element.android.features.messages.impl.timeline.TimelinePresenter
|
||||||
|
import io.element.android.features.messages.impl.timeline.groups.TimelineItemGrouper
|
||||||
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
import io.element.android.libraries.matrix.test.AN_EVENT_ID
|
||||||
import io.element.android.libraries.matrix.test.room.FakeMatrixRoom
|
import io.element.android.libraries.matrix.test.room.FakeMatrixRoom
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -33,6 +34,7 @@ class TimelinePresenterTest {
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val presenter = TimelinePresenter(
|
val presenter = TimelinePresenter(
|
||||||
timelineItemsFactory = aTimelineItemsFactory(),
|
timelineItemsFactory = aTimelineItemsFactory(),
|
||||||
|
timelineItemGrouper = TimelineItemGrouper(),
|
||||||
room = FakeMatrixRoom(),
|
room = FakeMatrixRoom(),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionClock.Immediate) {
|
moleculeFlow(RecompositionClock.Immediate) {
|
||||||
|
|
@ -49,6 +51,7 @@ class TimelinePresenterTest {
|
||||||
fun `present - load more`() = runTest {
|
fun `present - load more`() = runTest {
|
||||||
val presenter = TimelinePresenter(
|
val presenter = TimelinePresenter(
|
||||||
timelineItemsFactory = aTimelineItemsFactory(),
|
timelineItemsFactory = aTimelineItemsFactory(),
|
||||||
|
timelineItemGrouper = TimelineItemGrouper(),
|
||||||
room = FakeMatrixRoom(),
|
room = FakeMatrixRoom(),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionClock.Immediate) {
|
moleculeFlow(RecompositionClock.Immediate) {
|
||||||
|
|
@ -71,6 +74,7 @@ class TimelinePresenterTest {
|
||||||
fun `present - set highlighted event`() = runTest {
|
fun `present - set highlighted event`() = runTest {
|
||||||
val presenter = TimelinePresenter(
|
val presenter = TimelinePresenter(
|
||||||
timelineItemsFactory = aTimelineItemsFactory(),
|
timelineItemsFactory = aTimelineItemsFactory(),
|
||||||
|
timelineItemGrouper = TimelineItemGrouper(),
|
||||||
room = FakeMatrixRoom(),
|
room = FakeMatrixRoom(),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionClock.Immediate) {
|
moleculeFlow(RecompositionClock.Immediate) {
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,14 @@ class DefaultRoomLastMessageFormatterTests {
|
||||||
fun setup() {
|
fun setup() {
|
||||||
context = RuntimeEnvironment.getApplication() as Context
|
context = RuntimeEnvironment.getApplication() as Context
|
||||||
fakeMatrixClient = FakeMatrixClient()
|
fakeMatrixClient = FakeMatrixClient()
|
||||||
formatter = DefaultRoomLastMessageFormatter(AndroidStringProvider(context.resources), fakeMatrixClient)
|
val stringProvider = AndroidStringProvider(context.resources)
|
||||||
|
formatter = DefaultRoomLastMessageFormatter(
|
||||||
|
sp = AndroidStringProvider(context.resources),
|
||||||
|
matrixClient = fakeMatrixClient,
|
||||||
|
roomMembershipContentFormatter = RoomMembershipContentFormatter(fakeMatrixClient, stringProvider),
|
||||||
|
profileChangeContentFormatter = ProfileChangeContentFormatter(stringProvider),
|
||||||
|
stateContentFormatter = StateContentFormatter(stringProvider)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue