Skip to content

Commit b5cc56d

Browse files
committed
Update dist impl as well
1 parent 5b7eb17 commit b5cc56d

File tree

3 files changed

+36
-6
lines changed

3 files changed

+36
-6
lines changed

sentry-kotlin-multiplatform/src/appleMain/kotlin/io/sentry/kotlin/multiplatform/extensions/SentryEventExtensions.apple.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@ import io.sentry.kotlin.multiplatform.CocoaSentryEvent
55
import io.sentry.kotlin.multiplatform.SentryEvent
66

77
internal fun CocoaSentryEvent.applyKmpEvent(kmpEvent: SentryEvent): CocoaSentryEvent {
8-
// Native SDKs may have a default behaviour if no release is set.
9-
// Setting a release (even if it's null) will remove this behaviour,
8+
// Native SDKs may have a default behaviour if no release/dist is set.
9+
// Setting a release/dist (even if it's null) will remove this behaviour,
1010
// so we have to check if the values differ first before setting.
1111
if (releaseName != kmpEvent.release) {
1212
releaseName = kmpEvent.release
1313
}
14+
if (dist != kmpEvent.dist) {
15+
dist = kmpEvent.dist
16+
}
1417
kmpEvent.level?.let { level = it.toCocoaSentryLevel() }
1518
kmpEvent.platform?.let { platform = it }
1619
message = kmpEvent.message?.toCocoaMessage()

sentry-kotlin-multiplatform/src/appleTest/kotlin/io/sentry/kotlin/multiplatform/ApplyKmpEventTest.kt

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,46 @@ import kotlin.test.assertFalse
77
class ApplyKmpEventTest {
88
@Test
99
fun `native release is not set if kmp release has same value`() {
10-
val nativeEvent = FakeSentryEvent()
11-
val kmpEvent = SentryEvent()
10+
val nativeEvent = FakeSentryEvent().apply {
11+
releaseName = "1.0.0"
12+
}
13+
val kmpEvent = SentryEvent().apply {
14+
release = "1.0.0"
15+
}
1216

1317
nativeEvent.applyKmpEvent(kmpEvent)
1418

1519
assertFalse(nativeEvent.wasReleaseSet)
1620
}
21+
22+
@Test
23+
fun `native dist is not set if kmp dist has same value`() {
24+
val nativeEvent = FakeSentryEvent().apply {
25+
dist = "randomDist"
26+
}
27+
val kmpEvent = SentryEvent().apply {
28+
dist = "randomDist"
29+
}
30+
31+
nativeEvent.applyKmpEvent(kmpEvent)
32+
33+
assertFalse(nativeEvent.wasDistSet)
34+
}
1735
}
1836

1937
// init with a SentryLevel as a workaround for:
2038
// Unable to call non-designated initializer as super constructor
2139
private class FakeSentryEvent : CocoaSentryEvent(Internal.Sentry.kSentryLevelFatal) {
2240
var wasReleaseSet = false
41+
var wasDistSet = false
2342

2443
override fun setReleaseName(releaseName: String?) {
2544
super.setReleaseName(releaseName)
2645
wasReleaseSet = true
2746
}
47+
48+
override fun setDist(dist: String?) {
49+
super.setDist(dist)
50+
wasDistSet = true
51+
}
2852
}

sentry-kotlin-multiplatform/src/commonJvmMain/kotlin/io/sentry/kotlin/multiplatform/extensions/SentryEventExtensions.jvm.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ import io.sentry.kotlin.multiplatform.SentryEvent
66

77
// TODO(buenaflor): properly test this once we introduce a mocking framework
88
internal fun JvmSentryEvent.applyKmpEvent(kmpEvent: SentryEvent): JvmSentryEvent {
9-
// Native SDKs may have a default behaviour if no release is set.
10-
// Setting a release (even if it's null) will remove this behaviour,
9+
// Native SDKs may have a default behaviour if no release/dist is set.
10+
// Setting a release/dist (even if it's null) will remove this behaviour,
1111
// so we have to check if the values differ first before setting.
1212
if (release != kmpEvent.release) {
1313
release = kmpEvent.release
1414
}
15+
if (dist != kmpEvent.dist) {
16+
dist = kmpEvent.dist
17+
}
1518
level = kmpEvent.level?.toJvmSentryLevel()
1619
message = kmpEvent.message?.toJvmMessage()
1720
logger = kmpEvent.logger

0 commit comments

Comments
 (0)