From d605c315847cc60f340b272f64519eb059c29de8 Mon Sep 17 00:00:00 2001
From: brunobat <brunobat@gmail.com>
Date: Thu, 16 Jan 2025 16:10:26 +0000
Subject: [PATCH] Fix flaky otel quickstart test

---
 .../OpenTelemetryDisabledTest.java            | 19 ++++++++++++++++++-
 .../it/opentelemetry/OpenTelemetryTest.java   | 19 +++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)

diff --git a/integration-tests/opentelemetry-quickstart/src/test/java/io/quarkus/it/opentelemetry/OpenTelemetryDisabledTest.java b/integration-tests/opentelemetry-quickstart/src/test/java/io/quarkus/it/opentelemetry/OpenTelemetryDisabledTest.java
index 92a8e66aa8537..fb2e5a34c0364 100644
--- a/integration-tests/opentelemetry-quickstart/src/test/java/io/quarkus/it/opentelemetry/OpenTelemetryDisabledTest.java
+++ b/integration-tests/opentelemetry-quickstart/src/test/java/io/quarkus/it/opentelemetry/OpenTelemetryDisabledTest.java
@@ -2,12 +2,16 @@
 
 import static io.restassured.RestAssured.get;
 import static io.restassured.RestAssured.given;
+import static java.net.HttpURLConnection.HTTP_OK;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.awaitility.Awaitility.await;
 import static org.hamcrest.CoreMatchers.is;
 
+import java.util.List;
 import java.util.Map;
 
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 import io.quarkus.test.junit.QuarkusTest;
@@ -18,6 +22,19 @@
 @TestProfile(OpenTelemetryDisabledTest.MyProfile.class)
 public class OpenTelemetryDisabledTest extends BaseTest {
 
+    @BeforeEach
+    void reset() {
+        await().atMost(5, SECONDS).until(() -> {
+            List<Map<String, Object>> spans = getSpans();
+            if (spans.size() == 0) {
+                return true;
+            } else {
+                given().get("/reset").then().statusCode(HTTP_OK);
+                return false;
+            }
+        });
+    }
+
     @Test
     void buildTimeDisabled() {
         given()
@@ -26,7 +43,7 @@ void buildTimeDisabled() {
                 .statusCode(200)
                 .body(is("Hello from Quarkus REST"));
         // Service will start nevertheless.
-        await().atMost(200, MILLISECONDS).until(() -> getSpans().size() == 0);
+        await().atMost(300, MILLISECONDS).until(() -> getSpans().size() == 0);
     }
 
     public static class MyProfile implements QuarkusTestProfile {
diff --git a/integration-tests/opentelemetry-quickstart/src/test/java/io/quarkus/it/opentelemetry/OpenTelemetryTest.java b/integration-tests/opentelemetry-quickstart/src/test/java/io/quarkus/it/opentelemetry/OpenTelemetryTest.java
index e4963ec759d1e..746a31747db2b 100644
--- a/integration-tests/opentelemetry-quickstart/src/test/java/io/quarkus/it/opentelemetry/OpenTelemetryTest.java
+++ b/integration-tests/opentelemetry-quickstart/src/test/java/io/quarkus/it/opentelemetry/OpenTelemetryTest.java
@@ -2,16 +2,35 @@
 
 import static io.restassured.RestAssured.get;
 import static io.restassured.RestAssured.given;
+import static java.net.HttpURLConnection.HTTP_OK;
 import static java.util.concurrent.TimeUnit.SECONDS;
 import static org.awaitility.Awaitility.await;
 import static org.hamcrest.CoreMatchers.is;
 
+import java.util.List;
+import java.util.Map;
+
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 import io.quarkus.test.junit.QuarkusTest;
 
 @QuarkusTest
 public class OpenTelemetryTest extends BaseTest {
+
+    @BeforeEach
+    void reset() {
+        await().atMost(5, SECONDS).until(() -> {
+            List<Map<String, Object>> spans = getSpans();
+            if (spans.size() == 0) {
+                return true;
+            } else {
+                given().get("/reset").then().statusCode(HTTP_OK);
+                return false;
+            }
+        });
+    }
+
     @Test
     void buildTimeEnabled() {
         given()