From 086b1fab6ddd665ef10fc96f20aaa6d845e9a932 Mon Sep 17 00:00:00 2001 From: Jamie Lynch Date: Mon, 13 May 2024 14:53:08 +0100 Subject: [PATCH] refactor: remove app state from internal errors --- .../config/detekt/baseline.xml | 2 +- .../android/embracesdk/EmbraceImpl.java | 6 ++-- .../embracesdk/injection/InitModule.kt | 13 +++++++++ .../injection/ModuleInitBootstrapper.kt | 28 +++++-------------- .../embracesdk/injection/PayloadModule.kt | 3 +- .../injection/SdkObservabilityModule.kt | 25 ----------------- .../embracesdk/injection/SessionModule.kt | 3 +- .../internal/payload/ExceptionErrorInfo.kt | 24 +--------------- .../embracesdk/internal/utils/Types.kt | 12 -------- .../logging/EmbraceInternalErrorService.kt | 21 -------------- .../payload/LegacyExceptionError.kt | 4 +-- .../payload/LegacyExceptionErrorInfo.kt | 20 +++---------- .../LegacyLegacyExceptionErrorInfoTest.kt | 6 +--- .../session/SessionPayloadSourceImplTest.kt | 2 +- .../injection/FakeSdkObservabilityModule.kt | 14 ---------- .../injection/PayloadModuleImplTest.kt | 2 -- .../SdkObservabilityModuleImplTest.kt | 17 ----------- .../internal/payload/MapInternalErrorTest.kt | 3 -- .../EmbraceInternalErrorServiceTest.kt | 6 +--- .../payload/LegacyExceptionErrorTest.kt | 2 +- .../embracesdk/session/SessionHandlerTest.kt | 4 +-- .../session/SessionModuleImplTest.kt | 3 -- .../exception_error_info_expected.json | 1 - 23 files changed, 36 insertions(+), 185 deletions(-) delete mode 100644 embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SdkObservabilityModule.kt delete mode 100644 embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/injection/FakeSdkObservabilityModule.kt delete mode 100644 embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/injection/SdkObservabilityModuleImplTest.kt diff --git a/embrace-android-sdk/config/detekt/baseline.xml b/embrace-android-sdk/config/detekt/baseline.xml index a6174ec1d2..f4ba2c8a59 100644 --- a/embrace-android-sdk/config/detekt/baseline.xml +++ b/embrace-android-sdk/config/detekt/baseline.xml @@ -2,7 +2,7 @@ - DataClassContainsFunctions:LegacyExceptionError.kt$LegacyExceptionError$fun addException(ex: Throwable?, appState: String?, clock: Clock) + DataClassContainsFunctions:LegacyExceptionError.kt$LegacyExceptionError$fun addException(ex: Throwable?, clock: Clock) DataClassContainsFunctions:LegacyExceptionError.kt$LegacyExceptionError$private fun getExceptionInfo(ex: Throwable?): List<LegacyExceptionInfo> DataClassShouldBeImmutable:LegacyExceptionError.kt$LegacyExceptionError$@Json(name = "c") var occurrences: Int = 0 DataClassShouldBeImmutable:LegacyExceptionError.kt$LegacyExceptionError$@Json(name = "rep") var exceptionErrors: MutableList<LegacyExceptionErrorInfo> = mutableListOf() diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/EmbraceImpl.java b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/EmbraceImpl.java index 39a4aae18b..07e5a4de2b 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/EmbraceImpl.java +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/EmbraceImpl.java @@ -36,7 +36,6 @@ import io.embrace.android.embracesdk.injection.DeliveryModule; import io.embrace.android.embracesdk.injection.EssentialServiceModule; import io.embrace.android.embracesdk.injection.ModuleInitBootstrapper; -import io.embrace.android.embracesdk.injection.SdkObservabilityModule; import io.embrace.android.embracesdk.injection.SessionModule; import io.embrace.android.embracesdk.internal.ApkToolsConfig; import io.embrace.android.embracesdk.internal.EmbraceInternalInterface; @@ -304,9 +303,8 @@ private void startImpl(@NonNull Context context, final AnrModule anrModule = moduleInitBootstrapper.getAnrModule(); anrService = anrModule.getAnrService(); - final SdkObservabilityModule sdkObservabilityModule = moduleInitBootstrapper.getSdkObservabilityModule(); - internalErrorService = sdkObservabilityModule.getInternalErrorService(); - sdkObservabilityModule.getInternalErrorService().setConfigService(configService); + internalErrorService = moduleInitBootstrapper.getInitModule().getInternalErrorService(); + internalErrorService.setConfigService(configService); final DeliveryModule deliveryModule = moduleInitBootstrapper.getDeliveryModule(); diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/InitModule.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/InitModule.kt index ced81ea3ea..74ab1c8d85 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/InitModule.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/InitModule.kt @@ -7,6 +7,8 @@ import io.embrace.android.embracesdk.internal.clock.NormalizedIntervalClock import io.embrace.android.embracesdk.internal.clock.SystemClock import io.embrace.android.embracesdk.logging.EmbLogger import io.embrace.android.embracesdk.logging.EmbLoggerImpl +import io.embrace.android.embracesdk.logging.EmbraceInternalErrorService +import io.embrace.android.embracesdk.logging.InternalErrorService import io.embrace.android.embracesdk.telemetry.EmbraceTelemetryService import io.embrace.android.embracesdk.telemetry.TelemetryService @@ -45,6 +47,11 @@ internal interface InitModule { * this out by proximity for stitched sessions. */ val processIdentifier: String + + /** + * Tracks internal errors + */ + val internalErrorService: InternalErrorService } internal class InitModuleImpl( @@ -55,6 +62,12 @@ internal class InitModuleImpl( override val systemInfo: SystemInfo = SystemInfo() ) : InitModule { + override val internalErrorService: InternalErrorService = EmbraceInternalErrorService(clock) + + init { + logger.internalErrorService = internalErrorService + } + override val telemetryService: TelemetryService by singleton { EmbraceTelemetryService( systemInfo = systemInfo diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/ModuleInitBootstrapper.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/ModuleInitBootstrapper.kt index 2ac3dbc0ff..59082861fd 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/ModuleInitBootstrapper.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/ModuleInitBootstrapper.kt @@ -20,7 +20,6 @@ import io.embrace.android.embracesdk.internal.utils.EssentialServiceModuleSuppli import io.embrace.android.embracesdk.internal.utils.NativeModuleSupplier import io.embrace.android.embracesdk.internal.utils.PayloadModuleSupplier import io.embrace.android.embracesdk.internal.utils.Provider -import io.embrace.android.embracesdk.internal.utils.SdkObservabilityModuleSupplier import io.embrace.android.embracesdk.internal.utils.SessionModuleSupplier import io.embrace.android.embracesdk.internal.utils.StorageModuleSupplier import io.embrace.android.embracesdk.internal.utils.SystemServiceModuleSupplier @@ -59,7 +58,6 @@ internal class ModuleInitBootstrapper( private val dataCaptureServiceModuleSupplier: DataCaptureServiceModuleSupplier = ::DataCaptureServiceModuleImpl, private val deliveryModuleSupplier: DeliveryModuleSupplier = ::DeliveryModuleImpl, private val anrModuleSupplier: AnrModuleSupplier = ::AnrModuleImpl, - private val sdkObservabilityModuleSupplier: SdkObservabilityModuleSupplier = ::SdkObservabilityModuleImpl, private val customerLogModuleSupplier: CustomerLogModuleSupplier = ::CustomerLogModuleImpl, private val nativeModuleSupplier: NativeModuleSupplier = ::NativeModuleImpl, private val dataContainerModuleSupplier: DataContainerModuleSupplier = ::DataContainerModuleImpl, @@ -94,9 +92,6 @@ internal class ModuleInitBootstrapper( lateinit var anrModule: AnrModule private set - lateinit var sdkObservabilityModule: SdkObservabilityModule - private set - lateinit var customerLogModule: CustomerLogModule private set @@ -147,6 +142,11 @@ internal class ModuleInitBootstrapper( synchronized(asyncInitTask) { return if (!isInitialized()) { coreModule = init(CoreModule::class) { coreModuleSupplier(context, appFramework, logger) } + + val serviceRegistry = coreModule.serviceRegistry + postInit(InitModule::class) { + serviceRegistry.registerService(initModule.internalErrorService) + } workerThreadModule = init(WorkerThreadModule::class) { workerThreadModuleSupplier(initModule) } val initTask = postInit(OpenTelemetryModule::class) { @@ -157,8 +157,6 @@ internal class ModuleInitBootstrapper( asyncInitCompletionMs = initModule.clock.now() } } - - val serviceRegistry = coreModule.serviceRegistry postInit(OpenTelemetryModule::class) { serviceRegistry.registerService(initModule.telemetryService) serviceRegistry.registerService(openTelemetryModule.spanService) @@ -194,6 +192,7 @@ internal class ModuleInitBootstrapper( ) } postInit(EssentialServiceModule::class) { + initModule.internalErrorService.configService = essentialServiceModule.configService serviceRegistry.registerServices( essentialServiceModule.processStateService, essentialServiceModule.metadataService, @@ -277,17 +276,6 @@ internal class ModuleInitBootstrapper( ) } - // initialize the logger early so that logged exceptions have a good chance of - // being appended to the exceptions service rather than logcat - sdkObservabilityModule = init(SdkObservabilityModule::class) { - sdkObservabilityModuleSupplier(initModule, essentialServiceModule) - } - - postInit(SdkObservabilityModule::class) { - serviceRegistry.registerService(sdkObservabilityModule.internalErrorService) - initModule.logger.internalErrorService = sdkObservabilityModule.internalErrorService - } - nativeModule = init(NativeModule::class) { nativeModuleSupplier( initModule, @@ -357,8 +345,7 @@ internal class ModuleInitBootstrapper( systemServiceModule, workerThreadModule, nativeModule, - openTelemetryModule, - sdkObservabilityModule + openTelemetryModule ) { sessionModule.sessionPropertiesService } } @@ -413,7 +400,6 @@ internal class ModuleInitBootstrapper( deliveryModule, dataCaptureServiceModule, customerLogModule, - sdkObservabilityModule, workerThreadModule, dataSourceModule, payloadModule, diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/PayloadModule.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/PayloadModule.kt index 6cdd5bb003..13bab30051 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/PayloadModule.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/PayloadModule.kt @@ -33,7 +33,6 @@ internal class PayloadModuleImpl( workerThreadModule: WorkerThreadModule, nativeModule: NativeModule, otelModule: OpenTelemetryModule, - sdkObservabilityModule: SdkObservabilityModule, sessionPropertiesServiceProvider: Provider, ) : PayloadModule { @@ -66,7 +65,7 @@ internal class PayloadModuleImpl( private val sessionPayloadSource by singleton { SessionPayloadSourceImpl( - sdkObservabilityModule.internalErrorService, + initModule.internalErrorService, nativeModule.nativeThreadSamplerService, otelModule.spanSink, otelModule.currentSessionSpan, diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SdkObservabilityModule.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SdkObservabilityModule.kt deleted file mode 100644 index 484cfc2db4..0000000000 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SdkObservabilityModule.kt +++ /dev/null @@ -1,25 +0,0 @@ -package io.embrace.android.embracesdk.injection - -import io.embrace.android.embracesdk.logging.EmbraceInternalErrorService -import io.embrace.android.embracesdk.logging.InternalErrorService - -/** - * Contains dependencies that are used to gain internal observability into how the SDK - * is performing. - */ -internal interface SdkObservabilityModule { - val internalErrorService: InternalErrorService -} - -internal class SdkObservabilityModuleImpl( - initModule: InitModule, - essentialServiceModule: EssentialServiceModule -) : SdkObservabilityModule { - - override val internalErrorService: InternalErrorService by singleton { - EmbraceInternalErrorService( - essentialServiceModule.processStateService, - initModule.clock - ) - } -} diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SessionModule.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SessionModule.kt index f8e8295e71..f1684bd580 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SessionModule.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/injection/SessionModule.kt @@ -37,7 +37,6 @@ internal class SessionModuleImpl( deliveryModule: DeliveryModule, dataCaptureServiceModule: DataCaptureServiceModule, customerLogModule: CustomerLogModule, - sdkObservabilityModule: SdkObservabilityModule, workerThreadModule: WorkerThreadModule, dataSourceModule: DataSourceModule, payloadModule: PayloadModule, @@ -50,7 +49,7 @@ internal class SessionModuleImpl( essentialServiceModule.metadataService, dataContainerModule.eventService, customerLogModule.logMessageService, - sdkObservabilityModule.internalErrorService, + initModule.internalErrorService, dataContainerModule.performanceInfoService, dataCaptureServiceModule.webviewService, nativeModule.nativeThreadSamplerService, diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/payload/ExceptionErrorInfo.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/payload/ExceptionErrorInfo.kt index 99412a2e0a..e69a2947c3 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/payload/ExceptionErrorInfo.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/payload/ExceptionErrorInfo.kt @@ -4,10 +4,7 @@ import com.squareup.moshi.Json import com.squareup.moshi.JsonClass /** - * - * * @param timestamp The timestamp in milliseconds of when an error happened. Previous name: s.e.rep.ts - * @param appState The app state at the time of the error (foreground/background). Previous name: s.e.rep.s * @param exceptions A list of exceptions. Previous name: s.e.rep.ex */ @JsonClass(generateAdapter = true) @@ -17,26 +14,7 @@ internal data class ExceptionErrorInfo( @Json(name = "timestamp") val timestamp: Long? = null, - /* The app state at the time of the error (foreground/background). Previous name: s.e.rep.s */ - @Json(name = "app_state") - val appState: AppState? = null, - /* A list of exceptions. Previous name: s.e.rep.ex */ @Json(name = "exceptions") val exceptions: List? = null - -) { - - /** - * The app state at the time of the error (foreground/background). Previous name: s.e.rep.s - * - * Values: FOREGROUND, BACKGROUND - */ - internal enum class AppState(val value: String) { - @Json(name = "foreground") - FOREGROUND("foreground"), - - @Json(name = "background") - BACKGROUND("background") - } -} +) diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/utils/Types.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/utils/Types.kt index 2b74db3d9b..c2ef0fe630 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/utils/Types.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/internal/utils/Types.kt @@ -16,7 +16,6 @@ import io.embrace.android.embracesdk.injection.EssentialServiceModule import io.embrace.android.embracesdk.injection.InitModule import io.embrace.android.embracesdk.injection.OpenTelemetryModule import io.embrace.android.embracesdk.injection.PayloadModule -import io.embrace.android.embracesdk.injection.SdkObservabilityModule import io.embrace.android.embracesdk.injection.SessionModule import io.embrace.android.embracesdk.injection.StorageModule import io.embrace.android.embracesdk.injection.SystemServiceModule @@ -129,15 +128,6 @@ internal typealias AnrModuleSupplier = ( otelModule: OpenTelemetryModule ) -> AnrModule -/** - * Function that returns an instance of [SdkObservabilityModule]. Matches the signature of the constructor for [SdkObservabilityModuleImpl] - */ - -internal typealias SdkObservabilityModuleSupplier = ( - initModule: InitModule, - essentialServiceModule: EssentialServiceModule -) -> SdkObservabilityModule - /** * Function that returns an instance of [CustomerLogModule]. Matches the signature of the constructor for [CustomerLogModuleImpl] */ @@ -207,7 +197,6 @@ internal typealias SessionModuleSupplier = ( deliveryModule: DeliveryModule, dataCaptureServiceModule: DataCaptureServiceModule, customerLogModule: CustomerLogModule, - sdkObservabilityModule: SdkObservabilityModule, workerThreadModule: WorkerThreadModule, dataSourceModule: DataSourceModule, payloadModule: PayloadModule, @@ -244,7 +233,6 @@ internal typealias PayloadModuleSupplier = ( workerThreadModule: WorkerThreadModule, nativeModule: NativeModule, otelModule: OpenTelemetryModule, - sdkObservabilityModule: SdkObservabilityModule, sessionPropertiesServiceProvider: Provider, ) -> PayloadModule diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/logging/EmbraceInternalErrorService.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/logging/EmbraceInternalErrorService.kt index 0e49d31bed..d4060568a8 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/logging/EmbraceInternalErrorService.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/logging/EmbraceInternalErrorService.kt @@ -3,13 +3,11 @@ package io.embrace.android.embracesdk.logging import io.embrace.android.embracesdk.config.ConfigService import io.embrace.android.embracesdk.internal.clock.Clock import io.embrace.android.embracesdk.payload.LegacyExceptionError -import io.embrace.android.embracesdk.session.lifecycle.ProcessStateService /** * Intercepts Embrace SDK's exceptions errors and forwards them to the Embrace API. */ internal class EmbraceInternalErrorService( - private val processStateService: ProcessStateService, private val clock: Clock ) : InternalErrorService { @@ -20,7 +18,6 @@ internal class EmbraceInternalErrorService( if (configService == null || configService?.dataCaptureEventBehavior?.isInternalExceptionCaptureEnabled() == true) { err.addException( throwable, - getApplicationState(), clock ) } @@ -36,22 +33,4 @@ internal class EmbraceInternalErrorService( override fun cleanCollections() { err = LegacyExceptionError() } - - private fun getApplicationState(): String = when { - processStateService.isInBackground -> APPLICATION_STATE_BACKGROUND - else -> APPLICATION_STATE_FOREGROUND - } - - companion object { - - /** - * Signals to the API that the application was in the foreground. - */ - private const val APPLICATION_STATE_FOREGROUND = "foreground" - - /** - * Signals to the API that the application was in the background. - */ - private const val APPLICATION_STATE_BACKGROUND = "background" - } } diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/payload/LegacyExceptionError.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/payload/LegacyExceptionError.kt index a4e77ec7ca..6dc47112bc 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/payload/LegacyExceptionError.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/payload/LegacyExceptionError.kt @@ -23,15 +23,13 @@ internal data class LegacyExceptionError( * For each exceptions, occurrences is incremented by 1. * * @param ex the exception error. - * @param appState (foreground or background). */ - fun addException(ex: Throwable?, appState: String?, clock: Clock) { + fun addException(ex: Throwable?, clock: Clock) { occurrences++ if (exceptionErrors.size < DEFAULT_EXCEPTION_ERROR_LIMIT) { exceptionErrors.add( LegacyExceptionErrorInfo( clock.now(), - appState, getExceptionInfo(ex) ) ) diff --git a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/payload/LegacyExceptionErrorInfo.kt b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/payload/LegacyExceptionErrorInfo.kt index 131e7efb77..37125eb8b2 100644 --- a/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/payload/LegacyExceptionErrorInfo.kt +++ b/embrace-android-sdk/src/main/java/io/embrace/android/embracesdk/payload/LegacyExceptionErrorInfo.kt @@ -16,26 +16,14 @@ internal data class LegacyExceptionErrorInfo( */ @Json(name = "ts") val timestamp: Long? = null, - /** - * App state (foreground or background). - */ - @Json(name = "s") val state: String? = null, - /** * A list of exceptions. */ @Json(name = "ex") val exceptions: List? = null ) { - fun toNewPayload(): ExceptionErrorInfo { - val mappedState = when (state) { - "background" -> ExceptionErrorInfo.AppState.BACKGROUND - else -> ExceptionErrorInfo.AppState.FOREGROUND - } - return ExceptionErrorInfo( - timestamp, - mappedState, - exceptions?.map(LegacyExceptionInfo::toNewPayload) - ) - } + fun toNewPayload(): ExceptionErrorInfo = ExceptionErrorInfo( + timestamp, + exceptions?.map(LegacyExceptionInfo::toNewPayload) + ) } diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/LegacyLegacyExceptionErrorInfoTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/LegacyLegacyExceptionErrorInfoTest.kt index 7cd17dd07b..d00b665389 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/LegacyLegacyExceptionErrorInfoTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/LegacyLegacyExceptionErrorInfoTest.kt @@ -20,10 +20,7 @@ internal class LegacyLegacyExceptionErrorInfoTest { fun testExceptionErrorInfoSerialization() { val exceptionErrorInfo = LegacyExceptionErrorInfo( 0, - "STATE", - listOf( - info, - ) + listOf(info) ) assertJsonMatchesGoldenFile("exception_error_info_expected.json", exceptionErrorInfo) } @@ -32,7 +29,6 @@ internal class LegacyLegacyExceptionErrorInfoTest { fun testExceptionErrorInfoDeserialization() { val obj = deserializeJsonFromResource("exception_error_info_expected.json") assertEquals(0L, obj.timestamp) - assertEquals("STATE", obj.state) val exceptionInfo = obj.exceptions?.get(0) assertEquals(info.message, exceptionInfo?.message) assertEquals(info.name, exceptionInfo?.name) diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/capture/envelope/session/SessionPayloadSourceImplTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/capture/envelope/session/SessionPayloadSourceImplTest.kt index a6ad6250fb..10bb274d26 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/capture/envelope/session/SessionPayloadSourceImplTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/capture/envelope/session/SessionPayloadSourceImplTest.kt @@ -31,7 +31,7 @@ internal class SessionPayloadSourceImplTest { fun setUp() { val errorService = FakeInternalErrorService().apply { data = LegacyExceptionError().apply { - addException(RuntimeException(), "test", FakeClock()) + addException(RuntimeException(), FakeClock()) } } sink = SpanSinkImpl().apply { diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/injection/FakeSdkObservabilityModule.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/injection/FakeSdkObservabilityModule.kt deleted file mode 100644 index 7b3dead861..0000000000 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/fakes/injection/FakeSdkObservabilityModule.kt +++ /dev/null @@ -1,14 +0,0 @@ -package io.embrace.android.embracesdk.fakes.injection - -import io.embrace.android.embracesdk.fakes.FakeClock -import io.embrace.android.embracesdk.fakes.FakeProcessStateService -import io.embrace.android.embracesdk.injection.SdkObservabilityModule -import io.embrace.android.embracesdk.logging.EmbraceInternalErrorService -import io.embrace.android.embracesdk.logging.InternalErrorService - -internal class FakeSdkObservabilityModule( - override val internalErrorService: InternalErrorService = EmbraceInternalErrorService( - FakeProcessStateService(), - FakeClock() - ) -) : SdkObservabilityModule diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/injection/PayloadModuleImplTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/injection/PayloadModuleImplTest.kt index 124a1a00e0..5c674c269b 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/injection/PayloadModuleImplTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/injection/PayloadModuleImplTest.kt @@ -6,7 +6,6 @@ import io.embrace.android.embracesdk.fakes.injection.FakeAndroidServicesModule import io.embrace.android.embracesdk.fakes.injection.FakeCoreModule import io.embrace.android.embracesdk.fakes.injection.FakeEssentialServiceModule import io.embrace.android.embracesdk.fakes.injection.FakeNativeModule -import io.embrace.android.embracesdk.fakes.injection.FakeSdkObservabilityModule import io.embrace.android.embracesdk.fakes.injection.FakeSystemServiceModule import io.embrace.android.embracesdk.worker.WorkerThreadModuleImpl import org.junit.Assert.assertNotNull @@ -27,7 +26,6 @@ internal class PayloadModuleImplTest { WorkerThreadModuleImpl(initModule), FakeNativeModule(), FakeOpenTelemetryModule(), - FakeSdkObservabilityModule(), ) { FakeSessionPropertiesService() } assertNotNull(module.sessionEnvelopeSource) assertNotNull(module.logEnvelopeSource) diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/injection/SdkObservabilityModuleImplTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/injection/SdkObservabilityModuleImplTest.kt deleted file mode 100644 index ba9d3091cb..0000000000 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/injection/SdkObservabilityModuleImplTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package io.embrace.android.embracesdk.injection - -import io.embrace.android.embracesdk.fakes.injection.FakeEssentialServiceModule -import org.junit.Assert.assertNotNull -import org.junit.Test - -internal class SdkObservabilityModuleImplTest { - - @Test - fun testDefaultImplementations() { - val module = SdkObservabilityModuleImpl( - InitModuleImpl(), - FakeEssentialServiceModule() - ) - assertNotNull(module.internalErrorService) - } -} diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/internal/payload/MapInternalErrorTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/internal/payload/MapInternalErrorTest.kt index c7255a18e0..2786417795 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/internal/payload/MapInternalErrorTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/internal/payload/MapInternalErrorTest.kt @@ -1,6 +1,5 @@ package io.embrace.android.embracesdk.internal.payload -import io.embrace.android.embracesdk.internal.payload.ExceptionErrorInfo.AppState import io.embrace.android.embracesdk.payload.LegacyExceptionError import io.embrace.android.embracesdk.payload.LegacyExceptionErrorInfo import io.embrace.android.embracesdk.payload.LegacyExceptionInfo @@ -16,7 +15,6 @@ internal class MapInternalErrorTest { input.exceptionErrors.add( LegacyExceptionErrorInfo( timestamp = 0, - state = "foreground", exceptions = listOf( LegacyExceptionInfo( name = "name", @@ -33,7 +31,6 @@ internal class MapInternalErrorTest { val error = checkNotNull(output.errors).single() assertEquals(0L, error.timestamp) - assertEquals(AppState.FOREGROUND, error.appState) val exception = checkNotNull(error.exceptions).single() assertEquals("name", exception.name) diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/logging/EmbraceInternalErrorServiceTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/logging/EmbraceInternalErrorServiceTest.kt index 61ae78f2d5..8211e48bc9 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/logging/EmbraceInternalErrorServiceTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/logging/EmbraceInternalErrorServiceTest.kt @@ -22,7 +22,7 @@ internal class EmbraceInternalErrorServiceTest { @Before fun setUp() { activityService = FakeProcessStateService() - service = EmbraceInternalErrorService(activityService, clock) + service = EmbraceInternalErrorService(clock) cfg = RemoteConfig() cfgService = FakeConfigService(dataCaptureEventBehavior = fakeDataCaptureEventBehavior { cfg }) @@ -37,7 +37,6 @@ internal class EmbraceInternalErrorServiceTest { val error = checkNotNull(service.getCapturedData()) assertEquals(1, error.occurrences) with(error.exceptionErrors.single()) { - assertEquals("foreground", state) assertEquals(clock.now(), timestamp) // verify exc object @@ -82,9 +81,6 @@ internal class EmbraceInternalErrorServiceTest { val error = checkNotNull(service.getCapturedData()) assertEquals(1, error.occurrences) - - val info = error.exceptionErrors.single() - assertEquals("background", info.state) } @Test diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/payload/LegacyExceptionErrorTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/payload/LegacyExceptionErrorTest.kt index 40e1e4e5f5..8c5d227586 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/payload/LegacyExceptionErrorTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/payload/LegacyExceptionErrorTest.kt @@ -41,7 +41,7 @@ internal class LegacyExceptionErrorTest { exceptionError = LegacyExceptionError() val max = 10 repeat(max + 1) { - exceptionError.addException(Throwable("exceptions"), "state", clock) + exceptionError.addException(Throwable("exceptions"), clock) } assertEquals(exceptionError.exceptionErrors.size, max) diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionHandlerTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionHandlerTest.kt index 9f397fd08b..5935ae0dce 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionHandlerTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionHandlerTest.kt @@ -28,7 +28,6 @@ import io.embrace.android.embracesdk.fakes.FakeMemoryCleanerService import io.embrace.android.embracesdk.fakes.FakeMetadataService import io.embrace.android.embracesdk.fakes.FakePerformanceInfoService import io.embrace.android.embracesdk.fakes.FakePreferenceService -import io.embrace.android.embracesdk.fakes.FakeProcessStateService import io.embrace.android.embracesdk.fakes.FakeSessionIdTracker import io.embrace.android.embracesdk.fakes.FakeSessionPayloadSource import io.embrace.android.embracesdk.fakes.FakeStartupService @@ -73,8 +72,7 @@ internal class SessionHandlerTest { private val eventService: EventService = FakeEventService() private val logMessageService: LogMessageService = FakeLogMessageService() private val clock = FakeClock() - private val internalErrorService = - EmbraceInternalErrorService(FakeProcessStateService(), clock) + private val internalErrorService = EmbraceInternalErrorService(clock) private const val now = 123L private var sessionNumber = 5 private val sessionProperties: EmbraceSessionProperties = mockk(relaxed = true) diff --git a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionModuleImplTest.kt b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionModuleImplTest.kt index 2c0ed68e39..1644e92df3 100644 --- a/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionModuleImplTest.kt +++ b/embrace-android-sdk/src/test/java/io/embrace/android/embracesdk/session/SessionModuleImplTest.kt @@ -13,7 +13,6 @@ import io.embrace.android.embracesdk.fakes.injection.FakeDeliveryModule import io.embrace.android.embracesdk.fakes.injection.FakeEssentialServiceModule import io.embrace.android.embracesdk.fakes.injection.FakeInitModule import io.embrace.android.embracesdk.fakes.injection.FakeNativeModule -import io.embrace.android.embracesdk.fakes.injection.FakeSdkObservabilityModule import io.embrace.android.embracesdk.fakes.injection.FakeSystemServiceModule import io.embrace.android.embracesdk.fakes.injection.FakeWorkerThreadModule import io.embrace.android.embracesdk.injection.DataSourceModuleImpl @@ -59,7 +58,6 @@ internal class SessionModuleImplTest { FakeDeliveryModule(), FakeDataCaptureServiceModule(), FakeCustomerLogModule(), - FakeSdkObservabilityModule(), workerThreadModule, dataSourceModule, FakePayloadModule(), @@ -99,7 +97,6 @@ internal class SessionModuleImplTest { FakeDeliveryModule(), FakeDataCaptureServiceModule(), FakeCustomerLogModule(), - FakeSdkObservabilityModule(), workerThreadModule, dataSourceModule, FakePayloadModule(), diff --git a/embrace-android-sdk/src/test/resources/exception_error_info_expected.json b/embrace-android-sdk/src/test/resources/exception_error_info_expected.json index 1832d92505..34c8fa0d3f 100644 --- a/embrace-android-sdk/src/test/resources/exception_error_info_expected.json +++ b/embrace-android-sdk/src/test/resources/exception_error_info_expected.json @@ -1,6 +1,5 @@ { "ts": 0, - "s": "STATE", "ex": [ { "tt": [