Extract testEnv to the test module
This commit is contained in:
parent
f847c8ad38
commit
5cd42f47c7
2 changed files with 30 additions and 22 deletions
|
|
@ -7,12 +7,6 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.ui.messages.reply
|
package io.element.android.libraries.matrix.ui.messages.reply
|
||||||
|
|
||||||
import android.content.res.Configuration
|
|
||||||
import androidx.compose.runtime.Composable
|
|
||||||
import androidx.compose.runtime.CompositionLocalProvider
|
|
||||||
import androidx.compose.ui.platform.LocalConfiguration
|
|
||||||
import androidx.compose.ui.platform.LocalContext
|
|
||||||
import androidx.test.core.app.ApplicationProvider
|
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
import app.cash.molecule.RecompositionMode
|
import app.cash.molecule.RecompositionMode
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
|
|
@ -52,6 +46,7 @@ import io.element.android.libraries.matrix.test.timeline.aProfileTimelineDetails
|
||||||
import io.element.android.libraries.matrix.ui.components.A_BLUR_HASH
|
import io.element.android.libraries.matrix.ui.components.A_BLUR_HASH
|
||||||
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo
|
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailInfo
|
||||||
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType
|
import io.element.android.libraries.matrix.ui.components.AttachmentThumbnailType
|
||||||
|
import io.element.android.tests.testutils.withConfigurationAndContext
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
|
|
@ -350,7 +345,7 @@ class InReplyToMetadataKtTest {
|
||||||
@Test
|
@Test
|
||||||
fun `a location message content`() = runTest {
|
fun `a location message content`() = runTest {
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
testEnv {
|
withConfigurationAndContext {
|
||||||
anInReplyToDetailsReady(
|
anInReplyToDetailsReady(
|
||||||
eventContent = aMessageContent(
|
eventContent = aMessageContent(
|
||||||
messageType = LocationMessageType(
|
messageType = LocationMessageType(
|
||||||
|
|
@ -380,7 +375,7 @@ class InReplyToMetadataKtTest {
|
||||||
@Test
|
@Test
|
||||||
fun `a voice message content`() = runTest {
|
fun `a voice message content`() = runTest {
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
testEnv {
|
withConfigurationAndContext {
|
||||||
anInReplyToDetailsReady(
|
anInReplyToDetailsReady(
|
||||||
eventContent = aMessageContent(
|
eventContent = aMessageContent(
|
||||||
messageType = VoiceMessageType(
|
messageType = VoiceMessageType(
|
||||||
|
|
@ -588,17 +583,3 @@ fun anImageInfo(): ImageInfo {
|
||||||
blurhash = A_BLUR_HASH,
|
blurhash = A_BLUR_HASH,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
|
||||||
private fun testEnv(content: @Composable () -> Any?): Any? {
|
|
||||||
var result: Any? = null
|
|
||||||
CompositionLocalProvider(
|
|
||||||
LocalConfiguration provides Configuration(),
|
|
||||||
LocalContext provides ApplicationProvider.getApplicationContext(),
|
|
||||||
) {
|
|
||||||
content().apply {
|
|
||||||
result = this
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2025 New Vector 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.tests.testutils
|
||||||
|
|
||||||
|
import android.content.res.Configuration
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.CompositionLocalProvider
|
||||||
|
import androidx.compose.ui.platform.LocalConfiguration
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.test.core.app.ApplicationProvider
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun withConfigurationAndContext(content: @Composable () -> Any?): Any? {
|
||||||
|
var result: Any? = null
|
||||||
|
CompositionLocalProvider(
|
||||||
|
LocalConfiguration provides Configuration(),
|
||||||
|
LocalContext provides ApplicationProvider.getApplicationContext(),
|
||||||
|
) {
|
||||||
|
result = content()
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue