Skip to content

Commit

Permalink
Replace cancelled result with error. (#10136)
Browse files Browse the repository at this point in the history
  • Loading branch information
jaynewstrom-stripe authored Feb 11, 2025
1 parent 8524591 commit ba31bdc
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 29 deletions.
12 changes: 6 additions & 6 deletions paymentsheet/api/paymentsheet.api
Original file line number Diff line number Diff line change
Expand Up @@ -773,19 +773,19 @@ public final class com/stripe/android/paymentelement/embedded/manage/ManageContr
public synthetic fun newArray (I)[Ljava/lang/Object;
}

public final class com/stripe/android/paymentelement/embedded/manage/ManageResult$Cancelled$Creator : android/os/Parcelable$Creator {
public final class com/stripe/android/paymentelement/embedded/manage/ManageResult$Complete$Creator : android/os/Parcelable$Creator {
public fun <init> ()V
public final fun createFromParcel (Landroid/os/Parcel;)Lcom/stripe/android/paymentelement/embedded/manage/ManageResult$Cancelled;
public final fun createFromParcel (Landroid/os/Parcel;)Lcom/stripe/android/paymentelement/embedded/manage/ManageResult$Complete;
public synthetic fun createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object;
public final fun newArray (I)[Lcom/stripe/android/paymentelement/embedded/manage/ManageResult$Cancelled;
public final fun newArray (I)[Lcom/stripe/android/paymentelement/embedded/manage/ManageResult$Complete;
public synthetic fun newArray (I)[Ljava/lang/Object;
}

public final class com/stripe/android/paymentelement/embedded/manage/ManageResult$Complete$Creator : android/os/Parcelable$Creator {
public final class com/stripe/android/paymentelement/embedded/manage/ManageResult$Error$Creator : android/os/Parcelable$Creator {
public fun <init> ()V
public final fun createFromParcel (Landroid/os/Parcel;)Lcom/stripe/android/paymentelement/embedded/manage/ManageResult$Complete;
public final fun createFromParcel (Landroid/os/Parcel;)Lcom/stripe/android/paymentelement/embedded/manage/ManageResult$Error;
public synthetic fun createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object;
public final fun newArray (I)[Lcom/stripe/android/paymentelement/embedded/manage/ManageResult$Complete;
public final fun newArray (I)[Lcom/stripe/android/paymentelement/embedded/manage/ManageResult$Error;
public synthetic fun newArray (I)[Ljava/lang/Object;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,7 @@ internal class DefaultEmbeddedSheetLauncher @Inject constructor(
activityResultCaller.registerForActivityResult(ManageContract) { result ->
sheetStateHolder.sheetIsOpen = false
when (result) {
is ManageResult.Cancelled -> {
if (result.customerState != null) {
customerStateHolder.setCustomerState(result.customerState)
}
}
is ManageResult.Error -> Unit
is ManageResult.Complete -> {
customerStateHolder.setCustomerState(result.customerState)
selectionHolder.set(result.selection)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ internal sealed interface ManageResult : Parcelable {
) : ManageResult

@Parcelize
data class Cancelled(
val customerState: CustomerState?,
) : ManageResult
object Error : ManageResult

companion object {
internal const val EXTRA_RESULT = ActivityStarter.Result.EXTRA
Expand All @@ -36,7 +34,7 @@ internal sealed interface ManageResult : Parcelable {
BundleCompat.getParcelable(bundle, EXTRA_RESULT, ManageResult::class.java)
}

return result ?: Cancelled(customerState = null)
return result ?: Error
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ internal class DefaultEmbeddedSheetLauncherTest {
fun `manageActivityLauncher callback does not update state on non-complete result`() = testScenario {
sheetStateHolder.sheetIsOpen = true
customerStateHolder.setCustomerState(PaymentSheetFixtures.EMPTY_CUSTOMER_STATE)
val result = ManageResult.Cancelled(customerState = null)
val result = ManageResult.Error
val callback = manageRegisterCall.callback.asCallbackFor<ManageResult>()

callback.onActivityResult(result)
Expand All @@ -145,17 +145,6 @@ internal class DefaultEmbeddedSheetLauncherTest {
assertThat(sheetStateHolder.sheetIsOpen).isFalse()
}

@Test
fun `manageActivityLauncher callback updates state on non-complete result`() = testScenario {
sheetStateHolder.sheetIsOpen = true
val result = ManageResult.Cancelled(customerState = PaymentSheetFixtures.EMPTY_CUSTOMER_STATE)
val callback = manageRegisterCall.callback.asCallbackFor<ManageResult>()
callback.onActivityResult(result)

assertThat(customerStateHolder.customer.value).isEqualTo(PaymentSheetFixtures.EMPTY_CUSTOMER_STATE)
assertThat(sheetStateHolder.sheetIsOpen).isFalse()
}

@Test
fun `onDestroy unregisters launchers`() = testScenario {
sheetStateHolder.sheetIsOpen = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ import org.robolectric.RobolectricTestRunner
internal class ManageActivityTest {

@Test
fun `when launched without args should finish with cancelled result`() {
fun `when launched without args should finish with error result`() {
ActivityScenario.launchActivityForResult(
ManageActivity::class.java,
Bundle.EMPTY
).use { activityScenario ->
assertThat(activityScenario.state).isEqualTo(Lifecycle.State.DESTROYED)
val result = ManageContract.parseResult(0, activityScenario.result.resultData)
assertThat(result).isInstanceOf(ManageResult.Cancelled::class.java)
assertThat(result).isInstanceOf(ManageResult.Error::class.java)
}
}
}

0 comments on commit ba31bdc

Please sign in to comment.