Browse Source

Pin : fix tests after rename

pull/1624/head
ganfra 11 months ago
parent
commit
0bc992c1ba
  1. 2
      features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/pin/DefaultPinCodeManager.kt
  2. 2
      features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/pin/PinCodeManager.kt
  3. 38
      features/lockscreen/impl/src/test/kotlin/io/element/android/features/lockscreen/impl/setup/SetupPinPresenterTest.kt

2
features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/pin/DefaultPinCodeManager.kt

@ -37,7 +37,7 @@ class DefaultPinCodeManager @Inject constructor(
return pinCodeStore.hasPinCode() return pinCodeStore.hasPinCode()
} }
override suspend fun setupPinCode(pinCode: String) { override suspend fun createPinCode(pinCode: String) {
val secretKey = secretKeyProvider.getOrCreateKey(SECRET_KEY_ALIAS) val secretKey = secretKeyProvider.getOrCreateKey(SECRET_KEY_ALIAS)
val encryptedPinCode = encryptionDecryptionService.encrypt(secretKey, pinCode.toByteArray()).toBase64() val encryptedPinCode = encryptionDecryptionService.encrypt(secretKey, pinCode.toByteArray()).toBase64()
pinCodeStore.saveEncryptedPinCode(encryptedPinCode) pinCodeStore.saveEncryptedPinCode(encryptedPinCode)

2
features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/pin/PinCodeManager.kt

@ -30,7 +30,7 @@ interface PinCodeManager {
* Creates a new encrypted pin code. * Creates a new encrypted pin code.
* @param pinCode the clear pin code to create * @param pinCode the clear pin code to create
*/ */
suspend fun setupPinCode(pinCode: String) suspend fun createPinCode(pinCode: String)
/** /**
* @return true if the pin code is correct. * @return true if the pin code is correct.

38
features/lockscreen/impl/src/test/kotlin/io/element/android/features/lockscreen/impl/setup/CreatePinPresenterTest.kt → features/lockscreen/impl/src/test/kotlin/io/element/android/features/lockscreen/impl/setup/SetupPinPresenterTest.kt

@ -22,14 +22,14 @@ import app.cash.turbine.test
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import io.element.android.features.lockscreen.impl.pin.model.PinDigit import io.element.android.features.lockscreen.impl.pin.model.PinDigit
import io.element.android.features.lockscreen.impl.pin.model.PinEntry import io.element.android.features.lockscreen.impl.pin.model.PinEntry
import io.element.android.features.lockscreen.impl.setup.validation.CreatePinFailure
import io.element.android.features.lockscreen.impl.setup.validation.PinValidator import io.element.android.features.lockscreen.impl.setup.validation.PinValidator
import io.element.android.features.lockscreen.impl.setup.validation.SetupPinFailure
import io.element.android.libraries.matrix.test.core.aBuildMeta import io.element.android.libraries.matrix.test.core.aBuildMeta
import io.element.android.tests.testutils.awaitLastSequentialItem import io.element.android.tests.testutils.awaitLastSequentialItem
import kotlinx.coroutines.test.runTest import kotlinx.coroutines.test.runTest
import org.junit.Test import org.junit.Test
class CreatePinPresenterTest { class SetupPinPresenterTest {
private val blacklistedPin = PinValidator.BLACKLIST.first() private val blacklistedPin = PinValidator.BLACKLIST.first()
private val halfCompletePin = "12" private val halfCompletePin = "12"
@ -39,58 +39,58 @@ class CreatePinPresenterTest {
@Test @Test
fun `present - complete flow`() = runTest { fun `present - complete flow`() = runTest {
val presenter = createCreatePinPresenter() val presenter = createSetupPinPresenter()
moleculeFlow(RecompositionMode.Immediate) { moleculeFlow(RecompositionMode.Immediate) {
presenter.present() presenter.present()
}.test { }.test {
awaitItem().also { state -> awaitItem().also { state ->
state.choosePinEntry.assertEmpty() state.choosePinEntry.assertEmpty()
state.confirmPinEntry.assertEmpty() state.confirmPinEntry.assertEmpty()
assertThat(state.createPinFailure).isNull() assertThat(state.setupPinFailure).isNull()
assertThat(state.isConfirmationStep).isFalse() assertThat(state.isConfirmationStep).isFalse()
state.eventSink(CreatePinEvents.OnPinEntryChanged(halfCompletePin)) state.eventSink(SetupPinEvents.OnPinEntryChanged(halfCompletePin))
} }
awaitItem().also { state -> awaitItem().also { state ->
state.choosePinEntry.assertText(halfCompletePin) state.choosePinEntry.assertText(halfCompletePin)
state.confirmPinEntry.assertEmpty() state.confirmPinEntry.assertEmpty()
assertThat(state.createPinFailure).isNull() assertThat(state.setupPinFailure).isNull()
assertThat(state.isConfirmationStep).isFalse() assertThat(state.isConfirmationStep).isFalse()
state.eventSink(CreatePinEvents.OnPinEntryChanged(blacklistedPin)) state.eventSink(SetupPinEvents.OnPinEntryChanged(blacklistedPin))
} }
awaitLastSequentialItem().also { state -> awaitLastSequentialItem().also { state ->
state.choosePinEntry.assertText(blacklistedPin) state.choosePinEntry.assertText(blacklistedPin)
assertThat(state.createPinFailure).isEqualTo(CreatePinFailure.PinBlacklisted) assertThat(state.setupPinFailure).isEqualTo(SetupPinFailure.PinBlacklisted)
state.eventSink(CreatePinEvents.ClearFailure) state.eventSink(SetupPinEvents.ClearFailure)
} }
awaitLastSequentialItem().also { state -> awaitLastSequentialItem().also { state ->
state.choosePinEntry.assertEmpty() state.choosePinEntry.assertEmpty()
assertThat(state.createPinFailure).isNull() assertThat(state.setupPinFailure).isNull()
state.eventSink(CreatePinEvents.OnPinEntryChanged(completePin)) state.eventSink(SetupPinEvents.OnPinEntryChanged(completePin))
} }
awaitLastSequentialItem().also { state -> awaitLastSequentialItem().also { state ->
state.choosePinEntry.assertText(completePin) state.choosePinEntry.assertText(completePin)
state.confirmPinEntry.assertEmpty() state.confirmPinEntry.assertEmpty()
assertThat(state.isConfirmationStep).isTrue() assertThat(state.isConfirmationStep).isTrue()
state.eventSink(CreatePinEvents.OnPinEntryChanged(mismatchedPin)) state.eventSink(SetupPinEvents.OnPinEntryChanged(mismatchedPin))
} }
awaitLastSequentialItem().also { state -> awaitLastSequentialItem().also { state ->
state.choosePinEntry.assertText(completePin) state.choosePinEntry.assertText(completePin)
state.confirmPinEntry.assertText(mismatchedPin) state.confirmPinEntry.assertText(mismatchedPin)
assertThat(state.createPinFailure).isEqualTo(CreatePinFailure.PinsDontMatch) assertThat(state.setupPinFailure).isEqualTo(SetupPinFailure.PinsDontMatch)
state.eventSink(CreatePinEvents.ClearFailure) state.eventSink(SetupPinEvents.ClearFailure)
} }
awaitLastSequentialItem().also { state -> awaitLastSequentialItem().also { state ->
state.choosePinEntry.assertEmpty() state.choosePinEntry.assertEmpty()
state.confirmPinEntry.assertEmpty() state.confirmPinEntry.assertEmpty()
assertThat(state.isConfirmationStep).isFalse() assertThat(state.isConfirmationStep).isFalse()
assertThat(state.createPinFailure).isNull() assertThat(state.setupPinFailure).isNull()
state.eventSink(CreatePinEvents.OnPinEntryChanged(completePin)) state.eventSink(SetupPinEvents.OnPinEntryChanged(completePin))
} }
awaitLastSequentialItem().also { state -> awaitLastSequentialItem().also { state ->
state.choosePinEntry.assertText(completePin) state.choosePinEntry.assertText(completePin)
state.confirmPinEntry.assertEmpty() state.confirmPinEntry.assertEmpty()
assertThat(state.isConfirmationStep).isTrue() assertThat(state.isConfirmationStep).isTrue()
state.eventSink(CreatePinEvents.OnPinEntryChanged(completePin)) state.eventSink(SetupPinEvents.OnPinEntryChanged(completePin))
} }
awaitItem().also { state -> awaitItem().also { state ->
state.choosePinEntry.assertText(completePin) state.choosePinEntry.assertText(completePin)
@ -108,7 +108,7 @@ class CreatePinPresenterTest {
assertThat(isEmpty).isTrue() assertThat(isEmpty).isTrue()
} }
private fun createCreatePinPresenter(): CreatePinPresenter { private fun createSetupPinPresenter(): SetupPinPresenter {
return CreatePinPresenter(PinValidator(), aBuildMeta()) return SetupPinPresenter(PinValidator(), aBuildMeta())
} }
} }
Loading…
Cancel
Save