Add libraries/emoji/test module with picker fakes

This commit is contained in:
ganfra
2026-07-22 15:33:54 +02:00
parent 93d6d5c84c
commit 89deff8a53
5 changed files with 59 additions and 3 deletions
+1
View File
@@ -107,5 +107,6 @@ dependencies {
testImplementation(projects.features.poll.test)
testImplementation(projects.libraries.eventformatter.test)
testImplementation(projects.libraries.emoji.impl)
testImplementation(projects.libraries.emoji.test)
testImplementation(projects.libraries.slashcommands.test)
}
@@ -11,9 +11,8 @@ package io.element.android.features.messages.impl.timeline.components.customreac
import com.google.common.truth.Truth.assertThat
import io.element.android.features.messages.impl.timeline.aTimelineItemEvent
import io.element.android.features.messages.impl.timeline.aTimelineItemReactions
import io.element.android.libraries.emoji.api.picker.EmojiPickerPresenter
import io.element.android.libraries.emoji.api.recentemojis.EmptyGetRecentEmojis
import io.element.android.libraries.emoji.impl.picker.anEmojiPickerState
import io.element.android.libraries.emoji.test.fakeEmojiPickerPresenterFactory
import io.element.android.libraries.matrix.test.AN_EVENT_ID
import io.element.android.tests.testutils.WarmUpRule
import io.element.android.tests.testutils.test
@@ -26,7 +25,7 @@ class CustomReactionPresenterTest {
val warmUpRule = WarmUpRule()
private val presenter = CustomReactionPresenter(
emojiPickerPresenterFactory = EmojiPickerPresenter.Factory { EmojiPickerPresenter { anEmojiPickerState() } },
emojiPickerPresenterFactory = fakeEmojiPickerPresenterFactory(),
getRecentEmojis = EmptyGetRecentEmojis,
)
+19
View File
@@ -0,0 +1,19 @@
/*
* Copyright (c) 2026 Element Creations Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
* Please see LICENSE files in the repository root for full details.
*/
plugins {
id("io.element.android-compose-library")
}
android {
namespace = "io.element.android.libraries.emoji.test"
}
dependencies {
api(projects.libraries.emoji.api)
implementation(projects.libraries.architecture)
}
@@ -0,0 +1,19 @@
/*
* Copyright (c) 2026 Element Creations Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.emoji.test
import io.element.android.libraries.emoji.api.picker.EmojiPickerPresenter
import io.element.android.libraries.emoji.api.picker.EmojiPickerState
fun fakeEmojiPickerPresenter(
state: EmojiPickerState = FakeEmojiPickerState(),
): EmojiPickerPresenter = EmojiPickerPresenter { state }
fun fakeEmojiPickerPresenterFactory(
presenter: EmojiPickerPresenter = fakeEmojiPickerPresenter(),
): EmojiPickerPresenter.Factory = EmojiPickerPresenter.Factory { presenter }
@@ -0,0 +1,18 @@
/*
* Copyright (c) 2026 Element Creations Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.emoji.test
import io.element.android.libraries.emoji.api.picker.EmojiPickerState
/**
* Minimal [EmojiPickerState] for use in tests that don't render the picker (typically presenter
* tests).
*/
data class FakeEmojiPickerState(
override val isReady: Boolean = true,
) : EmojiPickerState