@@ -22,6 +22,7 @@ import io.sentry.spring7.tracing.SentryTracingConfiguration
2222import io.sentry.spring7.tracing.SentryTracingFilter
2323import io.sentry.spring7.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
@@ -116,17 +117,19 @@ class SentrySpringIntegrationTest {
116117
117118 restTemplate.exchange(" http://localhost:$port /hello" , HttpMethod .GET , entity, Void ::class .java)
118119
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- )
120+ await.untilAsserted {
121+ verify(transport)
122+ .send(
123+ checkEvent { event ->
124+ assertThat(event.request).isNotNull()
125+ assertThat(event.request!! .url).isEqualTo(" http://localhost:$port /hello" )
126+ assertThat(event.user).isNotNull()
127+ assertThat(event.user!! .username).isEqualTo(" user" )
128+ assertThat(event.user!! .ipAddress).isEqualTo(" 169.128.0.1" )
129+ },
130+ anyOrNull(),
131+ )
132+ }
130133 }
131134
132135 @Test
@@ -141,14 +144,16 @@ class SentrySpringIntegrationTest {
141144 Void ::class .java,
142145 )
143146
144- verify(transport)
145- .send(
146- checkEvent { event ->
147- assertThat(event.request).isNotNull()
148- assertThat(event.request!! .data).isEqualTo(""" {"body":"content"}""" )
149- },
150- anyOrNull(),
151- )
147+ await.untilAsserted {
148+ verify(transport)
149+ .send(
150+ checkEvent { event ->
151+ assertThat(event.request).isNotNull()
152+ assertThat(event.request!! .data).isEqualTo(""" {"body":"content"}""" )
153+ },
154+ anyOrNull(),
155+ )
156+ }
152157 }
153158
154159 @Test
@@ -163,14 +168,16 @@ class SentrySpringIntegrationTest {
163168 Void ::class .java,
164169 )
165170
166- verify(transport)
167- .send(
168- checkEvent { event ->
169- assertThat(event.request).isNotNull()
170- assertThat(event.request!! .data).isEqualTo(""" {"body":"content"}""" )
171- },
172- anyOrNull(),
173- )
171+ await.untilAsserted {
172+ verify(transport)
173+ .send(
174+ checkEvent { event ->
175+ assertThat(event.request).isNotNull()
176+ assertThat(event.request!! .data).isEqualTo(""" {"body":"content"}""" )
177+ },
178+ anyOrNull(),
179+ )
180+ }
174181 }
175182
176183 @Test
@@ -182,14 +189,16 @@ class SentrySpringIntegrationTest {
182189
183190 restTemplate.exchange(" http://localhost:$port /hello" , HttpMethod .GET , entity, Void ::class .java)
184191
185- verify(transport)
186- .send(
187- checkEvent { event ->
188- assertThat(event.user).isNotNull()
189- assertThat(event.user!! .ipAddress).isEqualTo(" 169.128.0.1" )
190- },
191- anyOrNull(),
192- )
192+ await.untilAsserted {
193+ verify(transport)
194+ .send(
195+ checkEvent { event ->
196+ assertThat(event.user).isNotNull()
197+ assertThat(event.user!! .ipAddress).isEqualTo(" 169.128.0.1" )
198+ },
199+ anyOrNull(),
200+ )
201+ }
193202 }
194203
195204 @Test
@@ -198,18 +207,20 @@ class SentrySpringIntegrationTest {
198207
199208 restTemplate.getForEntity(" http://localhost:$port /throws" , String ::class .java)
200209
201- verify(transport)
202- .send(
203- checkEvent { event ->
204- assertThat(event.exceptions).isNotNull().isNotEmpty
205- val ex = event.exceptions!! .first()
206- assertThat(ex.value).isEqualTo(" something went wrong" )
207- assertThat(ex.mechanism).isNotNull()
208- assertThat(ex.mechanism!! .isHandled).isFalse()
209- assertThat(ex.mechanism!! .type).isEqualTo(SentryExceptionResolver .MECHANISM_TYPE )
210- },
211- anyOrNull(),
212- )
210+ await.untilAsserted {
211+ verify(transport)
212+ .send(
213+ checkEvent { event ->
214+ assertThat(event.exceptions).isNotNull().isNotEmpty
215+ val ex = event.exceptions!! .first()
216+ assertThat(ex.value).isEqualTo(" something went wrong" )
217+ assertThat(ex.mechanism).isNotNull()
218+ assertThat(ex.mechanism!! .isHandled).isFalse()
219+ assertThat(ex.mechanism!! .type).isEqualTo(SentryExceptionResolver .MECHANISM_TYPE )
220+ },
221+ anyOrNull(),
222+ )
223+ }
213224 }
214225
215226 @Test
@@ -218,11 +229,13 @@ class SentrySpringIntegrationTest {
218229
219230 restTemplate.getForEntity(" http://localhost:$port /throws" , String ::class .java)
220231
221- verify(transport)
222- .send(
223- checkEvent { event -> assertThat(event.transaction).isEqualTo(" GET /throws" ) },
224- anyOrNull(),
225- )
232+ await.untilAsserted {
233+ verify(transport)
234+ .send(
235+ checkEvent { event -> assertThat(event.transaction).isEqualTo(" GET /throws" ) },
236+ anyOrNull(),
237+ )
238+ }
226239 }
227240
228241 @Test
@@ -231,37 +244,45 @@ class SentrySpringIntegrationTest {
231244
232245 restTemplate.getForEntity(" http://localhost:$port /throws-handled" , String ::class .java)
233246
234- verify(transport, never())
235- .send(checkEvent { event -> assertThat(event).isNotNull() }, anyOrNull())
247+ await.atMost(3 , TimeUnit .SECONDS ).during(Duration .ofSeconds(2 )).untilAsserted {
248+ verify(transport, never())
249+ .send(checkEvent { event -> assertThat(event).isNotNull() }, anyOrNull())
250+ }
236251 }
237252
238253 @Test
239254 fun `calling a method annotated with @SentryCaptureException captures exception` () {
240255 val exception = java.lang.RuntimeException (" test exception" )
241256 anotherService.aMethodThatTakesAnException(exception)
242- verify(transport)
243- .send(
244- checkEvent { assertThat(it.exceptions!! .first().value).isEqualTo(exception.message) },
245- anyOrNull(),
246- )
257+ await.untilAsserted {
258+ verify(transport)
259+ .send(
260+ checkEvent { assertThat(it.exceptions!! .first().value).isEqualTo(exception.message) },
261+ anyOrNull(),
262+ )
263+ }
247264 }
248265
249266 @Test
250267 fun `calling a method annotated with @SentryCaptureException captures exception in later param` () {
251268 val exception = java.lang.RuntimeException (" test exception" )
252269 anotherService.aMethodThatTakesAnExceptionAsLaterParam(" a" , " b" , exception)
253- verify(transport)
254- .send(
255- checkEvent { assertThat(it.exceptions!! .first().value).isEqualTo(exception.message) },
256- anyOrNull(),
257- )
270+ await.untilAsserted {
271+ verify(transport)
272+ .send(
273+ checkEvent { assertThat(it.exceptions!! .first().value).isEqualTo(exception.message) },
274+ anyOrNull(),
275+ )
276+ }
258277 }
259278
260279 @Test
261280 fun `calling a method annotated with @SentryTransaction creates transaction` () {
262281 someService.aMethod()
263- verify(transport)
264- .send(checkTransaction { assertThat(it.status).isEqualTo(SpanStatus .OK ) }, anyOrNull())
282+ await.untilAsserted {
283+ verify(transport)
284+ .send(checkTransaction { assertThat(it.status).isEqualTo(SpanStatus .OK ) }, anyOrNull())
285+ }
265286 }
266287
267288 @Test
@@ -271,14 +292,16 @@ class SentrySpringIntegrationTest {
271292 } catch (e: Exception ) {
272293 scopes.captureException(e)
273294 }
274- verify(transport)
275- .send(
276- checkEvent {
277- assertThat(it.contexts.trace).isNotNull
278- assertThat(it.contexts.trace!! .operation).isEqualTo(" bean" )
279- },
280- anyOrNull(),
281- )
295+ await.untilAsserted {
296+ verify(transport)
297+ .send(
298+ checkEvent {
299+ assertThat(it.contexts.trace).isNotNull
300+ assertThat(it.contexts.trace!! .operation).isEqualTo(" bean" )
301+ },
302+ anyOrNull(),
303+ )
304+ }
282305 }
283306
284307 @Test
@@ -288,14 +311,16 @@ class SentrySpringIntegrationTest {
288311 } catch (e: Exception ) {
289312 scopes.captureException(e)
290313 }
291- verify(transport)
292- .send(
293- checkEvent {
294- assertThat(it.contexts.trace).isNotNull
295- assertThat(it.contexts.trace!! .operation).isEqualTo(" child-op" )
296- },
297- anyOrNull(),
298- )
314+ await.untilAsserted {
315+ verify(transport)
316+ .send(
317+ checkEvent {
318+ assertThat(it.contexts.trace).isNotNull
319+ assertThat(it.contexts.trace!! .operation).isEqualTo(" child-op" )
320+ },
321+ anyOrNull(),
322+ )
323+ }
299324 }
300325
301326 @Test
0 commit comments