Skip to content

Commit 04f07cf

Browse files
committed
Decouple Analytics Hub analytics event from StoreStatsAndTopPerformersPeriod VC
1 parent e0dfc82 commit 04f07cf

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

WooCommerce/Classes/ViewRelated/Dashboard/Stats v4/StoreStatsAndTopPerformersPeriodViewController.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ private extension StoreStatsAndTopPerformersPeriodViewController {
358358
}
359359

360360
@objc func seeMoreButtonTapped() {
361-
ServiceLocator.analytics.track(event: .AnalyticsHub.seeMoreAnalyticsTapped())
361+
viewModel.trackSeeMoreButtonTapped()
362362
let analyticsHubVC = AnalyticsHubHostingViewController(siteID: siteID, timeRange: timeRange, usageTracksEventEmitter: usageTracksEventEmitter)
363363
show(analyticsHubVC, sender: self)
364364
}

WooCommerce/Classes/ViewRelated/Dashboard/Stats v4/StoreStatsAndTopPerformersPeriodViewModel.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,14 @@ final class StoreStatsAndTopPerformersPeriodViewModel {
6161
storesManager.dispatch(action)
6262
}
6363

64+
/// Tracks when the Analytics "See More" button is tapped
65+
///
66+
func trackSeeMoreButtonTapped() {
67+
analytics.track(event: .AnalyticsHub.seeMoreAnalyticsTapped())
68+
}
69+
70+
// MARK: Private helpers
71+
6472
/// Calculates and updates the value of `isInAppFeedbackCardVisible`.
6573
private func refreshIsInAppFeedbackCardVisibleValue() {
6674
// Abort right away if we don't need to calculate the real value.

WooCommerce/WooCommerceTests/ViewRelated/Dashboard/Stats V4/StoreStatsAndTopPerformersPeriodViewModelTests.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,17 @@ final class StoreStatsAndTopPerformersPeriodViewModelTests: XCTestCase {
204204
// Then
205205
XCTAssertEqual([false, true, false], emittedValues)
206206
}
207+
208+
func test_trackSeeMoreButtonTapped_tracks_expected_event() {
209+
// Given
210+
let viewModel = makeViewModel()
211+
212+
// When
213+
viewModel.trackSeeMoreButtonTapped()
214+
215+
// Then
216+
assertEqual(["dashboard_see_more_analytics_tapped"], analyticsProvider.receivedEvents)
217+
}
207218
}
208219

209220
private extension StoreStatsAndTopPerformersPeriodViewModelTests {

0 commit comments

Comments
 (0)