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
@@ -32,7 +32,7 @@ struct ManageRoomMemberSheetViewModelTests {
permissions: .init(canKick: true, canBan: true, ownPowerLevel: RoomMemberProxyMock.mockAdmin.powerLevel),
roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock(),
analyticsService: .mock(),
analyticsService: AnalyticsServiceMock.default(),
mediaProvider: MediaProviderMock(configuration: .init()))
let deferred = deferFulfillment(context.observe(\.viewState.bindings.alertInfo)) { $0 != nil }
@@ -64,7 +64,7 @@ struct ManageRoomMemberSheetViewModelTests {
permissions: .init(canKick: true, canBan: true, ownPowerLevel: RoomMemberProxyMock.mockAdmin.powerLevel),
roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock(),
analyticsService: .mock(),
analyticsService: AnalyticsServiceMock.default(),
mediaProvider: MediaProviderMock(configuration: .init()))
let deferred = deferFulfillment(context.observe(\.viewState.bindings.alertInfo)) { $0 != nil }
@@ -87,7 +87,7 @@ struct ManageRoomMemberSheetViewModelTests {
permissions: .init(canKick: true, canBan: true, ownPowerLevel: RoomMemberProxyMock.mockAdmin.powerLevel),
roomProxy: roomProxy,
userIndicatorController: UserIndicatorControllerMock(),
analyticsService: .mock(),
analyticsService: AnalyticsServiceMock.default(),
mediaProvider: MediaProviderMock(configuration: .init()))
let deferredAction = deferFulfillment(viewModel.actions) { action in