mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-02 21:32:34 +00:00
Improve FakeSessionVerificationService
This commit is contained in:
+3
@@ -99,6 +99,7 @@ class IncomingVerificationPresenterTest {
|
|||||||
emojiState.eventSink(IncomingVerificationViewEvents.ConfirmVerification)
|
emojiState.eventSink(IncomingVerificationViewEvents.ConfirmVerification)
|
||||||
val emojiWaitingItem = awaitItem()
|
val emojiWaitingItem = awaitItem()
|
||||||
assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue()
|
assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue()
|
||||||
|
advanceUntilIdle()
|
||||||
approveVerificationLambda.assertions().isCalledOnce()
|
approveVerificationLambda.assertions().isCalledOnce()
|
||||||
// Remote confirm that the emojis match
|
// Remote confirm that the emojis match
|
||||||
fakeSessionVerificationService.emitVerificationFlowState(
|
fakeSessionVerificationService.emitVerificationFlowState(
|
||||||
@@ -161,6 +162,7 @@ class IncomingVerificationPresenterTest {
|
|||||||
emojiState.eventSink(IncomingVerificationViewEvents.DeclineVerification)
|
emojiState.eventSink(IncomingVerificationViewEvents.DeclineVerification)
|
||||||
val emojiWaitingItem = awaitItem()
|
val emojiWaitingItem = awaitItem()
|
||||||
assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue()
|
assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue()
|
||||||
|
advanceUntilIdle()
|
||||||
declineVerificationLambda.assertions().isCalledOnce()
|
declineVerificationLambda.assertions().isCalledOnce()
|
||||||
// Remote confirm that there is a failure
|
// Remote confirm that there is a failure
|
||||||
fakeSessionVerificationService.emitVerificationFlowState(
|
fakeSessionVerificationService.emitVerificationFlowState(
|
||||||
@@ -260,6 +262,7 @@ class IncomingVerificationPresenterTest {
|
|||||||
emojiState.eventSink(IncomingVerificationViewEvents.GoBack)
|
emojiState.eventSink(IncomingVerificationViewEvents.GoBack)
|
||||||
val emojiWaitingItem = awaitItem()
|
val emojiWaitingItem = awaitItem()
|
||||||
assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue()
|
assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue()
|
||||||
|
advanceUntilIdle()
|
||||||
declineVerificationLambda.assertions().isCalledOnce()
|
declineVerificationLambda.assertions().isCalledOnce()
|
||||||
// Remote confirm that there is a failure
|
// Remote confirm that there is a failure
|
||||||
fakeSessionVerificationService.emitVerificationFlowState(
|
fakeSessionVerificationService.emitVerificationFlowState(
|
||||||
|
|||||||
+8
-4
@@ -27,6 +27,8 @@ import io.element.android.tests.testutils.lambda.lambdaError
|
|||||||
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||||
import io.element.android.tests.testutils.test
|
import io.element.android.tests.testutils.test
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
|
import kotlinx.coroutines.test.TestScope
|
||||||
|
import kotlinx.coroutines.test.advanceUntilIdle
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
@@ -271,6 +273,7 @@ class OutgoingVerificationPresenterTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
context(testScope: TestScope)
|
||||||
private suspend fun ReceiveTurbine<OutgoingVerificationState>.requestVerificationAndAwaitVerifyingState(
|
private suspend fun ReceiveTurbine<OutgoingVerificationState>.requestVerificationAndAwaitVerifyingState(
|
||||||
fakeService: FakeSessionVerificationService,
|
fakeService: FakeSessionVerificationService,
|
||||||
sessionVerificationData: SessionVerificationData = SessionVerificationData.Emojis(emptyList()),
|
sessionVerificationData: SessionVerificationData = SessionVerificationData.Emojis(emptyList()),
|
||||||
@@ -278,6 +281,7 @@ class OutgoingVerificationPresenterTest {
|
|||||||
var state = awaitItem()
|
var state = awaitItem()
|
||||||
assertThat(state.step).isEqualTo(Step.Initial)
|
assertThat(state.step).isEqualTo(Step.Initial)
|
||||||
state.eventSink(OutgoingVerificationViewEvents.RequestVerification)
|
state.eventSink(OutgoingVerificationViewEvents.RequestVerification)
|
||||||
|
testScope.advanceUntilIdle()
|
||||||
// Await for other device response:
|
// Await for other device response:
|
||||||
fakeService.emitVerificationFlowState(VerificationFlowState.DidAcceptVerificationRequest)
|
fakeService.emitVerificationFlowState(VerificationFlowState.DidAcceptVerificationRequest)
|
||||||
state = awaitItem()
|
state = awaitItem()
|
||||||
@@ -286,6 +290,7 @@ class OutgoingVerificationPresenterTest {
|
|||||||
state = awaitItem()
|
state = awaitItem()
|
||||||
assertThat(state.step).isEqualTo(Step.Ready)
|
assertThat(state.step).isEqualTo(Step.Ready)
|
||||||
state.eventSink(OutgoingVerificationViewEvents.StartSasVerification)
|
state.eventSink(OutgoingVerificationViewEvents.StartSasVerification)
|
||||||
|
testScope.advanceUntilIdle()
|
||||||
// Await for other device response (again):
|
// Await for other device response (again):
|
||||||
fakeService.emitVerificationFlowState(VerificationFlowState.DidStartSasVerification)
|
fakeService.emitVerificationFlowState(VerificationFlowState.DidStartSasVerification)
|
||||||
state = awaitItem()
|
state = awaitItem()
|
||||||
@@ -297,7 +302,7 @@ class OutgoingVerificationPresenterTest {
|
|||||||
return state
|
return state
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun unverifiedSessionService(
|
private fun unverifiedSessionService(
|
||||||
requestDeviceVerificationLambda: () -> Unit = { lambdaError() },
|
requestDeviceVerificationLambda: () -> Unit = { lambdaError() },
|
||||||
requestUserVerificationLambda: (UserId) -> Unit = { lambdaError() },
|
requestUserVerificationLambda: (UserId) -> Unit = { lambdaError() },
|
||||||
cancelVerificationLambda: () -> Unit = { lambdaError() },
|
cancelVerificationLambda: () -> Unit = { lambdaError() },
|
||||||
@@ -309,6 +314,7 @@ class OutgoingVerificationPresenterTest {
|
|||||||
acceptVerificationRequestLambda: () -> Unit = { lambdaError() },
|
acceptVerificationRequestLambda: () -> Unit = { lambdaError() },
|
||||||
): FakeSessionVerificationService {
|
): FakeSessionVerificationService {
|
||||||
return FakeSessionVerificationService(
|
return FakeSessionVerificationService(
|
||||||
|
initialSessionVerifiedStatus = SessionVerifiedStatus.NotVerified,
|
||||||
requestDeviceVerificationLambda = requestDeviceVerificationLambda,
|
requestDeviceVerificationLambda = requestDeviceVerificationLambda,
|
||||||
requestUserVerificationLambda = requestUserVerificationLambda,
|
requestUserVerificationLambda = requestUserVerificationLambda,
|
||||||
cancelVerificationLambda = cancelVerificationLambda,
|
cancelVerificationLambda = cancelVerificationLambda,
|
||||||
@@ -318,9 +324,7 @@ class OutgoingVerificationPresenterTest {
|
|||||||
resetLambda = resetLambda,
|
resetLambda = resetLambda,
|
||||||
acknowledgeVerificationRequestLambda = acknowledgeVerificationRequestLambda,
|
acknowledgeVerificationRequestLambda = acknowledgeVerificationRequestLambda,
|
||||||
acceptVerificationRequestLambda = acceptVerificationRequestLambda,
|
acceptVerificationRequestLambda = acceptVerificationRequestLambda,
|
||||||
).apply {
|
)
|
||||||
emitVerifiedStatus(SessionVerifiedStatus.NotVerified)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-8
@@ -40,31 +40,31 @@ class FakeSessionVerificationService(
|
|||||||
override val sessionVerifiedStatus: StateFlow<SessionVerifiedStatus> = _sessionVerifiedStatus
|
override val sessionVerifiedStatus: StateFlow<SessionVerifiedStatus> = _sessionVerifiedStatus
|
||||||
override val needsSessionVerification: Flow<Boolean> = _needsSessionVerification
|
override val needsSessionVerification: Flow<Boolean> = _needsSessionVerification
|
||||||
|
|
||||||
override suspend fun requestDeviceVerification() {
|
override suspend fun requestDeviceVerification() = simulateLongTask {
|
||||||
requestDeviceVerificationLambda()
|
requestDeviceVerificationLambda()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun requestUserVerification(userId: UserId) {
|
override suspend fun requestUserVerification(userId: UserId) = simulateLongTask {
|
||||||
requestUserVerificationLambda(userId)
|
requestUserVerificationLambda(userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun cancelVerification() {
|
override suspend fun cancelVerification() = simulateLongTask {
|
||||||
cancelVerificationLambda()
|
cancelVerificationLambda()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun approveVerification() {
|
override suspend fun approveVerification() = simulateLongTask {
|
||||||
approveVerificationLambda()
|
approveVerificationLambda()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun declineVerification() {
|
override suspend fun declineVerification() = simulateLongTask {
|
||||||
declineVerificationLambda()
|
declineVerificationLambda()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun startSasVerification() {
|
override suspend fun startSasVerification() = simulateLongTask {
|
||||||
startSasVerificationLambda()
|
startSasVerificationLambda()
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun reset(cancelAnyPendingVerificationAttempt: Boolean) {
|
override suspend fun reset(cancelAnyPendingVerificationAttempt: Boolean) = simulateLongTask {
|
||||||
resetLambda(cancelAnyPendingVerificationAttempt)
|
resetLambda(cancelAnyPendingVerificationAttempt)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ class FakeSessionVerificationService(
|
|||||||
this.listener = listener
|
this.listener = listener
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun acknowledgeVerificationRequest(verificationRequest: VerificationRequest.Incoming) {
|
override suspend fun acknowledgeVerificationRequest(verificationRequest: VerificationRequest.Incoming) = simulateLongTask {
|
||||||
acknowledgeVerificationRequestLambda(verificationRequest)
|
acknowledgeVerificationRequestLambda(verificationRequest)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user