Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSD - Today's Stats Card - Metrics #15965

Merged
merged 11 commits into from
Feb 18, 2022
Prev Previous commit
Next Next commit
Tests: Refactor to generalise verify functions to accept different ca…
…rd sub types
ashiagr committed Feb 16, 2022

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit ef0a45e9ac06b0c7aea4972488ce6c534177519f
Original file line number Diff line number Diff line change
@@ -30,61 +30,61 @@ class CardsTrackerTest {
fun `when post create first footer link is clicked, then post create first event is tracked`() {
cardsTracker.trackPostCardFooterLinkClicked(PostCardType.CREATE_FIRST)

verifyFooterLinkClickedTracked(Type.POST, PostSubtype.CREATE_FIRST)
verifyFooterLinkClickedTracked(Type.POST, PostSubtype.CREATE_FIRST.label)
}

@Test
fun `when post create next footer link is clicked, then post create next event is tracked`() {
cardsTracker.trackPostCardFooterLinkClicked(PostCardType.CREATE_NEXT)

verifyFooterLinkClickedTracked(Type.POST, PostSubtype.CREATE_NEXT)
verifyFooterLinkClickedTracked(Type.POST, PostSubtype.CREATE_NEXT.label)
}

@Test
fun `when post draft footer link is clicked, then post draft event is tracked`() {
cardsTracker.trackPostCardFooterLinkClicked(PostCardType.DRAFT)

verifyFooterLinkClickedTracked(Type.POST, PostSubtype.DRAFT)
verifyFooterLinkClickedTracked(Type.POST, PostSubtype.DRAFT.label)
}

@Test
fun `when post scheduled footer link is clicked, then post scheduled event is tracked`() {
cardsTracker.trackPostCardFooterLinkClicked(PostCardType.SCHEDULED)

verifyFooterLinkClickedTracked(Type.POST, PostSubtype.SCHEDULED)
verifyFooterLinkClickedTracked(Type.POST, PostSubtype.SCHEDULED.label)
}

@Test
fun `when post draft item is clicked, then post item event is tracked`() {
cardsTracker.trackPostItemClicked(PostCardType.DRAFT)

verifyPostItemClickedTracked(Type.POST, PostSubtype.DRAFT)
verifyCardItemClickedTracked(Type.POST, PostSubtype.DRAFT.label)
}

@Test
fun `when post scheduled item is clicked, then post item event is tracked`() {
cardsTracker.trackPostItemClicked(PostCardType.SCHEDULED)

verifyPostItemClickedTracked(Type.POST, PostSubtype.SCHEDULED)
verifyCardItemClickedTracked(Type.POST, PostSubtype.SCHEDULED.label)
}

private fun verifyFooterLinkClickedTracked(
typeValue: Type,
subtypeValue: PostSubtype
subtypeValue: String
) {
verify(analyticsTracker).track(
Stat.MY_SITE_DASHBOARD_CARD_FOOTER_ACTION_TAPPED,
mapOf(TYPE to typeValue.label, SUBTYPE to subtypeValue.label)
mapOf(TYPE to typeValue.label, SUBTYPE to subtypeValue)
)
}

private fun verifyPostItemClickedTracked(
private fun verifyCardItemClickedTracked(
typeValue: Type,
subtypeValue: PostSubtype
subtypeValue: String
) {
verify(analyticsTracker).track(
Stat.MY_SITE_DASHBOARD_CARD_ITEM_TAPPED,
mapOf(TYPE to typeValue.label, SUBTYPE to subtypeValue.label)
mapOf(TYPE to typeValue.label, SUBTYPE to subtypeValue)
)
}
}