diff --git a/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenterTest.kt b/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenterTest.kt index e36cc5b841..8b9b5dbe89 100644 --- a/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenterTest.kt +++ b/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenterTest.kt @@ -20,6 +20,9 @@ import app.cash.molecule.RecompositionMode import app.cash.molecule.moleculeFlow import app.cash.turbine.test import com.google.common.truth.Truth.assertThat +import io.element.android.features.rageshake.api.crash.CrashDataStore +import io.element.android.features.rageshake.api.reporter.BugReporter +import io.element.android.features.rageshake.api.screenshot.ScreenshotHolder import io.element.android.features.rageshake.test.crash.A_CRASH_DATA import io.element.android.features.rageshake.test.crash.FakeCrashDataStore import io.element.android.features.rageshake.test.screenshot.A_SCREENSHOT_URI @@ -27,6 +30,7 @@ import io.element.android.features.rageshake.test.screenshot.FakeScreenshotHolde import io.element.android.libraries.architecture.AsyncAction import io.element.android.libraries.matrix.test.A_FAILURE_REASON import io.element.android.tests.testutils.WarmUpRule +import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runTest import org.junit.Rule import org.junit.Test @@ -40,12 +44,7 @@ class BugReportPresenterTest { @Test fun `present - initial state`() = runTest { - val presenter = BugReportPresenter( - FakeBugReporter(), - FakeCrashDataStore(), - FakeScreenshotHolder(), - this, - ) + val presenter = createPresenter() moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { @@ -61,12 +60,7 @@ class BugReportPresenterTest { @Test fun `present - set description`() = runTest { - val presenter = BugReportPresenter( - FakeBugReporter(), - FakeCrashDataStore(), - FakeScreenshotHolder(), - this, - ) + val presenter = createPresenter() moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { @@ -80,12 +74,7 @@ class BugReportPresenterTest { @Test fun `present - can contact`() = runTest { - val presenter = BugReportPresenter( - FakeBugReporter(), - FakeCrashDataStore(), - FakeScreenshotHolder(), - this, - ) + val presenter = createPresenter() moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { @@ -99,12 +88,7 @@ class BugReportPresenterTest { @Test fun `present - send logs`() = runTest { - val presenter = BugReportPresenter( - FakeBugReporter(), - FakeCrashDataStore(), - FakeScreenshotHolder(), - this, - ) + val presenter = createPresenter() moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { @@ -119,12 +103,7 @@ class BugReportPresenterTest { @Test fun `present - send screenshot`() = runTest { - val presenter = BugReportPresenter( - FakeBugReporter(), - FakeCrashDataStore(), - FakeScreenshotHolder(), - this, - ) + val presenter = createPresenter() moleculeFlow(RecompositionMode.Immediate) { presenter.present() }.test { @@ -138,11 +117,9 @@ class BugReportPresenterTest { @Test fun `present - reset all`() = runTest { - val presenter = BugReportPresenter( - FakeBugReporter(), - FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true), - FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI), - this, + val presenter = createPresenter( + crashDataStore = FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true), + screenshotHolder = FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI), ) moleculeFlow(RecompositionMode.Immediate) { presenter.present() @@ -160,11 +137,10 @@ class BugReportPresenterTest { @Test fun `present - send success`() = runTest { - val presenter = BugReportPresenter( + val presenter = createPresenter( FakeBugReporter(mode = FakeBugReporterMode.Success), FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true), FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI), - this, ) moleculeFlow(RecompositionMode.Immediate) { presenter.present() @@ -185,11 +161,10 @@ class BugReportPresenterTest { @Test fun `present - send failure`() = runTest { - val presenter = BugReportPresenter( + val presenter = createPresenter( FakeBugReporter(mode = FakeBugReporterMode.Failure), FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true), FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI), - this, ) moleculeFlow(RecompositionMode.Immediate) { presenter.present() @@ -214,11 +189,10 @@ class BugReportPresenterTest { @Test fun `present - send cancel`() = runTest { - val presenter = BugReportPresenter( + val presenter = createPresenter( FakeBugReporter(mode = FakeBugReporterMode.Cancel), FakeCrashDataStore(crashData = A_CRASH_DATA, appHasCrashed = true), FakeScreenshotHolder(screenshotUri = A_SCREENSHOT_URI), - this, ) moleculeFlow(RecompositionMode.Immediate) { presenter.present() @@ -235,4 +209,15 @@ class BugReportPresenterTest { assertThat(awaitItem().sending).isEqualTo(AsyncAction.Uninitialized) } } + + private fun TestScope.createPresenter( + bugReporter: BugReporter = FakeBugReporter(), + crashDataStore: CrashDataStore = FakeCrashDataStore(), + screenshotHolder: ScreenshotHolder = FakeScreenshotHolder(), + ) = BugReportPresenter( + bugReporter, + crashDataStore, + screenshotHolder, + this, + ) }