Skip to content

Commit 7a76680

Browse files
committed
fix test assertions
1 parent 5b0a733 commit 7a76680

File tree

1 file changed

+107
-82
lines changed

1 file changed

+107
-82
lines changed

sentry-spring-7/src/test/kotlin/io/sentry/spring7/mvc/SentrySpringIntegrationTest.kt

Lines changed: 107 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import io.sentry.spring7.tracing.SentryTracingConfiguration
2222
import io.sentry.spring7.tracing.SentryTracingFilter
2323
import io.sentry.spring7.tracing.SentryTransaction
2424
import io.sentry.transport.ITransport
25+
import java.time.Duration
2526
import java.util.concurrent.Callable
2627
import java.util.concurrent.TimeUnit
2728
import 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

Comments
 (0)