Skip to content

Commit

Permalink
MBL-1258: Analytics, changes on project properties for Late Pledges (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
Arkariang authored Mar 27, 2024
1 parent 1f9f6bd commit aed54b6
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import com.kickstarter.libs.utils.extensions.refTag
import com.kickstarter.libs.utils.extensions.rewardCost
import com.kickstarter.libs.utils.extensions.round
import com.kickstarter.libs.utils.extensions.shippingAmount
import com.kickstarter.libs.utils.extensions.showLatePledgeFlow
import com.kickstarter.libs.utils.extensions.timeInDaysOfDuration
import com.kickstarter.libs.utils.extensions.timeInSecondsUntilDeadline
import com.kickstarter.libs.utils.extensions.totalAmount
Expand Down Expand Up @@ -263,7 +264,7 @@ object AnalyticEventsUtils {
val rewards = a.filter { isReward(it) }
put("rewards_count", rewards.size)
}
put("state", project.state())
put("state", if (!project.showLatePledgeFlow()) project.state() else "post_campaign")
put("static_usd_rate", project.staticUsdRate())
project.updatesCount()?.let { put("updates_count", it) }
put("user_is_project_creator", project.userIsCreator(loggedInUser))
Expand All @@ -276,6 +277,7 @@ object AnalyticEventsUtils {
put("has_add_ons", hasAddOns?.hasAddons() ?: false)
put("tags", project.tags()?.let { it.joinToString(", ") } ?: "")
put("url", project.urls().web().project())
put("project_post_campaign_enabled", project.showLatePledgeFlow())
project.photo()?.full()?.let { put("image_url", it) }
}

Expand Down
47 changes: 47 additions & 0 deletions app/src/test/java/com/kickstarter/libs/SegmentTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -711,6 +711,53 @@ class SegmentTest : KSRobolectricTestCase() {
assertEquals(true, expectedProperties["project_has_add_ons"])
}

@Test
fun `testProjectProperties project_post_campaign_enabled=true and project_state=post_campaign when latePledges enabled`() {
val project = ProjectFactory.projectWithAddOns()
.toBuilder()
.isInPostCampaignPledgingPhase(true)
.postCampaignPledgingEnabled(true)
.build()

val client = client(null)
client.eventNames.subscribe(this.segmentTrack)
client.eventProperties.subscribe(this.propertiesTest)
val segment = AnalyticEvents(listOf(client))

segment.trackProjectScreenViewed(
ProjectDataFactory.project(project, RefTag.discovery(), RefTag.recommended()),
EventContextValues.ContextSectionName.OVERVIEW.contextName
)

val expectedProperties = this.propertiesTest.value
assertEquals(true, expectedProperties["project_project_post_campaign_enabled"])
assertEquals("post_campaign", expectedProperties["project_state"])
}

@Test
fun `testProjectProperties project_post_campaign_enabled=false and project_state=live when latePledges disabled`() {
val project = ProjectFactory.projectWithAddOns()
.toBuilder()
.state("live")
.isInPostCampaignPledgingPhase(false)
.postCampaignPledgingEnabled(true)
.build()

val client = client(null)
client.eventNames.subscribe(this.segmentTrack)
client.eventProperties.subscribe(this.propertiesTest)
val segment = AnalyticEvents(listOf(client))

segment.trackProjectScreenViewed(
ProjectDataFactory.project(project, RefTag.discovery(), RefTag.recommended()),
EventContextValues.ContextSectionName.OVERVIEW.contextName
)

val expectedProperties = this.propertiesTest.value
assertEquals(false, expectedProperties["project_project_post_campaign_enabled"])
assertEquals("live", expectedProperties["project_state"])
}

@Test
fun testProjectProperties_hasProject_prelaunch_activated() {
val project = ProjectFactory.projectWithAddOns()
Expand Down

0 comments on commit aed54b6

Please sign in to comment.