Use Presenter.test extension
This commit is contained in:
parent
534b4d16c3
commit
a003a06a40
4 changed files with 30 additions and 90 deletions
|
|
@ -8,9 +8,6 @@
|
||||||
|
|
||||||
package io.element.android.features.rageshake.impl.bugreport
|
package io.element.android.features.rageshake.impl.bugreport
|
||||||
|
|
||||||
import app.cash.molecule.RecompositionMode
|
|
||||||
import app.cash.molecule.moleculeFlow
|
|
||||||
import app.cash.turbine.test
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.rageshake.api.reporter.BugReporter
|
import io.element.android.features.rageshake.api.reporter.BugReporter
|
||||||
import io.element.android.features.rageshake.impl.crash.A_CRASH_DATA
|
import io.element.android.features.rageshake.impl.crash.A_CRASH_DATA
|
||||||
|
|
@ -22,6 +19,7 @@ import io.element.android.features.rageshake.impl.screenshot.ScreenshotHolder
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.matrix.test.A_FAILURE_REASON
|
import io.element.android.libraries.matrix.test.A_FAILURE_REASON
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
|
import io.element.android.tests.testutils.test
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
|
|
@ -37,9 +35,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - initial state`() = runTest {
|
fun `present - initial state`() = runTest {
|
||||||
val presenter = createPresenter()
|
val presenter = createPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.hasCrashLogs).isFalse()
|
assertThat(initialState.hasCrashLogs).isFalse()
|
||||||
assertThat(initialState.formState).isEqualTo(BugReportFormState.Default)
|
assertThat(initialState.formState).isEqualTo(BugReportFormState.Default)
|
||||||
|
|
@ -53,9 +49,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - set description`() = runTest {
|
fun `present - set description`() = runTest {
|
||||||
val presenter = createPresenter()
|
val presenter = createPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_SHORT_DESCRIPTION))
|
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_SHORT_DESCRIPTION))
|
||||||
assertThat(awaitItem().submitEnabled).isTrue()
|
assertThat(awaitItem().submitEnabled).isTrue()
|
||||||
|
|
@ -67,9 +61,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - can contact`() = runTest {
|
fun `present - can contact`() = runTest {
|
||||||
val presenter = createPresenter()
|
val presenter = createPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(BugReportEvents.SetCanContact(true))
|
initialState.eventSink.invoke(BugReportEvents.SetCanContact(true))
|
||||||
assertThat(awaitItem().formState).isEqualTo(BugReportFormState.Default.copy(canContact = true))
|
assertThat(awaitItem().formState).isEqualTo(BugReportFormState.Default.copy(canContact = true))
|
||||||
|
|
@ -81,9 +73,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - send logs`() = runTest {
|
fun `present - send logs`() = runTest {
|
||||||
val presenter = createPresenter()
|
val presenter = createPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
// Since this is true by default, start by disabling
|
// Since this is true by default, start by disabling
|
||||||
initialState.eventSink.invoke(BugReportEvents.SetSendLog(false))
|
initialState.eventSink.invoke(BugReportEvents.SetSendLog(false))
|
||||||
|
|
@ -96,9 +86,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - send screenshot`() = runTest {
|
fun `present - send screenshot`() = runTest {
|
||||||
val presenter = createPresenter()
|
val presenter = createPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(BugReportEvents.SetSendScreenshot(true))
|
initialState.eventSink.invoke(BugReportEvents.SetSendScreenshot(true))
|
||||||
assertThat(awaitItem().formState).isEqualTo(BugReportFormState.Default.copy(sendScreenshot = true))
|
assertThat(awaitItem().formState).isEqualTo(BugReportFormState.Default.copy(sendScreenshot = true))
|
||||||
|
|
@ -110,9 +98,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - send notification settings`() = runTest {
|
fun `present - send notification settings`() = runTest {
|
||||||
val presenter = createPresenter()
|
val presenter = createPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(BugReportEvents.SetSendPushRules(true))
|
initialState.eventSink.invoke(BugReportEvents.SetSendPushRules(true))
|
||||||
assertThat(awaitItem().formState).isEqualTo(BugReportFormState.Default.copy(sendPushRules = true))
|
assertThat(awaitItem().formState).isEqualTo(BugReportFormState.Default.copy(sendPushRules = true))
|
||||||
|
|
@ -127,9 +113,7 @@ class BugReportPresenterTest {
|
||||||
crashDataStore = FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
crashDataStore = FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
||||||
screenshotHolder = FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
screenshotHolder = FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.hasCrashLogs).isTrue()
|
assertThat(initialState.hasCrashLogs).isTrue()
|
||||||
|
|
@ -148,9 +132,7 @@ class BugReportPresenterTest {
|
||||||
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
||||||
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_LONG_DESCRIPTION))
|
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_LONG_DESCRIPTION))
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -174,9 +156,7 @@ class BugReportPresenterTest {
|
||||||
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
||||||
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_LONG_DESCRIPTION))
|
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_LONG_DESCRIPTION))
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -200,9 +180,7 @@ class BugReportPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - send failure description too short`() = runTest {
|
fun `present - send failure description too short`() = runTest {
|
||||||
val presenter = createPresenter()
|
val presenter = createPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_SHORT_DESCRIPTION))
|
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_SHORT_DESCRIPTION))
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
@ -223,9 +201,7 @@ class BugReportPresenterTest {
|
||||||
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true),
|
||||||
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_LONG_DESCRIPTION))
|
initialState.eventSink.invoke(BugReportEvents.SetDescription(A_LONG_DESCRIPTION))
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,6 @@
|
||||||
|
|
||||||
package io.element.android.features.rageshake.impl.crash.ui
|
package io.element.android.features.rageshake.impl.crash.ui
|
||||||
|
|
||||||
import app.cash.molecule.RecompositionMode
|
|
||||||
import app.cash.molecule.moleculeFlow
|
|
||||||
import app.cash.turbine.test
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.rageshake.api.crash.CrashDetectionEvent
|
import io.element.android.features.rageshake.api.crash.CrashDetectionEvent
|
||||||
import io.element.android.features.rageshake.impl.crash.A_CRASH_DATA
|
import io.element.android.features.rageshake.impl.crash.A_CRASH_DATA
|
||||||
|
|
@ -19,6 +16,7 @@ import io.element.android.features.rageshake.impl.crash.FakeCrashDataStore
|
||||||
import io.element.android.libraries.core.meta.BuildMeta
|
import io.element.android.libraries.core.meta.BuildMeta
|
||||||
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
import io.element.android.libraries.matrix.test.core.aBuildMeta
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
|
import io.element.android.tests.testutils.test
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.flowOf
|
import kotlinx.coroutines.flow.flowOf
|
||||||
|
|
@ -33,9 +31,7 @@ class CrashDetectionPresenterTest {
|
||||||
@Test
|
@Test
|
||||||
fun `present - initial state no crash`() = runTest {
|
fun `present - initial state no crash`() = runTest {
|
||||||
val presenter = createPresenter()
|
val presenter = createPresenter()
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.crashDetected).isFalse()
|
assertThat(initialState.crashDetected).isFalse()
|
||||||
}
|
}
|
||||||
|
|
@ -46,9 +42,7 @@ class CrashDetectionPresenterTest {
|
||||||
val presenter = createPresenter(
|
val presenter = createPresenter(
|
||||||
FakeCrashDataStore(appHasCrashed = true)
|
FakeCrashDataStore(appHasCrashed = true)
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.crashDetected).isTrue()
|
assertThat(initialState.crashDetected).isTrue()
|
||||||
|
|
@ -61,9 +55,7 @@ class CrashDetectionPresenterTest {
|
||||||
FakeCrashDataStore(appHasCrashed = true),
|
FakeCrashDataStore(appHasCrashed = true),
|
||||||
isFeatureAvailableFlow = flowOf(false),
|
isFeatureAvailableFlow = flowOf(false),
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.crashDetected).isFalse()
|
assertThat(initialState.crashDetected).isFalse()
|
||||||
}
|
}
|
||||||
|
|
@ -74,9 +66,7 @@ class CrashDetectionPresenterTest {
|
||||||
val presenter = createPresenter(
|
val presenter = createPresenter(
|
||||||
FakeCrashDataStore(appHasCrashed = true)
|
FakeCrashDataStore(appHasCrashed = true)
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.crashDetected).isTrue()
|
assertThat(initialState.crashDetected).isTrue()
|
||||||
|
|
@ -90,9 +80,7 @@ class CrashDetectionPresenterTest {
|
||||||
val presenter = createPresenter(
|
val presenter = createPresenter(
|
||||||
FakeCrashDataStore(appHasCrashed = true, crashData = A_CRASH_DATA)
|
FakeCrashDataStore(appHasCrashed = true, crashData = A_CRASH_DATA)
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.crashDetected).isTrue()
|
assertThat(initialState.crashDetected).isTrue()
|
||||||
|
|
@ -109,9 +97,7 @@ class CrashDetectionPresenterTest {
|
||||||
crashDataStore = crashDataStore,
|
crashDataStore = crashDataStore,
|
||||||
isFeatureAvailableFlow = isFeatureAvailableFlow,
|
isFeatureAvailableFlow = isFeatureAvailableFlow,
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.crashDetected).isFalse()
|
assertThat(initialState.crashDetected).isFalse()
|
||||||
crashDataStore.setCrashData("Some crash data")
|
crashDataStore.setCrashData("Some crash data")
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,6 @@
|
||||||
package io.element.android.features.rageshake.impl.detection
|
package io.element.android.features.rageshake.impl.detection
|
||||||
|
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import app.cash.molecule.RecompositionMode
|
|
||||||
import app.cash.molecule.moleculeFlow
|
|
||||||
import app.cash.turbine.test
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.rageshake.api.detection.RageshakeDetectionEvent
|
import io.element.android.features.rageshake.api.detection.RageshakeDetectionEvent
|
||||||
import io.element.android.features.rageshake.api.screenshot.ImageResult
|
import io.element.android.features.rageshake.api.screenshot.ImageResult
|
||||||
|
|
@ -21,6 +18,7 @@ import io.element.android.features.rageshake.impl.rageshake.FakeRageshakeDataSto
|
||||||
import io.element.android.features.rageshake.impl.screenshot.FakeScreenshotHolder
|
import io.element.android.features.rageshake.impl.screenshot.FakeScreenshotHolder
|
||||||
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
|
import io.element.android.tests.testutils.test
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import kotlinx.coroutines.flow.first
|
import kotlinx.coroutines.flow.first
|
||||||
import kotlinx.coroutines.flow.flowOf
|
import kotlinx.coroutines.flow.flowOf
|
||||||
|
|
@ -57,9 +55,7 @@ class RageshakeDetectionPresenterTest {
|
||||||
rageshakeFeatureAvailability = { flowOf(true) },
|
rageshakeFeatureAvailability = { flowOf(true) },
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.takeScreenshot).isFalse()
|
assertThat(initialState.takeScreenshot).isFalse()
|
||||||
|
|
@ -82,9 +78,7 @@ class RageshakeDetectionPresenterTest {
|
||||||
rageshakeFeatureAvailability = { flowOf(true) },
|
rageshakeFeatureAvailability = { flowOf(true) },
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
initialState.eventSink.invoke(RageshakeDetectionEvent.StartDetection)
|
initialState.eventSink.invoke(RageshakeDetectionEvent.StartDetection)
|
||||||
|
|
@ -108,9 +102,7 @@ class RageshakeDetectionPresenterTest {
|
||||||
rageshakeFeatureAvailability = { flowOf(true) },
|
rageshakeFeatureAvailability = { flowOf(true) },
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.isStarted).isFalse()
|
assertThat(initialState.isStarted).isFalse()
|
||||||
|
|
@ -143,9 +135,7 @@ class RageshakeDetectionPresenterTest {
|
||||||
rageshakeFeatureAvailability = { flowOf(true) },
|
rageshakeFeatureAvailability = { flowOf(true) },
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.isStarted).isFalse()
|
assertThat(initialState.isStarted).isFalse()
|
||||||
|
|
@ -178,9 +168,7 @@ class RageshakeDetectionPresenterTest {
|
||||||
rageshakeFeatureAvailability = { flowOf(true) },
|
rageshakeFeatureAvailability = { flowOf(true) },
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.isStarted).isFalse()
|
assertThat(initialState.isStarted).isFalse()
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,13 @@
|
||||||
|
|
||||||
package io.element.android.features.rageshake.impl.preferences
|
package io.element.android.features.rageshake.impl.preferences
|
||||||
|
|
||||||
import app.cash.molecule.RecompositionMode
|
|
||||||
import app.cash.molecule.moleculeFlow
|
|
||||||
import app.cash.turbine.test
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvent
|
import io.element.android.features.rageshake.api.preferences.RageshakePreferencesEvent
|
||||||
import io.element.android.features.rageshake.impl.rageshake.A_SENSITIVITY
|
import io.element.android.features.rageshake.impl.rageshake.A_SENSITIVITY
|
||||||
import io.element.android.features.rageshake.impl.rageshake.FakeRageShake
|
import io.element.android.features.rageshake.impl.rageshake.FakeRageShake
|
||||||
import io.element.android.features.rageshake.impl.rageshake.FakeRageshakeDataStore
|
import io.element.android.features.rageshake.impl.rageshake.FakeRageshakeDataStore
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
|
import io.element.android.tests.testutils.test
|
||||||
import kotlinx.coroutines.flow.flowOf
|
import kotlinx.coroutines.flow.flowOf
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
|
|
@ -33,9 +31,7 @@ class RageshakePreferencesPresenterTest {
|
||||||
FakeRageshakeDataStore(isEnabled = true),
|
FakeRageshakeDataStore(isEnabled = true),
|
||||||
rageshakeFeatureAvailability = { flowOf(true) },
|
rageshakeFeatureAvailability = { flowOf(true) },
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.isSupported).isTrue()
|
assertThat(initialState.isSupported).isTrue()
|
||||||
|
|
@ -50,9 +46,7 @@ class RageshakePreferencesPresenterTest {
|
||||||
FakeRageshakeDataStore(isEnabled = true),
|
FakeRageshakeDataStore(isEnabled = true),
|
||||||
rageshakeFeatureAvailability = { flowOf(true) },
|
rageshakeFeatureAvailability = { flowOf(true) },
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.isSupported).isFalse()
|
assertThat(initialState.isSupported).isFalse()
|
||||||
|
|
@ -67,9 +61,7 @@ class RageshakePreferencesPresenterTest {
|
||||||
FakeRageshakeDataStore(isEnabled = true),
|
FakeRageshakeDataStore(isEnabled = true),
|
||||||
rageshakeFeatureAvailability = { flowOf(true) },
|
rageshakeFeatureAvailability = { flowOf(true) },
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.isEnabled).isTrue()
|
assertThat(initialState.isEnabled).isTrue()
|
||||||
|
|
@ -87,9 +79,7 @@ class RageshakePreferencesPresenterTest {
|
||||||
FakeRageshakeDataStore(isEnabled = true),
|
FakeRageshakeDataStore(isEnabled = true),
|
||||||
rageshakeFeatureAvailability = { flowOf(true) },
|
rageshakeFeatureAvailability = { flowOf(true) },
|
||||||
)
|
)
|
||||||
moleculeFlow(RecompositionMode.Immediate) {
|
presenter.test {
|
||||||
presenter.present()
|
|
||||||
}.test {
|
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.sensitivity).isEqualTo(A_SENSITIVITY)
|
assertThat(initialState.sensitivity).isEqualTo(A_SENSITIVITY)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue