Skip to content

Commit f6625b0

Browse files
authored
Add test to verify transactions from sentry-native are sent to relay (#4312)
1 parent 1e82a71 commit f6625b0

File tree

1 file changed

+31
-0
lines changed
  • sentry-android-integration-tests/sentry-uitest-android/src/androidTest/java/io/sentry/uitest/android

1 file changed

+31
-0
lines changed

sentry-android-integration-tests/sentry-uitest-android/src/androidTest/java/io/sentry/uitest/android/EnvelopeTests.kt

+31
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import io.sentry.protocol.SentryTransaction
2222
import org.junit.Assume
2323
import org.junit.Assume.assumeNotNull
2424
import org.junit.runner.RunWith
25+
import java.io.File
2526
import java.util.concurrent.TimeUnit
2627
import kotlin.test.Test
2728
import kotlin.test.assertEquals
@@ -229,6 +230,36 @@ class EnvelopeTests : BaseUiTest() {
229230
Thread.sleep(5000)
230231
}
231232

233+
@Test
234+
fun sendsNativeTransaction() {
235+
var optionsRef: SentryAndroidOptions? = null
236+
initSentry(true) { options ->
237+
options.tracesSampleRate = 1.0
238+
optionsRef = options
239+
}
240+
241+
// based on https://github.com/getsentry/sentry-native/blob/20d5d5f75f1f48228f2f47e2bb99b17f9996ebbf/ndk/lib/src/androidTest/java/io/sentry/ndk/SentryNdkTest.java#L131
242+
File(optionsRef!!.outboxPath, "14779dbf-b2f0-4c00-f4e5-4a287abc4267")
243+
.writeText(
244+
"""
245+
{"dsn":"https://key@sentry.io/proj","event_id":"729ff878-5539-458d-f657-a1acf423a127","sent_at":"2025-04-02T10:02:04.732577Z"}
246+
{"type":"transaction","length":1335}
247+
{"event_id":"729ff878-5539-458d-f657-a1acf423a127","platform":"native","transaction":"little.teapot","start_timestamp":"2025-04-02T10:02:04.731697Z","spans":[{"op":"littlest.teapot","span_id":"00028ba394454124","status":"ok","trace_id":"7160e289fe4c4496f02c72bbc7edb392","parent_span_id":"b0dc1649a8ec4101","description":null,"start_timestamp":"2025-04-02T10:02:04.732127Z","timestamp":"2025-04-02T10:02:04.732133Z"},{"op":"littler.teapot","span_id":"b0dc1649a8ec4101","status":"ok","trace_id":"7160e289fe4c4496f02c72bbc7edb392","parent_span_id":"7ad2e40529af4650","description":null,"start_timestamp":"2025-04-02T10:02:04.732118Z","data":{"span_data_says":"hi!"},"timestamp":"2025-04-02T10:02:04.732137Z"}],"type":"transaction","timestamp":"2025-04-02T10:02:04.732142Z","level":"info","contexts":{"trace":{"trace_id":"7160e289fe4c4496f02c72bbc7edb392","span_id":"7ad2e40529af4650","op":"Short and stout here is my handle and here is my spout","status":"ok","data":{"url":"https://example.com"}},"os":{"build":"android14-4-00257-g7e35917775b8-ab9964412","name":"Linux","version":"6.1.23"}},"release":"1.0.0","dist":"dist","environment":"production","sdk":{"name":"io.sentry.ndk","version":"0.8.3","packages":[{"name":"github:getsentry/sentry-native","version":"0.8.3"}],"integrations":["inproc"]},"tags":{},"extra":{},"breadcrumbs":[]}
248+
""".trimIndent()
249+
)
250+
251+
relayIdlingResource.increment()
252+
253+
relay.assert {
254+
assertFirstEnvelope {
255+
val event: SentryEvent = it.assertItem()
256+
it.assertNoOtherItems()
257+
assertEquals("little.teapot", event.transaction)
258+
}
259+
assertNoOtherEnvelopes()
260+
}
261+
}
262+
232263
private fun swipeList(times: Int) {
233264
repeat(times) {
234265
Thread.sleep(100)

0 commit comments

Comments
 (0)