From 82174be99068790d5acac9cc7c5e01e025c70aa1 Mon Sep 17 00:00:00 2001 From: Bruno Muniz Azevedo Filho <bruno@elixxir.io> Date: Fri, 26 Aug 2022 21:40:06 -0300 Subject: [PATCH] Add mock implementation of SendReport and ReportingStatus --- Sources/App/DependencyRegistrator.swift | 6 ++++-- Sources/ReportingFeature/ReportingStatus.swift | 13 +++++++++++++ Sources/ReportingFeature/SendReport.swift | 12 ++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/Sources/App/DependencyRegistrator.swift b/Sources/App/DependencyRegistrator.swift index cdb3495d..182ac2f5 100644 --- a/Sources/App/DependencyRegistrator.swift +++ b/Sources/App/DependencyRegistrator.swift @@ -57,6 +57,8 @@ struct DependencyRegistrator { container.register(XXLogger.noop) container.register(CrashReporter.noop) container.register(VersionChecker.mock) + container.register(ReportingStatus.mock()) + container.register(SendReport.mock()) container.register(XXNetwork<BindingsMock>() as XXNetworking) container.register(MockNetworkMonitor() as NetworkMonitoring) container.register(KeyObjectStore.userDefaults) @@ -81,6 +83,8 @@ struct DependencyRegistrator { container.register(XXLogger.live()) container.register(CrashReporter.live) container.register(VersionChecker.live()) + container.register(ReportingStatus.live()) + container.register(SendReport.live) container.register(XXNetwork<BindingsClient>() as XXNetworking) container.register(NetworkMonitor() as NetworkMonitoring) @@ -103,9 +107,7 @@ struct DependencyRegistrator { static private func registerCommonDependencies() { container.register(Voxophone()) container.register(BackupService()) - container.register(ReportingStatus.live()) container.register(MakeAppScreenshot.live) - container.register(SendReport.live) container.register(FetchBannedList.live) container.register(ProcessBannedList.live) container.register(MakeReportDrawer.live) diff --git a/Sources/ReportingFeature/ReportingStatus.swift b/Sources/ReportingFeature/ReportingStatus.swift index 2ed407a8..1bb72983 100644 --- a/Sources/ReportingFeature/ReportingStatus.swift +++ b/Sources/ReportingFeature/ReportingStatus.swift @@ -35,4 +35,17 @@ extension ReportingStatus { } ) } + + public static func mock( + isEnabled: Bool = false, + isOptional: Bool = true + ) -> ReportingStatus { + let isEnabledSubject = CurrentValueSubject<Bool, Never>(isEnabled) + return ReportingStatus( + isOptional: { isOptional }, + isEnabled: { isEnabledSubject.value }, + isEnabledPublisher: { isEnabledSubject.eraseToAnyPublisher() }, + enable: { isEnabledSubject.send($0) } + ) + } } diff --git a/Sources/ReportingFeature/SendReport.swift b/Sources/ReportingFeature/SendReport.swift index acc24a0c..4793d998 100644 --- a/Sources/ReportingFeature/SendReport.swift +++ b/Sources/ReportingFeature/SendReport.swift @@ -37,6 +37,18 @@ extension SendReport { } task.resume() } + + public static func mock( + result: Result<Void, Error> = .success(()) + ) -> SendReport { + SendReport { report, completion in + print("[SendReport.mock] Sending report: \(report)") + DispatchQueue.main.asyncAfter(deadline: .now() + 3) { + print("[SendReport.mock] Sending report finished") + completion(result) + } + } + } } extension SendReport { -- GitLab