diff --git a/packages/core/RNSentryCocoaTester/RNSentryCocoaTesterTests/RNSentryReplayOptionsTests.swift b/packages/core/RNSentryCocoaTester/RNSentryCocoaTesterTests/RNSentryReplayOptionsTests.swift index 9e4e7894c4..3b8765547f 100644 --- a/packages/core/RNSentryCocoaTester/RNSentryCocoaTesterTests/RNSentryReplayOptionsTests.swift +++ b/packages/core/RNSentryCocoaTester/RNSentryCocoaTesterTests/RNSentryReplayOptionsTests.swift @@ -67,7 +67,11 @@ final class RNSentryReplayOptions: XCTestCase { ] as NSDictionary).mutableCopy() as! NSMutableDictionary RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.sessionSampleRate, 0.75) } @@ -78,7 +82,11 @@ final class RNSentryReplayOptions: XCTestCase { ] as NSDictionary).mutableCopy() as! NSMutableDictionary RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.onErrorSampleRate, 0.75) } @@ -108,7 +116,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.maskAllImages, true) assertContainsClass(classArray: actualOptions.sessionReplay.maskedViewClasses, stringClass: "RCTImageView") @@ -123,7 +135,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.maskAllImages, false) XCTAssertEqual(actualOptions.sessionReplay.maskedViewClasses.count, 0) @@ -138,7 +154,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.maskAllText, true) assertContainsClass(classArray: actualOptions.sessionReplay.maskedViewClasses, stringClass: "RCTTextView") @@ -162,7 +182,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.maskAllText, false) XCTAssertEqual(actualOptions.sessionReplay.maskedViewClasses.count, 0) @@ -176,7 +200,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertTrue(actualOptions.sessionReplay.enableViewRendererV2) } @@ -190,7 +218,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertTrue(actualOptions.sessionReplay.enableViewRendererV2) } @@ -204,7 +236,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertFalse(actualOptions.sessionReplay.enableViewRendererV2) } @@ -217,7 +253,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertFalse(actualOptions.sessionReplay.enableFastViewRendering) } @@ -231,7 +271,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertTrue(actualOptions.sessionReplay.enableFastViewRendering) } @@ -245,7 +289,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertFalse(actualOptions.sessionReplay.enableFastViewRendering) } @@ -258,7 +306,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.medium) } @@ -272,7 +324,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.low) } @@ -286,7 +342,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.medium) } @@ -300,7 +360,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.high) } @@ -314,7 +378,11 @@ final class RNSentryReplayOptions: XCTestCase { RNSentryReplay.updateOptions(optionsDict) + #if CROSS_PLATFORM_TEST + let actualOptions = try! SentryOptionsInternal.initWithDict(optionsDict as! [String: Any]) + #else let actualOptions = try! Options(dict: optionsDict as! [String: Any]) + #endif XCTAssertEqual(actualOptions.sessionReplay.quality, SentryReplayOptions.SentryReplayQuality.medium) } diff --git a/packages/core/ios/RNSentry.mm b/packages/core/ios/RNSentry.mm index 267c41c30c..b5fb68aa0d 100644 --- a/packages/core/ios/RNSentry.mm +++ b/packages/core/ios/RNSentry.mm @@ -24,7 +24,13 @@ #import #import #import -#import +#if __has_include() +# define USE_SENTRY_OPTIONS 1 +# import +#else +# define USE_SENTRY_OPTIONS 0 +# import +#endif #import // This guard prevents importing Hermes in JSC apps @@ -165,8 +171,13 @@ - (SentryOptions *_Nullable)createOptionsWithDictionary:(NSDictionary *_Nonnull) [RNSentryReplay updateOptions:mutableOptions]; #endif +#if USE_SENTRY_OPTIONS SentryOptions *sentryOptions = [[SentryOptions alloc] initWithDict:mutableOptions didFailWithError:errorPointer]; +#else + SentryOptions *sentryOptions = [SentryOptionsInternal initWithDict:mutableOptions + didFailWithError:errorPointer]; +#endif if (*errorPointer != nil) { return nil; }