Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions LaunchDarkly/LaunchDarkly/Models/DiagnosticEvent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -124,20 +124,20 @@ struct DiagnosticConfig: Codable {
customEventsURI = config.eventsUrl != LDConfig.Defaults.eventsUrl
customStreamURI = config.streamUrl != LDConfig.Defaults.streamUrl
eventsCapacity = config.eventCapacity
connectTimeoutMillis = Int(round(config.connectionTimeout * 1_000))
eventsFlushIntervalMillis = Int(round(config.eventFlushInterval * 1_000))
connectTimeoutMillis = Int(exactly: round(config.connectionTimeout * 1_000)) ?? .max
eventsFlushIntervalMillis = Int(exactly: round(config.eventFlushInterval * 1_000)) ?? .max
streamingDisabled = config.streamingMode == .polling
allAttributesPrivate = config.allUserAttributesPrivate
pollingIntervalMillis = Int(round(config.flagPollingInterval * 1_000))
backgroundPollingIntervalMillis = Int(round(config.backgroundFlagPollingInterval * 1_000))
pollingIntervalMillis = Int(exactly: round(config.flagPollingInterval * 1_000)) ?? .max
backgroundPollingIntervalMillis = Int(exactly: round(config.backgroundFlagPollingInterval * 1_000)) ?? .max
inlineUsersInEvents = config.inlineUserInEvents
useReport = config.useReport
backgroundPollingDisabled = !config.enableBackgroundUpdates
evaluationReasonsRequested = config.evaluationReasons
// While the SDK treats all negative values as unlimited, for consistency we only send -1 for diagnostics
maxCachedUsers = config.maxCachedUsers >= 0 ? config.maxCachedUsers : -1
mobileKeyCount = 1 + (config.getSecondaryMobileKeys().count)
diagnosticRecordingIntervalMillis = Int(round(config.diagnosticRecordingInterval * 1_000))
diagnosticRecordingIntervalMillis = Int(exactly: round(config.diagnosticRecordingInterval * 1_000)) ?? .max
customHeaders = !config.additionalHeaders.isEmpty || config.headerDelegate != nil
}
}
16 changes: 16 additions & 0 deletions LaunchDarkly/LaunchDarklyTests/Models/DiagnosticEventSpec.swift
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,22 @@ final class DiagnosticEventSpec: QuickSpec {
expect(diagnosticConfig.customHeaders) == false
}
}
context("init with overflowing config values") {
it("has expected values") {
var overflowingConfig = customConfig
overflowingConfig.backgroundFlagPollingInterval = .greatestFiniteMagnitude
overflowingConfig.connectionTimeout = .greatestFiniteMagnitude
overflowingConfig.diagnosticRecordingInterval = .greatestFiniteMagnitude
overflowingConfig.eventFlushInterval = .greatestFiniteMagnitude
overflowingConfig.flagPollingInterval = .greatestFiniteMagnitude
let diagnosticConfig = DiagnosticConfig(config: overflowingConfig)
expect(diagnosticConfig.backgroundPollingIntervalMillis) == Int.max
expect(diagnosticConfig.connectTimeoutMillis) == Int.max
expect(diagnosticConfig.diagnosticRecordingIntervalMillis) == Int.max
expect(diagnosticConfig.eventsFlushIntervalMillis) == Int.max
expect(diagnosticConfig.pollingIntervalMillis) == Int.max
}
}
var diagnosticConfig: DiagnosticConfig!
for (name, config) in [("default", defaultConfig), ("custom", customConfig)] {
context("with \(name) config") {
Expand Down