-
-
Notifications
You must be signed in to change notification settings - Fork 372
Closed as not planned
Labels
Description
Description
We have lots of test methods that test each option's default value in isolation:

but we also have a big method that asserts all the default values at
sentry-cocoa/Tests/SentryTests/SentryOptionsTest.m
Lines 571 to 647 in 42ef6ba
| - (void)assertDefaultValues:(SentryOptions *)options | |
| { | |
| XCTAssertEqual(YES, options.enabled); | |
| XCTAssertEqual(2.0, options.shutdownTimeInterval); | |
| XCTAssertEqual(NO, options.debug); | |
| XCTAssertEqual(kSentryLevelDebug, options.diagnosticLevel); | |
| XCTAssertEqual(options.environment, kSentryDefaultEnvironment); | |
| XCTAssertNil(options.dist); | |
| XCTAssertEqual(defaultMaxBreadcrumbs, options.maxBreadcrumbs); | |
| XCTAssertTrue(options.enableNetworkBreadcrumbs); | |
| XCTAssertEqual(30, options.maxCacheItems); | |
| XCTAssertTrue([[self getDefaultCacheDirectoryPath] isEqualToString:options.cacheDirectoryPath]); | |
| XCTAssertNil(options.beforeSend); | |
| XCTAssertNil(options.beforeBreadcrumb); | |
| XCTAssertNil(options.onCrashedLastRun); | |
| XCTAssertTrue([[SentryOptions defaultIntegrations] isEqualToArray:options.integrations], | |
| @"Default integrations are not set correctly"); | |
| XCTAssertEqual(@1, options.sampleRate); | |
| XCTAssertEqual(YES, options.enableAutoSessionTracking); | |
| XCTAssertEqual(YES, options.enableWatchdogTerminationTracking); | |
| XCTAssertEqual([@30000 unsignedIntValue], options.sessionTrackingIntervalMillis); | |
| XCTAssertEqual(YES, options.attachStacktrace); | |
| XCTAssertEqual(20 * 1024 * 1024, options.maxAttachmentSize); | |
| XCTAssertEqual(NO, options.sendDefaultPii); | |
| XCTAssertTrue(options.enableAutoPerformanceTracing); | |
| #if SENTRY_HAS_UIKIT | |
| XCTAssertTrue(options.enableUIViewControllerTracing); | |
| XCTAssertFalse(options.attachScreenshot); | |
| XCTAssertEqual(3.0, options.idleTimeout); | |
| XCTAssertEqual(options.enableUserInteractionTracing, YES); | |
| XCTAssertEqual(options.enablePreWarmedAppStartTracing, NO); | |
| XCTAssertEqual(options.attachViewHierarchy, NO); | |
| #endif | |
| XCTAssertFalse(options.enableTracing); | |
| XCTAssertTrue(options.enableAppHangTracking); | |
| XCTAssertEqual(options.appHangTimeoutInterval, 2); | |
| XCTAssertEqual(YES, options.enableNetworkTracking); | |
| XCTAssertNil(options.tracesSampleRate); | |
| XCTAssertNil(options.tracesSampler); | |
| XCTAssertEqualObjects([self getDefaultInAppIncludes], options.inAppIncludes); | |
| XCTAssertEqual(@[], options.inAppExcludes); | |
| XCTAssertNil(options.urlSessionDelegate); | |
| XCTAssertEqual(YES, options.enableSwizzling); | |
| XCTAssertEqual(YES, options.enableFileIOTracing); | |
| XCTAssertEqual(YES, options.enableAutoBreadcrumbTracking); | |
| XCTAssertFalse(options.swiftAsyncStacktraces); | |
| #if SENTRY_HAS_METRIC_KIT | |
| if (@available(iOS 15.0, macOS 12.0, macCatalyst 15.0, *)) { | |
| XCTAssertEqual(NO, options.enableMetricKit); | |
| } | |
| #endif | |
| NSRegularExpression *regexTrace = options.tracePropagationTargets[0]; | |
| XCTAssertTrue([regexTrace.pattern isEqualToString:@".*"]); | |
| NSRegularExpression *regexRequests = options.failedRequestTargets[0]; | |
| XCTAssertTrue([regexRequests.pattern isEqualToString:@".*"]); | |
| XCTAssertEqual(YES, options.enableCaptureFailedRequests); | |
| SentryHttpStatusCodeRange *range = options.failedRequestStatusCodes[0]; | |
| XCTAssertEqual(500, range.min); | |
| XCTAssertEqual(599, range.max); | |
| XCTAssertFalse(options.enableTimeToFullDisplayTracing); | |
| #if SENTRY_TARGET_PROFILING_SUPPORTED | |
| # pragma clang diagnostic push | |
| # pragma clang diagnostic ignored "-Wdeprecated-declarations" | |
| XCTAssertEqual(NO, options.enableProfiling); | |
| # pragma clang diagnostic pop | |
| XCTAssertNil(options.profilesSampleRate); | |
| XCTAssertNil(options.profilesSampler); | |
| #endif | |
| } |
Each of the individual methods instantiates a SentryOptions like so: SentryOptions *options = [self getValidOptions:@{}];, but we could just create one and call assertDefaultValues on it.
philipphofmann
Metadata
Metadata
Assignees
Labels
Projects
Status
Backlog