Improve FakeSessionVerificationService
This commit is contained in:
parent
51bcaca9db
commit
0a9259604b
3 changed files with 19 additions and 12 deletions
|
|
@ -99,6 +99,7 @@ class IncomingVerificationPresenterTest {
|
|||
emojiState.eventSink(IncomingVerificationViewEvents.ConfirmVerification)
|
||||
val emojiWaitingItem = awaitItem()
|
||||
assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue()
|
||||
advanceUntilIdle()
|
||||
approveVerificationLambda.assertions().isCalledOnce()
|
||||
// Remote confirm that the emojis match
|
||||
fakeSessionVerificationService.emitVerificationFlowState(
|
||||
|
|
@ -161,6 +162,7 @@ class IncomingVerificationPresenterTest {
|
|||
emojiState.eventSink(IncomingVerificationViewEvents.DeclineVerification)
|
||||
val emojiWaitingItem = awaitItem()
|
||||
assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue()
|
||||
advanceUntilIdle()
|
||||
declineVerificationLambda.assertions().isCalledOnce()
|
||||
// Remote confirm that there is a failure
|
||||
fakeSessionVerificationService.emitVerificationFlowState(
|
||||
|
|
@ -260,6 +262,7 @@ class IncomingVerificationPresenterTest {
|
|||
emojiState.eventSink(IncomingVerificationViewEvents.GoBack)
|
||||
val emojiWaitingItem = awaitItem()
|
||||
assertThat((emojiWaitingItem.step as IncomingVerificationState.Step.Verifying).isWaiting).isTrue()
|
||||
advanceUntilIdle()
|
||||
declineVerificationLambda.assertions().isCalledOnce()
|
||||
// Remote confirm that there is a failure
|
||||
fakeSessionVerificationService.emitVerificationFlowState(
|
||||
|
|
|
|||
|
|
@ -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.test
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
import kotlinx.coroutines.test.TestScope
|
||||
import kotlinx.coroutines.test.advanceUntilIdle
|
||||
import kotlinx.coroutines.test.runTest
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
|
|
@ -271,6 +273,7 @@ class OutgoingVerificationPresenterTest {
|
|||
}
|
||||
}
|
||||
|
||||
context(testScope: TestScope)
|
||||
private suspend fun ReceiveTurbine<OutgoingVerificationState>.requestVerificationAndAwaitVerifyingState(
|
||||
fakeService: FakeSessionVerificationService,
|
||||
sessionVerificationData: SessionVerificationData = SessionVerificationData.Emojis(emptyList()),
|
||||
|
|
@ -278,6 +281,7 @@ class OutgoingVerificationPresenterTest {
|
|||
var state = awaitItem()
|
||||
assertThat(state.step).isEqualTo(Step.Initial)
|
||||
state.eventSink(OutgoingVerificationViewEvents.RequestVerification)
|
||||
testScope.advanceUntilIdle()
|
||||
// Await for other device response:
|
||||
fakeService.emitVerificationFlowState(VerificationFlowState.DidAcceptVerificationRequest)
|
||||
state = awaitItem()
|
||||
|
|
@ -286,6 +290,7 @@ class OutgoingVerificationPresenterTest {
|
|||
state = awaitItem()
|
||||
assertThat(state.step).isEqualTo(Step.Ready)
|
||||
state.eventSink(OutgoingVerificationViewEvents.StartSasVerification)
|
||||
testScope.advanceUntilIdle()
|
||||
// Await for other device response (again):
|
||||
fakeService.emitVerificationFlowState(VerificationFlowState.DidStartSasVerification)
|
||||
state = awaitItem()
|
||||
|
|
@ -297,7 +302,7 @@ class OutgoingVerificationPresenterTest {
|
|||
return state
|
||||
}
|
||||
|
||||
private suspend fun unverifiedSessionService(
|
||||
private fun unverifiedSessionService(
|
||||
requestDeviceVerificationLambda: () -> Unit = { lambdaError() },
|
||||
requestUserVerificationLambda: (UserId) -> Unit = { lambdaError() },
|
||||
cancelVerificationLambda: () -> Unit = { lambdaError() },
|
||||
|
|
@ -309,6 +314,7 @@ class OutgoingVerificationPresenterTest {
|
|||
acceptVerificationRequestLambda: () -> Unit = { lambdaError() },
|
||||
): FakeSessionVerificationService {
|
||||
return FakeSessionVerificationService(
|
||||
initialSessionVerifiedStatus = SessionVerifiedStatus.NotVerified,
|
||||
requestDeviceVerificationLambda = requestDeviceVerificationLambda,
|
||||
requestUserVerificationLambda = requestUserVerificationLambda,
|
||||
cancelVerificationLambda = cancelVerificationLambda,
|
||||
|
|
@ -318,9 +324,7 @@ class OutgoingVerificationPresenterTest {
|
|||
resetLambda = resetLambda,
|
||||
acknowledgeVerificationRequestLambda = acknowledgeVerificationRequestLambda,
|
||||
acceptVerificationRequestLambda = acceptVerificationRequestLambda,
|
||||
).apply {
|
||||
emitVerifiedStatus(SessionVerifiedStatus.NotVerified)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,31 +40,31 @@ class FakeSessionVerificationService(
|
|||
override val sessionVerifiedStatus: StateFlow<SessionVerifiedStatus> = _sessionVerifiedStatus
|
||||
override val needsSessionVerification: Flow<Boolean> = _needsSessionVerification
|
||||
|
||||
override suspend fun requestDeviceVerification() {
|
||||
override suspend fun requestDeviceVerification() = simulateLongTask {
|
||||
requestDeviceVerificationLambda()
|
||||
}
|
||||
|
||||
override suspend fun requestUserVerification(userId: UserId) {
|
||||
override suspend fun requestUserVerification(userId: UserId) = simulateLongTask {
|
||||
requestUserVerificationLambda(userId)
|
||||
}
|
||||
|
||||
override suspend fun cancelVerification() {
|
||||
override suspend fun cancelVerification() = simulateLongTask {
|
||||
cancelVerificationLambda()
|
||||
}
|
||||
|
||||
override suspend fun approveVerification() {
|
||||
override suspend fun approveVerification() = simulateLongTask {
|
||||
approveVerificationLambda()
|
||||
}
|
||||
|
||||
override suspend fun declineVerification() {
|
||||
override suspend fun declineVerification() = simulateLongTask {
|
||||
declineVerificationLambda()
|
||||
}
|
||||
|
||||
override suspend fun startSasVerification() {
|
||||
override suspend fun startSasVerification() = simulateLongTask {
|
||||
startSasVerificationLambda()
|
||||
}
|
||||
|
||||
override suspend fun reset(cancelAnyPendingVerificationAttempt: Boolean) {
|
||||
override suspend fun reset(cancelAnyPendingVerificationAttempt: Boolean) = simulateLongTask {
|
||||
resetLambda(cancelAnyPendingVerificationAttempt)
|
||||
}
|
||||
|
||||
|
|
@ -75,7 +75,7 @@ class FakeSessionVerificationService(
|
|||
this.listener = listener
|
||||
}
|
||||
|
||||
override suspend fun acknowledgeVerificationRequest(verificationRequest: VerificationRequest.Incoming) {
|
||||
override suspend fun acknowledgeVerificationRequest(verificationRequest: VerificationRequest.Incoming) = simulateLongTask {
|
||||
acknowledgeVerificationRequestLambda(verificationRequest)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue