Skip to content

Commit

Permalink
Created event function for checkout submit button
Browse files Browse the repository at this point in the history
  • Loading branch information
leighdouglas committed Feb 11, 2021
1 parent b4e2c14 commit fe3ba5a
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 11 deletions.
15 changes: 15 additions & 0 deletions app/src/main/java/com/kickstarter/libs/AnalyticEvents.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.kickstarter.libs.KoalaContext.*
import com.kickstarter.libs.KoalaEvent.ProjectAction
import com.kickstarter.libs.utils.EventContext.CtaContextName.ADD_ONS_CONTINUE
import com.kickstarter.libs.utils.EventContext.CtaContextName.PLEDGE_INITIATE
import com.kickstarter.libs.utils.EventContext.CtaContextName.PLEDGE_SUBMIT
import com.kickstarter.libs.utils.EventName
import com.kickstarter.libs.utils.AnalyticEventsUtils
import com.kickstarter.libs.utils.ExperimentData
Expand All @@ -17,6 +18,7 @@ import com.kickstarter.ui.data.Mailbox
import kotlin.collections.HashMap

private const val CONTEXT_CTA = "context_cta"
private const val CONTEXT_TYPE = "context_type"

class AnalyticEvents(trackingClients: List<TrackingClientType?>) {

Expand Down Expand Up @@ -618,6 +620,19 @@ class AnalyticEvents(trackingClients: List<TrackingClientType?>) {
client.track(PLEDGE_SUBMIT_BUTTON_CLICKED, props)
}

/**
* Sends data associated with the submit CTA click event to the client.
*
* @param checkoutData: The checkout data.
* @param pledgeData: The selected pledge data.
*/
fun trackPledgeSubmitCTA(checkoutData: CheckoutData, pledgeData: PledgeData) {
val props: HashMap<String, Any> = hashMapOf(CONTEXT_CTA to PLEDGE_SUBMIT.contextName)
props[CONTEXT_TYPE] = "credit_card"
props.putAll(AnalyticEventsUtils.checkoutDataProperties(checkoutData, pledgeData, client.loggedInUser()))
client.track(EventName.CTA_CLICKED.eventName, props)
}

fun trackManagePledgeButtonClicked(projectData: ProjectData, context: PledgeFlowContext?) {
val props = AnalyticEventsUtils.projectProperties(projectData.project(), client.loggedInUser())
if (context != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1325,7 +1325,10 @@ interface PledgeFragmentViewModel {
.filter { shouldTrackPledgeSubmitButtonClicked(it.second.pledgeFlowContext()) }
.compose<Pair<CheckoutData, PledgeData>>(takeWhen(this.pledgeButtonClicked))
.compose(bindToLifecycle())
.subscribe { this.lake.trackPledgeSubmitButtonClicked(it.first, it.second) }
.subscribe {
this.lake.trackPledgeSubmitButtonClicked(it.first, it.second)
this.lake.trackPledgeSubmitCTA(it.first, it.second)
}

// - Screen configuration Logic (Different configurations depending on: PledgeReason, Reward type, Shipping, AddOns)
this.selectedReward
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1061,7 +1061,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.pledgeButtonIsEnabled.assertValue(true)
this.vm.inputs.pledgeButtonClicked()

this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked")
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.experimentsTest.assertValues("Checkout Payment Page Viewed")
}

Expand Down Expand Up @@ -1356,7 +1357,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.pledgeButtonIsEnabled.assertValues(true, false, true)
this.pledgeProgressIsGone.assertValues(false, true)
this.showUpdatePaymentError.assertValueCount(1)
this.lakeTest.assertValues("Pledge Submit Button Clicked")
this.lakeTest.assertValues("Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Pledge Submit Button Clicked", "CTA Clicked")
}

@Test
Expand Down Expand Up @@ -1413,7 +1415,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.pledgeButtonIsEnabled.assertValues(true, false)
this.pledgeProgressIsGone.assertValues(false)
this.showUpdatePaymentSuccess.assertValueCount(1)
this.lakeTest.assertValues("Pledge Submit Button Clicked")
this.lakeTest.assertValues("Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Pledge Submit Button Clicked", "CTA Clicked")
}

@Test
Expand Down Expand Up @@ -1935,7 +1938,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.showSelectedCard.assertValue(Pair(0, CardState.SELECTED))
this.showPledgeSuccess.assertValueCount(1)
this.showPledgeError.assertNoValues()
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked")
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.experimentsTest.assertValues("Checkout Payment Page Viewed")
}

Expand All @@ -1955,7 +1959,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.showSelectedCard.assertValue(Pair(0, CardState.SELECTED))
this.showPledgeSuccess.assertValueCount(1)
this.showPledgeError.assertNoValues()
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked")
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.experimentsTest.assertValues("Checkout Payment Page Viewed")
}

Expand All @@ -1979,7 +1984,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.showSelectedCard.assertValue(Pair(0, CardState.SELECTED))
this.showPledgeSuccess.assertValueCount(1)
this.showPledgeError.assertNoValues()
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked")
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.experimentsTest.assertValues("Checkout Payment Page Viewed")
}

Expand All @@ -2006,7 +2012,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.showPledgeSuccess.assertNoValues()
this.showPledgeError.assertValueCount(1)
this.showSCAFlow.assertNoValues()
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked")
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.experimentsTest.assertValues("Checkout Payment Page Viewed")
}

Expand All @@ -2033,7 +2040,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.showPledgeSuccess.assertNoValues()
this.showPledgeError.assertNoValues()
this.showSCAFlow.assertValueCount(1)
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked")
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.experimentsTest.assertValues("Checkout Payment Page Viewed")

this.vm.inputs.stripeSetupResultSuccessful(StripeIntentResult.Outcome.SUCCEEDED)
Expand Down Expand Up @@ -2074,7 +2082,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.showSelectedCard.assertValue(Pair(0, CardState.SELECTED))
this.showPledgeSuccess.assertNoValues()
this.showPledgeError.assertValueCount(1)
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked")
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.experimentsTest.assertValues("Checkout Payment Page Viewed")
}

Expand Down Expand Up @@ -2110,7 +2119,8 @@ class PledgeFragmentViewModelTest : KSRobolectricTestCase() {
this.showSelectedCard.assertValue(Pair(0, CardState.SELECTED))
this.showPledgeSuccess.assertNoValues()
this.showPledgeError.assertValueCount(1)
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked")
this.lakeTest.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.segmentTrack.assertValues("Checkout Payment Page Viewed", "Pledge Submit Button Clicked", "CTA Clicked")
this.experimentsTest.assertValues("Checkout Payment Page Viewed")
}

Expand Down

0 comments on commit fe3ba5a

Please sign in to comment.