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
@@ -21,16 +21,12 @@ final class HomeScreenViewModelTests {
var roomSummaryProvider: RoomSummaryProviderMock!
var notificationManager: NotificationManagerMock!
private let appSettings: AppSettings
private let analytics: AnalyticsService
private let userIndicatorController: UserIndicatorControllerProtocol
var cancellables = Set<AnyCancellable>()
init() {
AppSettings.resetAllSettings()
appSettings = AppSettings()
analytics = .mock(settings: appSettings)
userIndicatorController = UserIndicatorControllerMock.default
}
deinit {
@@ -444,9 +440,9 @@ final class HomeScreenViewModelTests {
viewModel = HomeScreenViewModel(userSession: userSession,
selectedRoomPublisher: CurrentValueSubject<String?, Never>(nil).asCurrentValuePublisher(),
appSettings: appSettings,
analyticsService: analytics,
analyticsService: AnalyticsServiceMock.default(),
notificationManager: notificationManager,
userIndicatorController: userIndicatorController)
userIndicatorController: UserIndicatorControllerMock.default)
}
}