Skip to content
Closed
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
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ import io.sentry.kotlin.multiplatform.SentryEvent
internal fun CocoaSentryEvent.applyKmpEvent(kmpEvent: SentryEvent): CocoaSentryEvent {
kmpEvent.level?.let { level = it.toCocoaSentryLevel() }
kmpEvent.platform?.let { platform = it }
message = kmpEvent.message?.toCocoaMessage()
logger = kmpEvent.logger
kmpEvent.release?.let { releaseName = it }
kmpEvent.message?.let { message = it.toCocoaMessage() }
kmpEvent.logger?.let { logger = it }
kmpEvent.environment?.let { environment = it }
kmpEvent.user?.let { user = it.toCocoaUser() }
kmpEvent.serverName?.let { serverName = it }
kmpEvent.dist?.let { dist = it }
fingerprint = kmpEvent.fingerprint
releaseName = kmpEvent.release
environment = kmpEvent.environment
user = kmpEvent.user?.toCocoaUser()
serverName = kmpEvent.serverName
dist = kmpEvent.dist
breadcrumbs = kmpEvent.breadcrumbs.map { it.toCocoaBreadcrumb() }.toMutableList()
tags = kmpEvent.tags.toMutableMap()
eventId = SentryId(kmpEvent.eventId.toString())
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package io.sentry.kotlin.multiplatform

import io.sentry.kotlin.multiplatform.extensions.applyKmpEvent
import kotlin.test.Test
import kotlin.test.assertEquals

class ApplyKmpEventTest {
@Test
fun `null kmp event values should not override the cocoa event values`() {
val initialUser = CocoaUser().apply { userId = "testUser" }
val initialMessage = CocoaMessage().apply { message = "testMessage" }
val cocoaEvent = CocoaSentryEvent().apply {
level = 1.toUInt()
platform = "cocoa"
releaseName = "1.0.0"
message = initialMessage
logger = "testLogger"
environment = "production"
user = initialUser
serverName = "testServer"
dist = "dist1"
}
val kmpEvent = SentryEvent() // All properties are null by default

val result = cocoaEvent.applyKmpEvent(kmpEvent)

assertEquals(1.toUInt(), result.level)
assertEquals("cocoa", result.platform)
assertEquals("1.0.0", result.releaseName)
assertEquals(initialMessage.message, result.message?.message)
assertEquals("testLogger", result.logger)
assertEquals("production", result.environment)
assertEquals(initialUser.userId, result.user?.userId)
assertEquals("testServer", result.serverName)
assertEquals("dist1", result.dist)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ import io.sentry.kotlin.multiplatform.JvmSentryId
import io.sentry.kotlin.multiplatform.SentryEvent

internal fun JvmSentryEvent.applyKmpEvent(kmpEvent: SentryEvent): JvmSentryEvent {
level = kmpEvent.level?.toJvmSentryLevel()
message = kmpEvent.message?.toJvmMessage()
logger = kmpEvent.logger
kmpEvent.level?.let { level = it.toJvmSentryLevel() }
kmpEvent.message?.let { message = it.toJvmMessage() }
kmpEvent.logger?.let { logger = it }
kmpEvent.release?.let { release = it }
kmpEvent.environment?.let { environment = it }
kmpEvent.platform?.let { platform = it }
kmpEvent.user?.let { user = it.toJvmUser() }
kmpEvent.serverName?.let { serverName = it }
kmpEvent.dist?.let { dist = it }
fingerprints = kmpEvent.fingerprint
release = kmpEvent.release
environment = kmpEvent.environment
platform = kmpEvent.platform
user = kmpEvent.user?.toJvmUser()
serverName = kmpEvent.serverName
dist = kmpEvent.dist
breadcrumbs = kmpEvent.breadcrumbs?.map { it.toJvmBreadcrumb() }
breadcrumbs = kmpEvent.breadcrumbs.map { it.toJvmBreadcrumb() }
eventId = JvmSentryId(kmpEvent.eventId.toString())
tags = kmpEvent.tags
return this
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package io.sentry.kotlin.multiplatform

import io.sentry.kotlin.multiplatform.extensions.applyKmpEvent
import kotlin.test.Test
import kotlin.test.assertEquals

class ApplyKmpEventTest {
@Test
fun `null kmp event values should not override the Jvm event values`() {
val initialUser = JvmUser().apply { id = "testUser" }
val initialMessage = JvmMessage().apply { message = "testMessage" }
val jvmEvent = JvmSentryEvent().apply {
level = JvmSentryLevel.FATAL
platform = "Jvm"
release = "1.0.0"
message = initialMessage
logger = "testLogger"
environment = "production"
user = initialUser
serverName = "testServer"
dist = "dist1"
}
val kmpEvent = SentryEvent() // All properties are null by default

val result = jvmEvent.applyKmpEvent(kmpEvent)

assertEquals(JvmSentryLevel.FATAL, result.level)
assertEquals("Jvm", result.platform)
assertEquals("1.0.0", result.release)
assertEquals(initialMessage.message, result.message?.message)
assertEquals("testLogger", result.logger)
assertEquals("production", result.environment)
assertEquals(initialUser.id, result.user?.id)
assertEquals("testServer", result.serverName)
assertEquals("dist1", result.dist)
}
}
Loading