@@ -22,6 +22,7 @@ import io.sentry.spring.jakarta.tracing.SentryTracingConfiguration
2222import io.sentry.spring.jakarta.tracing.SentryTracingFilter
2323import io.sentry.spring.jakarta.tracing.SentryTransaction
2424import io.sentry.transport.ITransport
25+ import java.time.Duration
2526import java.util.concurrent.Callable
2627import java.util.concurrent.TimeUnit
2728import kotlin.test.BeforeTest
@@ -114,17 +115,19 @@ class SentrySpringIntegrationTest {
114115
115116 restTemplate.exchange(" http://localhost:$port /hello" , HttpMethod .GET , entity, Void ::class .java)
116117
117- verify(transport)
118- .send(
119- checkEvent { event ->
120- assertThat(event.request).isNotNull()
121- assertThat(event.request!! .url).isEqualTo(" http://localhost:$port /hello" )
122- assertThat(event.user).isNotNull()
123- assertThat(event.user!! .username).isEqualTo(" user" )
124- assertThat(event.user!! .ipAddress).isEqualTo(" 169.128.0.1" )
125- },
126- anyOrNull(),
127- )
118+ await.untilAsserted {
119+ verify(transport)
120+ .send(
121+ checkEvent { event ->
122+ assertThat(event.request).isNotNull()
123+ assertThat(event.request!! .url).isEqualTo(" http://localhost:$port /hello" )
124+ assertThat(event.user).isNotNull()
125+ assertThat(event.user!! .username).isEqualTo(" user" )
126+ assertThat(event.user!! .ipAddress).isEqualTo(" 169.128.0.1" )
127+ },
128+ anyOrNull(),
129+ )
130+ }
128131 }
129132
130133 @Test
@@ -139,14 +142,16 @@ class SentrySpringIntegrationTest {
139142 Void ::class .java,
140143 )
141144
142- verify(transport)
143- .send(
144- checkEvent { event ->
145- assertThat(event.request).isNotNull()
146- assertThat(event.request!! .data).isEqualTo(""" {"body":"content"}""" )
147- },
148- anyOrNull(),
149- )
145+ await.untilAsserted {
146+ verify(transport)
147+ .send(
148+ checkEvent { event ->
149+ assertThat(event.request).isNotNull()
150+ assertThat(event.request!! .data).isEqualTo(""" {"body":"content"}""" )
151+ },
152+ anyOrNull(),
153+ )
154+ }
150155 }
151156
152157 @Test
@@ -161,14 +166,16 @@ class SentrySpringIntegrationTest {
161166 Void ::class .java,
162167 )
163168
164- verify(transport)
165- .send(
166- checkEvent { event ->
167- assertThat(event.request).isNotNull()
168- assertThat(event.request!! .data).isEqualTo(""" {"body":"content"}""" )
169- },
170- anyOrNull(),
171- )
169+ await.untilAsserted {
170+ verify(transport)
171+ .send(
172+ checkEvent { event ->
173+ assertThat(event.request).isNotNull()
174+ assertThat(event.request!! .data).isEqualTo(""" {"body":"content"}""" )
175+ },
176+ anyOrNull(),
177+ )
178+ }
172179 }
173180
174181 @Test
@@ -180,14 +187,16 @@ class SentrySpringIntegrationTest {
180187
181188 restTemplate.exchange(" http://localhost:$port /hello" , HttpMethod .GET , entity, Void ::class .java)
182189
183- verify(transport)
184- .send(
185- checkEvent { event ->
186- assertThat(event.user).isNotNull()
187- assertThat(event.user!! .ipAddress).isEqualTo(" 169.128.0.1" )
188- },
189- anyOrNull(),
190- )
190+ await.untilAsserted {
191+ verify(transport)
192+ .send(
193+ checkEvent { event ->
194+ assertThat(event.user).isNotNull()
195+ assertThat(event.user!! .ipAddress).isEqualTo(" 169.128.0.1" )
196+ },
197+ anyOrNull(),
198+ )
199+ }
191200 }
192201
193202 @Test
@@ -196,18 +205,20 @@ class SentrySpringIntegrationTest {
196205
197206 restTemplate.getForEntity(" http://localhost:$port /throws" , String ::class .java)
198207
199- verify(transport)
200- .send(
201- checkEvent { event ->
202- assertThat(event.exceptions).isNotNull().isNotEmpty
203- val ex = event.exceptions!! .first()
204- assertThat(ex.value).isEqualTo(" something went wrong" )
205- assertThat(ex.mechanism).isNotNull()
206- assertThat(ex.mechanism!! .isHandled).isFalse()
207- assertThat(ex.mechanism!! .type).isEqualTo(SentryExceptionResolver .MECHANISM_TYPE )
208- },
209- anyOrNull(),
210- )
208+ await.untilAsserted {
209+ verify(transport)
210+ .send(
211+ checkEvent { event ->
212+ assertThat(event.exceptions).isNotNull().isNotEmpty
213+ val ex = event.exceptions!! .first()
214+ assertThat(ex.value).isEqualTo(" something went wrong" )
215+ assertThat(ex.mechanism).isNotNull()
216+ assertThat(ex.mechanism!! .isHandled).isFalse()
217+ assertThat(ex.mechanism!! .type).isEqualTo(SentryExceptionResolver .MECHANISM_TYPE )
218+ },
219+ anyOrNull(),
220+ )
221+ }
211222 }
212223
213224 @Test
@@ -216,11 +227,13 @@ class SentrySpringIntegrationTest {
216227
217228 restTemplate.getForEntity(" http://localhost:$port /throws" , String ::class .java)
218229
219- verify(transport)
220- .send(
221- checkEvent { event -> assertThat(event.transaction).isEqualTo(" GET /throws" ) },
222- anyOrNull(),
223- )
230+ await.untilAsserted {
231+ verify(transport)
232+ .send(
233+ checkEvent { event -> assertThat(event.transaction).isEqualTo(" GET /throws" ) },
234+ anyOrNull(),
235+ )
236+ }
224237 }
225238
226239 @Test
@@ -229,37 +242,45 @@ class SentrySpringIntegrationTest {
229242
230243 restTemplate.getForEntity(" http://localhost:$port /throws-handled" , String ::class .java)
231244
232- verify(transport, never())
233- .send(checkEvent { event -> assertThat(event).isNotNull() }, anyOrNull())
245+ await.atMost(3 , TimeUnit .SECONDS ).during(Duration .ofSeconds(2 )).untilAsserted {
246+ verify(transport, never())
247+ .send(checkEvent { event -> assertThat(event).isNotNull() }, anyOrNull())
248+ }
234249 }
235250
236251 @Test
237252 fun `calling a method annotated with @SentryCaptureException captures exception` () {
238253 val exception = java.lang.RuntimeException (" test exception" )
239254 anotherService.aMethodThatTakesAnException(exception)
240- verify(transport)
241- .send(
242- checkEvent { assertThat(it.exceptions!! .first().value).isEqualTo(exception.message) },
243- anyOrNull(),
244- )
255+ await.untilAsserted {
256+ verify(transport)
257+ .send(
258+ checkEvent { assertThat(it.exceptions!! .first().value).isEqualTo(exception.message) },
259+ anyOrNull(),
260+ )
261+ }
245262 }
246263
247264 @Test
248265 fun `calling a method annotated with @SentryCaptureException captures exception in later param` () {
249266 val exception = java.lang.RuntimeException (" test exception" )
250267 anotherService.aMethodThatTakesAnExceptionAsLaterParam(" a" , " b" , exception)
251- verify(transport)
252- .send(
253- checkEvent { assertThat(it.exceptions!! .first().value).isEqualTo(exception.message) },
254- anyOrNull(),
255- )
268+ await.untilAsserted {
269+ verify(transport)
270+ .send(
271+ checkEvent { assertThat(it.exceptions!! .first().value).isEqualTo(exception.message) },
272+ anyOrNull(),
273+ )
274+ }
256275 }
257276
258277 @Test
259278 fun `calling a method annotated with @SentryTransaction creates transaction` () {
260279 someService.aMethod()
261- verify(transport)
262- .send(checkTransaction { assertThat(it.status).isEqualTo(SpanStatus .OK ) }, anyOrNull())
280+ await.untilAsserted {
281+ verify(transport)
282+ .send(checkTransaction { assertThat(it.status).isEqualTo(SpanStatus .OK ) }, anyOrNull())
283+ }
263284 }
264285
265286 @Test
@@ -269,14 +290,16 @@ class SentrySpringIntegrationTest {
269290 } catch (e: Exception ) {
270291 scopes.captureException(e)
271292 }
272- verify(transport)
273- .send(
274- checkEvent {
275- assertThat(it.contexts.trace).isNotNull
276- assertThat(it.contexts.trace!! .operation).isEqualTo(" bean" )
277- },
278- anyOrNull(),
279- )
293+ await.untilAsserted {
294+ verify(transport)
295+ .send(
296+ checkEvent {
297+ assertThat(it.contexts.trace).isNotNull
298+ assertThat(it.contexts.trace!! .operation).isEqualTo(" bean" )
299+ },
300+ anyOrNull(),
301+ )
302+ }
280303 }
281304
282305 @Test
@@ -286,14 +309,16 @@ class SentrySpringIntegrationTest {
286309 } catch (e: Exception ) {
287310 scopes.captureException(e)
288311 }
289- verify(transport)
290- .send(
291- checkEvent {
292- assertThat(it.contexts.trace).isNotNull
293- assertThat(it.contexts.trace!! .operation).isEqualTo(" child-op" )
294- },
295- anyOrNull(),
296- )
312+ await.untilAsserted {
313+ verify(transport)
314+ .send(
315+ checkEvent {
316+ assertThat(it.contexts.trace).isNotNull
317+ assertThat(it.contexts.trace!! .operation).isEqualTo(" child-op" )
318+ },
319+ anyOrNull(),
320+ )
321+ }
297322 }
298323
299324 @Test
0 commit comments