Skip to content

Commit

Permalink
Report field interaction for FormActivity (#10218)
Browse files Browse the repository at this point in the history
  • Loading branch information
tjclawson-stripe authored Feb 20, 2025
1 parent 69cc19b commit 7217d90
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.stripe.android.model.PaymentMethodCode
import com.stripe.android.paymentelement.embedded.EmbeddedFormHelperFactory
import com.stripe.android.paymentelement.embedded.EmbeddedSelectionHolder
import com.stripe.android.payments.bankaccount.CollectBankAccountLauncher.Companion.HOSTED_SURFACE_PAYMENT_ELEMENT
import com.stripe.android.paymentsheet.analytics.EventReporter
import com.stripe.android.paymentsheet.paymentdatacollection.ach.USBankAccountFormArguments
import com.stripe.android.paymentsheet.verticalmode.DefaultVerticalModeFormInteractor
import com.stripe.android.paymentsheet.verticalmode.PaymentMethodIncentiveInteractor
Expand All @@ -20,7 +21,8 @@ internal class EmbeddedFormInteractorFactory @Inject constructor(
private val embeddedSelectionHolder: EmbeddedSelectionHolder,
private val embeddedFormHelperFactory: EmbeddedFormHelperFactory,
@ViewModelScope private val viewModelScope: CoroutineScope,
private val formActivityStateHelper: FormActivityStateHelper
private val formActivityStateHelper: FormActivityStateHelper,
private val eventReporter: EventReporter
) {
fun create(): DefaultVerticalModeFormInteractor {
val formHelper = embeddedFormHelperFactory.create(
Expand Down Expand Up @@ -49,8 +51,7 @@ internal class EmbeddedFormInteractorFactory @Inject constructor(
formElements = formHelper.formElementsForCode(paymentMethodCode),
onFormFieldValuesChanged = formHelper::onFormFieldValuesChanged,
usBankAccountArguments = usBankAccountFormArguments,
reportFieldInteraction = {
},
reportFieldInteraction = eventReporter::onPaymentMethodFormInteraction,
headerInformation = paymentMethodMetadata.formHeaderInformationForCode(
code = paymentMethodCode,
customerHasSavedPaymentMethods = hasSavedPaymentMethods
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ internal class FormActivityScreenShotTest {
embeddedSelectionHolder = selectionHolder,
cardAccountRangeRepositoryFactory = NullCardAccountRangeRepositoryFactory
)
val eventReporter = FakeEventReporter()
val interactor = EmbeddedFormInteractorFactory(
paymentMethodMetadata = paymentMethodMetadata,
paymentMethodCode = "card",
Expand All @@ -120,6 +121,7 @@ internal class FormActivityScreenShotTest {
embeddedFormHelperFactory = formHelperFactory,
viewModelScope = TestScope(UnconfinedTestDispatcher()),
formActivityStateHelper = stateHolder,
eventReporter = eventReporter
).create()

stateHolder.updateConfirmationState(confirmationState)
Expand All @@ -129,7 +131,7 @@ internal class FormActivityScreenShotTest {
ViewModelStoreOwnerContext {
FormActivityUI(
interactor = interactor,
eventReporter = FakeEventReporter(),
eventReporter = eventReporter,
onClick = {},
onProcessingCompleted = {},
state = state.copy(isEnabled = enabled),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,21 +61,23 @@ class FormActivityUiTest {
coroutineScope = TestScope(UnconfinedTestDispatcher()),
onClickDelegate = OnClickDelegateOverrideImpl()
)
val eventReporter = FakeEventReporter()
val interactor = EmbeddedFormInteractorFactory(
paymentMethodMetadata = paymentMethodMetadata,
paymentMethodCode = "card",
hasSavedPaymentMethods = false,
embeddedSelectionHolder = embeddedSelectionHolder,
embeddedFormHelperFactory = embeddedFormHelperFactory,
viewModelScope = testScope,
formActivityStateHelper = stateHelper
formActivityStateHelper = stateHelper,
eventReporter = eventReporter
).create()

composeRule.setContent {
val state by stateHelper.state.collectAsState()
FormActivityUI(
interactor = interactor,
eventReporter = FakeEventReporter(),
eventReporter = eventReporter,
onDismissed = {},
onClick = {},
onProcessingCompleted = {},
Expand Down

0 comments on commit 7217d90

Please sign in to comment.