Assuming 500 status code when an exception was thrown in the controller; fixes gh-1880

This commit is contained in:
Marcin Grzejszczak
2021-03-30 14:06:48 +02:00
parent dad3d80408
commit bd47e12614
2 changed files with 26 additions and 3 deletions

View File

@@ -88,6 +88,12 @@ public class TraceWebFluxTests {
thenSpanWith404StatusCodeWasReported(spans, response);
spans.clear();
// when
response = whenRequestIsSent(port, "/exception");
// then
thenSpanWithExceptionWasReported(spans, response);
spans.clear();
// when
ClientResponse nonSampledResponse = whenNonSampledRequestIsSent(port);
// then
@@ -151,6 +157,15 @@ public class TraceWebFluxTests {
value -> then(value).isEqualTo("404"));
}
private void thenSpanWithExceptionWasReported(TestSpanHandler spans,
ClientResponse response) {
Awaitility.await()
.untilAsserted(() -> then(response.statusCode().value()).isEqualTo(500));
then(spans).hasSize(1);
then(spans.get(0).tags()).hasEntrySatisfying("http.status_code",
value -> then(value).isEqualTo("500"));
}
private void thenNoSpanWasReported(TestSpanHandler spans, ClientResponse response,
Controller2 controller2) {
Awaitility.await().untilAsserted(() -> {
@@ -252,6 +267,11 @@ public class TraceWebFluxTests {
return Flux.just(sampled.toString());
}
@GetMapping("/exception")
public Flux<Void> exception() {
throw new RuntimeException("Exception");
}
}
}