Add unit tests to check for unregistered state.

This commit is contained in:
Alex Hart
2025-03-18 15:39:09 -03:00
committed by Cody Henthorne
parent 5d4fec2e73
commit 4b3013984e
4 changed files with 106 additions and 1 deletions

View File

@@ -0,0 +1,31 @@
/*
* Copyright 2025 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.thoughtcrime.securesms.jobs
import assertk.assertThat
import assertk.assertions.isTrue
import io.mockk.every
import org.junit.Rule
import org.junit.Test
import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord
import org.thoughtcrime.securesms.testutil.MockSignalStoreRule
class InAppPaymentKeepAliveJobTest {
@get:Rule
val mockSignalStore = MockSignalStoreRule()
@Test
fun `Given an unregistered local user, when I run, then I expect skip`() {
every { mockSignalStore.account.isRegistered } returns false
val job = InAppPaymentKeepAliveJob.create(InAppPaymentSubscriberRecord.Type.DONATION)
val result = job.run()
assertThat(result.isSuccess).isTrue()
}
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright 2025 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.thoughtcrime.securesms.jobs
import assertk.assertThat
import assertk.assertions.isTrue
import io.mockk.every
import org.junit.Rule
import org.junit.Test
import org.signal.donations.InAppPaymentType
import org.signal.donations.PaymentSourceType
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentsTestRule
import org.thoughtcrime.securesms.testutil.MockSignalStoreRule
class InAppPaymentOneTimeContextJobTest {
@get:Rule
val mockSignalStore = MockSignalStoreRule()
@get:Rule
val iapRule = InAppPaymentsTestRule()
@Test
fun `Given an unregistered local user, when I run, then I expect failure`() {
every { mockSignalStore.account.isRegistered } returns false
val job = InAppPaymentOneTimeContextJob.create(iapRule.createInAppPayment(InAppPaymentType.ONE_TIME_DONATION, PaymentSourceType.PayPal))
val result = job.run()
assertThat(result.isFailure).isTrue()
}
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright 2025 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.thoughtcrime.securesms.jobs
import android.app.Application
import assertk.assertThat
import assertk.assertions.isTrue
import io.mockk.every
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
import org.thoughtcrime.securesms.testutil.MockSignalStoreRule
@RunWith(RobolectricTestRunner::class)
@Config(manifest = Config.NONE, application = Application::class)
class InAppPaymentRedemptionJobTest {
@get:Rule
val mockSignalStore = MockSignalStoreRule()
@Test
fun `Given an unregistered local user, when I run, then I expect failure`() {
every { mockSignalStore.account.isRegistered } returns false
val job = InAppPaymentRedemptionJob.create()
val result = job.run()
assertThat(result.isFailure).isTrue()
}
}