Improve FakeSessionVerificationService
This commit is contained in:
parent
e4c58b3fc6
commit
92ca1e69c1
3 changed files with 19 additions and 12 deletions
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue