Make AnalyticsService mockable via `AnalyticsServiceProtocol (#5599)

* Create AnalyticsServiceProtocol and conform AnalyticsService

* Replace AnalyticsService properties and arguments with AnalyticsServiceProtocol

* Inline AnalyticsServiceMock replacing old mock

* handle more complex AnalyticsServiceMock callsites

* move documentation from AnalyticsService to AnalyticsServiceProtocol
This commit is contained in:
Michael
2026-05-20 00:23:58 -05:00
committed by GitHub
parent 946cb53559
commit 5a07c98afc
118 changed files with 1218 additions and 505 deletions
@@ -13,7 +13,7 @@ import UIKit
class UITestsAppCoordinator: AppCoordinatorProtocol, SecureWindowManagerDelegate {
private let appSettings: AppSettings
private let analytics: AnalyticsService
private let analytics: AnalyticsServiceProtocol
private let userIndicatorController: UserIndicatorControllerProtocol
private let navigationRootCoordinator: NavigationRootCoordinator
@@ -42,7 +42,7 @@ class UITestsAppCoordinator: AppCoordinatorProtocol, SecureWindowManagerDelegate
let analyticsClient = AnalyticsClientMock()
analyticsClient.isRunning = false
analytics = .mock(analyticsClient, settings: appSettings)
analytics = AnalyticsServiceMock.default()
userIndicatorController = UserIndicatorController()
windowManager.delegate = self
@@ -115,7 +115,7 @@ class MockScreen: Identifiable {
let navigationRootCoordinator: NavigationRootCoordinator
private let appSettings: AppSettings
private let analytics: AnalyticsService
private let analytics: AnalyticsServiceProtocol
private let userIndicatorController: UserIndicatorControllerProtocol
private var client: UITestsSignalling.Client?
@@ -127,7 +127,7 @@ class MockScreen: Identifiable {
windowManager: SecureWindowManagerProtocol,
navigationRootCoordinator: NavigationRootCoordinator,
appSettings: AppSettings,
analytics: AnalyticsService,
analytics: AnalyticsServiceProtocol,
userIndicatorController: UserIndicatorControllerProtocol) {
self.id = id
self.windowManager = windowManager