diff --git a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/livereload/LiveReloadServerTests.java b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/livereload/LiveReloadServerTests.java index b7d0aef8c3c..8b15e1e1527 100644 --- a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/livereload/LiveReloadServerTests.java +++ b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/livereload/LiveReloadServerTests.java @@ -23,6 +23,7 @@ import java.net.URI; import java.time.Duration; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -45,6 +46,7 @@ import org.springframework.web.socket.client.standard.StandardWebSocketClient; import org.springframework.web.socket.handler.TextWebSocketHandler; import static org.assertj.core.api.Assertions.assertThat; +import static org.awaitility.Awaitility.await; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; @@ -88,17 +90,18 @@ class LiveReloadServerTests { void triggerReload() throws Exception { LiveReloadWebSocketHandler handler = connect(); this.server.triggerReload(); - Thread.sleep(200); - assertThat(handler.getMessages().get(0)).contains("http://livereload.com/protocols/official-7"); - assertThat(handler.getMessages().get(1)).contains("command\":\"reload\""); + List messages = await().atMost(Duration.ofSeconds(10)).until(handler::getMessages, + (msgs) -> msgs.size() == 2); + assertThat(messages.get(0)).contains("http://livereload.com/protocols/official-7"); + assertThat(messages.get(1)).contains("command\":\"reload\""); + } @Test void pingPong() throws Exception { LiveReloadWebSocketHandler handler = connect(); handler.sendMessage(new PingMessage()); - Thread.sleep(200); - assertThat(handler.getPongCount()).isEqualTo(1); + await().atMost(Duration.ofSeconds(10)).until(handler::getPongCount, is(1)); } @Test @@ -117,8 +120,9 @@ class LiveReloadServerTests { void serverClose() throws Exception { LiveReloadWebSocketHandler handler = connect(); this.server.stop(); - Thread.sleep(200); - assertThat(handler.getCloseStatus().getCode()).isEqualTo(1006); + CloseStatus closeStatus = await().atMost(Duration.ofSeconds(10)).until(handler::getCloseStatus, + Objects::nonNull); + assertThat(closeStatus.getCode()).isEqualTo(1006); } private LiveReloadWebSocketHandler connect() throws Exception {