Skip to content

Commit

Permalink
Fix unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanmos committed Feb 4, 2024
1 parent 928dba4 commit d8749e0
Show file tree
Hide file tree
Showing 10 changed files with 93 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,11 @@ internal class DatadogSDKWrapper : DatadogWrapper {
var rumForLogsState = RUM_ENABLE_LOGS_DEFAULT
var traceForLogsState = TRACES_ENABLE_LOGS_DEFAULT

override fun setRumForLogsEnabled(enabled: Boolean) {
internal fun setRumForLogsEnabled(enabled: Boolean) {
this.rumForLogsState = enabled
}

override fun setTracesForLogsEnabled(enabled: Boolean) {
internal fun setTracesForLogsEnabled(enabled: Boolean) {
this.traceForLogsState = enabled
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,14 +141,4 @@ interface DatadogWrapper {
* Clears all data that has not already been sent to Datadog servers.
*/
fun clearAllData()

/**
* Enable Rum for Logs
*/
fun setRumForLogsEnabled(enabled: Boolean)

/**
* Enable Traces for Logs
*/
fun setTracesForLogsEnabled(enabled: Boolean)
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ import com.datadog.android.rum.tracking.ActivityViewTrackingStrategy
import com.datadog.android.telemetry.model.TelemetryConfigurationEvent
import com.datadog.android.trace.TraceConfiguration
import com.datadog.android.trace.TracingHeaderType
import com.datadog.reactnative.DatadogSDKWrapper.Companion.RUM_ENABLE_LOGS_DEFAULT
import com.datadog.reactnative.DatadogSDKWrapper.Companion.TRACES_ENABLE_LOGS_DEFAULT
import com.facebook.react.bridge.Promise
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.ReadableArray
Expand Down Expand Up @@ -171,15 +173,16 @@ class DdSdkImplementation(
}

private fun configureRumAndTracesForLogs(configuration: DdSdkConfiguration) {
val rumForLogsEnabled = configuration.additionalConfig?.get(DD_RUM_ENABLE_LOGS) as? Boolean
val tracesForLogsEnabled = configuration.additionalConfig?.get(DD_TRACES_ENABLE_LOGS) as? Boolean

if (rumForLogsEnabled != null) {
datadog.setRumForLogsEnabled(rumForLogsEnabled)
}

if (tracesForLogsEnabled != null) {
datadog.setTracesForLogsEnabled(tracesForLogsEnabled)
val rumForLogsEnabled =
configuration.additionalConfig?.get(DD_RUM_ENABLE_LOGS) as? Boolean
?: RUM_ENABLE_LOGS_DEFAULT
val tracesForLogsEnabled =
configuration.additionalConfig?.get(DD_TRACES_ENABLE_LOGS) as? Boolean
?: TRACES_ENABLE_LOGS_DEFAULT

(datadog as? DatadogSDKWrapper)?.apply {
this.setRumForLogsEnabled(rumForLogsEnabled)
this.setTracesForLogsEnabled(tracesForLogsEnabled)
}
}

Expand Down Expand Up @@ -411,7 +414,7 @@ class DdSdkImplementation(
Log.w(
DdSdk::class.java.canonicalName,
"Unknown consent given: $trackingConsent, " +
"using ${TrackingConsent.PENDING} as default"
"using ${TrackingConsent.PENDING} as default"
)
TrackingConsent.PENDING
}
Expand Down Expand Up @@ -529,7 +532,7 @@ class DdSdkImplementation(
): ((Double) -> Unit)? {
val jsRefreshRateMonitoringEnabled =
buildVitalUpdateFrequency(ddSdkConfiguration.vitalsUpdateFrequency) !=
VitalsUpdateFrequency.NEVER
VitalsUpdateFrequency.NEVER
val jsLongTasksMonitoringEnabled = ddSdkConfiguration.longTaskThresholdMs != 0.0

if (!jsLongTasksMonitoringEnabled && !jsRefreshRateMonitoringEnabled) {
Expand All @@ -545,8 +548,8 @@ class DdSdkImplementation(
if (jsLongTasksMonitoringEnabled &&
it >
TimeUnit.MILLISECONDS.toNanos(
ddSdkConfiguration.longTaskThresholdMs?.toLong() ?: 0L
)
ddSdkConfiguration.longTaskThresholdMs?.toLong() ?: 0L
)
) {
datadog.getRumMonitor()._getInternal()?.addLongTask(it.toLong(), "javascript")
}
Expand Down
5 changes: 3 additions & 2 deletions packages/core/src/DdSdkReactNative.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@ export class DdSdkReactNative {
private static readonly DD_VERSION = '_dd.version';
private static readonly DD_VERSION_SUFFIX = '_dd.version_suffix';
private static readonly DD_ENABLE_RUM_FOR_LOGS = '_dd.enable_rum_for_logs';
private static readonly DD_ENABLE_TRACES_FOR_LOGS = '_dd.enable_traces_for_logs';
private static readonly DD_ENABLE_TRACES_FOR_LOGS =
'_dd.enable_traces_for_logs';

// Proxy
private static readonly DD_PROXY_TYPE_KEY = '_dd.proxy.type';
Expand Down Expand Up @@ -137,7 +138,7 @@ export class DdSdkReactNative {
reactVersion: require('react/package.json').version
},
configuration.enableRumForLogs,
configuration.enableTracesForLogs,
configuration.enableTracesForLogs
)
);
InternalLog.log('Datadog SDK was initialized', SdkVerbosity.INFO);
Expand Down
8 changes: 3 additions & 5 deletions packages/core/src/DdSdkReactNativeConfiguration.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ const DEFAULTS = {
trackBackgroundEvents: false,
getCustomEndpoints: () => ({}),
enableRumForLogs: true,
enableTracesForLogs: true,
enableTracesForLogs: true
};

/**
Expand Down Expand Up @@ -254,14 +254,12 @@ export class DdSdkReactNativeConfiguration {

/**
* Enables RUM for logs.
*
* By default, RUM is enabled for logs.
*/
public enableRumForLogs: boolean = DEFAULTS.enableRumForLogs;
public enableRumForLogs: boolean = DEFAULTS.enableRumForLogs;

/**
/**
* Enables Traces for logs.
*
* By default, Traces is enabled for logs.
*/
public enableTracesForLogs: boolean = DEFAULTS.enableTracesForLogs;
Expand Down
74 changes: 52 additions & 22 deletions packages/core/src/__tests__/DdSdkReactNative.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,9 @@ describe('DdSdkReactNative', () => {
'_dd.sdk_version': sdkVersion,
'_dd.native_view_tracking': false,
'_dd.native_interaction_tracking': false,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
});

Expand Down Expand Up @@ -148,7 +150,9 @@ describe('DdSdkReactNative', () => {
'_dd.sdk_version': sdkVersion,
'_dd.native_view_tracking': false,
'_dd.native_interaction_tracking': false,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});

expect(DdSdkReactNative['wasInitialized']).toBe(false);
Expand Down Expand Up @@ -193,7 +197,9 @@ describe('DdSdkReactNative', () => {
'_dd.sdk_version': sdkVersion,
'_dd.native_view_tracking': false,
'_dd.native_interaction_tracking': false,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
});

Expand Down Expand Up @@ -228,7 +234,9 @@ describe('DdSdkReactNative', () => {
'_dd.sdk_version': sdkVersion,
'_dd.native_view_tracking': false,
'_dd.native_interaction_tracking': false,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
});

Expand Down Expand Up @@ -285,7 +293,9 @@ describe('DdSdkReactNative', () => {
'_dd.proxy.type': proxyType,
'_dd.proxy.address': proxyAddress,
'_dd.proxy.port': proxyPort,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
expect(spyConsoleWarn).toHaveBeenCalledTimes(1);
} finally {
Expand Down Expand Up @@ -372,16 +382,16 @@ describe('DdSdkReactNative', () => {
fakeAppId
);
configuration.enableRumForLogs = true;

// WHEN
await DdSdkReactNative.initialize(configuration);

// THEN
const ddSdkConfiguration = NativeModules.DdSdk.initialize.mock
.calls[0][0] as DdSdkConfiguration;
expect(ddSdkConfiguration.additionalConfig['_dd.enable_rum_for_logs']).toBe(
true
);
expect(
ddSdkConfiguration.additionalConfig['_dd.enable_rum_for_logs']
).toBe(true);
});

it('initializes with enableTracesForLogs when it is specified', async () => {
Expand All @@ -395,16 +405,18 @@ describe('DdSdkReactNative', () => {
fakeAppId
);
configuration.enableTracesForLogs = true;

// WHEN
await DdSdkReactNative.initialize(configuration);

// THEN
const ddSdkConfiguration = NativeModules.DdSdk.initialize.mock
.calls[0][0] as DdSdkConfiguration;
expect(ddSdkConfiguration.additionalConfig['_dd.enable_traces_for_logs']).toBe(
true
);
expect(
ddSdkConfiguration.additionalConfig[
'_dd.enable_traces_for_logs'
]
).toBe(true);
});

it('initializes with the version when a version is specified', async () => {
Expand Down Expand Up @@ -514,7 +526,9 @@ describe('DdSdkReactNative', () => {
'_dd.sdk_version': sdkVersion,
'_dd.native_view_tracking': false,
'_dd.native_interaction_tracking': false,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
expect(
DdRumUserInteractionTracking.startTracking
Expand Down Expand Up @@ -568,7 +582,9 @@ describe('DdSdkReactNative', () => {
match: 'something.fr',
propagatorTypes: ['datadog']
}
]
],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
expect(DdRumResourceTracking.startTracking).toHaveBeenCalledTimes(
1
Expand Down Expand Up @@ -620,7 +636,9 @@ describe('DdSdkReactNative', () => {
'_dd.sdk_version': sdkVersion,
'_dd.native_view_tracking': false,
'_dd.native_interaction_tracking': false,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
expect(DdRumErrorTracking.startTracking).toHaveBeenCalledTimes(1);
});
Expand Down Expand Up @@ -822,7 +840,9 @@ describe('DdSdkReactNative', () => {
'_dd.service_name': fakeServiceName,
'_dd.native_view_tracking': false,
'_dd.native_interaction_tracking': false,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
expect(DdRumErrorTracking.startTracking).toHaveBeenCalledTimes(1);
});
Expand Down Expand Up @@ -860,7 +880,9 @@ describe('DdSdkReactNative', () => {
'_dd.sdk_verbosity': SdkVerbosity.DEBUG,
'_dd.native_view_tracking': false,
'_dd.native_interaction_tracking': false,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
expect(DdRumErrorTracking.startTracking).toHaveBeenCalledTimes(1);
});
Expand Down Expand Up @@ -897,7 +919,9 @@ describe('DdSdkReactNative', () => {
'_dd.sdk_version': sdkVersion,
'_dd.native_view_tracking': true,
'_dd.native_interaction_tracking': false,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
expect(DdRumErrorTracking.startTracking).toHaveBeenCalledTimes(1);
});
Expand Down Expand Up @@ -934,7 +958,9 @@ describe('DdSdkReactNative', () => {
'_dd.sdk_version': sdkVersion,
'_dd.native_view_tracking': false,
'_dd.native_interaction_tracking': true,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
expect(DdRumErrorTracking.startTracking).toHaveBeenCalledTimes(1);
});
Expand Down Expand Up @@ -1139,7 +1165,9 @@ describe('DdSdkReactNative', () => {
'_dd.proxy.type': proxyType,
'_dd.proxy.address': proxyAddress,
'_dd.proxy.port': proxyPort,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
});
}
Expand Down Expand Up @@ -1200,7 +1228,9 @@ describe('DdSdkReactNative', () => {
'_dd.proxy.port': proxyPort,
'_dd.proxy.username': proxyUsername,
'_dd.proxy.password': proxyPassword,
'_dd.first_party_hosts': []
'_dd.first_party_hosts': [],
'_dd.enable_rum_for_logs': true,
'_dd.enable_traces_for_logs': true
});
});
}
Expand Down
17 changes: 10 additions & 7 deletions packages/core/src/__tests__/DdSdkReactNativeConfiguration.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ describe('DdSdkReactNativeConfiguration', () => {
"batchSize": "MEDIUM",
"clientToken": "fake-client-token",
"customEndpoints": {},
"enableRumForLogs": true,
"enableTracesForLogs": true,
"env": "fake-env",
"errorEventMapper": null,
"firstPartyHosts": [],
Expand All @@ -62,8 +64,6 @@ describe('DdSdkReactNativeConfiguration', () => {
"uploadFrequency": "AVERAGE",
"verbosity": undefined,
"vitalsUpdateFrequency": "AVERAGE",
"enableRumForLogs": false,
"enableTracesForLogs": false,
}
`);
});
Expand Down Expand Up @@ -97,12 +97,11 @@ describe('DdSdkReactNativeConfiguration', () => {
'api.com',
443
),

serviceName: 'com.test.app',
version: '1.4.5',
versionSuffix: 'codepush-3',
additionalConfig: {
additionalField: 'fake-value',
additionalConfig: {
additionalField: 'fake-value'
},
trackingConsent: TrackingConsent.PENDING,
nativeCrashReportEnabled: true,
Expand All @@ -118,7 +117,7 @@ describe('DdSdkReactNativeConfiguration', () => {
trace: 'https://trace.example.com/'
},
enableRumForLogs: true,
enableTracesForLogs: true,
enableTracesForLogs: true
}
)
).toMatchInlineSnapshot(`
Expand Down Expand Up @@ -203,7 +202,9 @@ describe('DdSdkReactNativeConfiguration', () => {
longTaskThresholdMs: false,
trackFrustrations: false,
trackBackgroundEvents: false,
customEndpoints: {}
customEndpoints: {},
enableRumForLogs: false,
enableTracesForLogs: false
}
)
).toMatchInlineSnapshot(`
Expand All @@ -214,6 +215,8 @@ describe('DdSdkReactNativeConfiguration', () => {
"batchSize": "MEDIUM",
"clientToken": "",
"customEndpoints": {},
"enableRumForLogs": false,
"enableTracesForLogs": false,
"env": "",
"errorEventMapper": null,
"firstPartyHosts": [],
Expand Down
Loading

0 comments on commit d8749e0

Please sign in to comment.