Iterate on EnsureCalledOnce devX

This commit is contained in:
Benoit Marty
2024-01-08 10:07:48 +01:00
parent ba2c297118
commit 0628ceabc1
2 changed files with 16 additions and 14 deletions

View File

@@ -21,12 +21,12 @@ import androidx.compose.ui.test.junit4.createAndroidComposeRule
import androidx.test.ext.junit.runners.AndroidJUnit4
import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.ui.strings.CommonStrings
import io.element.android.tests.testutils.EnsureCalledOnce
import io.element.android.tests.testutils.EnsureCalledOnceWithParam
import io.element.android.tests.testutils.EnsureNeverCalled
import io.element.android.tests.testutils.EnsureNeverCalledWithParam
import io.element.android.tests.testutils.EventsRecorder
import io.element.android.tests.testutils.clickOn
import io.element.android.tests.testutils.ensureCalledOnce
import io.element.android.tests.testutils.ensureCalledOnceWithParam
import io.element.android.tests.testutils.pressBack
import org.junit.Rule
import org.junit.Test
@@ -57,7 +57,7 @@ class LogoutViewTest {
@Test
fun `clicking on back invoke back callback`() {
val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false)
EnsureCalledOnce().run { callback ->
ensureCalledOnce { callback ->
rule.setContent {
LogoutView(
aLogoutState(
@@ -112,7 +112,7 @@ class LogoutViewTest {
fun `success logout invoke onSuccessLogout`() {
val data = "data"
val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false)
EnsureCalledOnceWithParam<String?>(data).run { callback ->
ensureCalledOnceWithParam<String?>(data) { callback ->
rule.setContent {
LogoutView(
aLogoutState(
@@ -130,7 +130,7 @@ class LogoutViewTest {
@Test
fun `last session setting button invoke onChangeRecoveryKeyClicked`() {
val eventsRecorder = EventsRecorder<LogoutEvents>(expectEvents = false)
EnsureCalledOnce().run { callback ->
ensureCalledOnce { callback ->
rule.setContent {
LogoutView(
aLogoutState(

View File

@@ -27,11 +27,12 @@ class EnsureCalledOnce : () -> Unit {
throw AssertionError("Expected to be called once, but was called $counter times")
}
}
}
fun run(block: (callback: EnsureCalledOnce) -> Unit) {
block(this)
assertSuccess()
}
fun ensureCalledOnce(block: (callback: EnsureCalledOnce) -> Unit) {
val callback = EnsureCalledOnce()
block(callback)
callback.assertSuccess()
}
class EnsureCalledOnceWithParam<T>(
@@ -50,9 +51,10 @@ class EnsureCalledOnceWithParam<T>(
throw AssertionError("Expected to be called once, but was called $counter times")
}
}
fun run(block: (callback: EnsureCalledOnceWithParam<T>) -> Unit) {
block(this)
assertSuccess()
}
}
fun <T> ensureCalledOnceWithParam(param: T, block: (callback: EnsureCalledOnceWithParam<T>) -> Unit) {
val callback = EnsureCalledOnceWithParam(param)
block(callback)
callback.assertSuccess()
}