Skip to content

Commit c6876bc

Browse files
Stabilize test with awaitility
1 parent a64e075 commit c6876bc

File tree

2 files changed

+49
-16
lines changed

2 files changed

+49
-16
lines changed

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,12 @@
9797
<groupId>org.jenkins-ci.plugins.workflow</groupId>
9898
<artifactId>workflow-step-api</artifactId>
9999
</dependency>
100+
<dependency>
101+
<groupId>org.awaitility</groupId>
102+
<artifactId>awaitility</artifactId>
103+
<version>4.3.0</version>
104+
<scope>test</scope>
105+
</dependency>
100106
<dependency>
101107
<groupId>org.jenkins-ci.plugins</groupId>
102108
<artifactId>antisamy-markup-formatter</artifactId>

src/test/java/com/jenkinsci/plugins/badge/dsl/UITest.java

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package com.jenkinsci.plugins.badge.dsl;
22

3+
import static org.awaitility.Awaitility.await;
34
import static org.junit.jupiter.api.Assertions.assertEquals;
45
import static org.junit.jupiter.api.Assertions.assertTrue;
56

7+
import java.util.Objects;
68
import java.util.UUID;
9+
import java.util.concurrent.TimeUnit;
710
import jenkins.model.Jenkins;
811
import org.apache.commons.lang.StringUtils;
912
import org.htmlunit.html.DomElement;
@@ -43,8 +46,11 @@ void iconWithLink() throws Throwable {
4346

4447
try (JenkinsRule.WebClient webClient = r.createWebClient()) {
4548
HtmlPage overview = webClient.getPage(job);
46-
DomElement badge =
47-
overview.querySelector("#jenkins-builds .app-builds-container__item__inner__controls a");
49+
DomElement badge = await().atMost(5, TimeUnit.SECONDS)
50+
.until(
51+
() -> overview.querySelector(
52+
"#jenkins-builds .app-builds-container__item__inner__controls a"),
53+
Objects::nonNull);
4854
DomElement icon = badge.getLastElementChild();
4955

5056
assertEquals("a", badge.getTagName());
@@ -67,8 +73,11 @@ void iconWithoutLink() throws Throwable {
6773

6874
try (JenkinsRule.WebClient webClient = r.createWebClient()) {
6975
HtmlPage overview = webClient.getPage(job);
70-
DomElement badge =
71-
overview.querySelector("#jenkins-builds .app-builds-container__item__inner__controls span");
76+
DomElement badge = await().atMost(5, TimeUnit.SECONDS)
77+
.until(
78+
() -> overview.querySelector(
79+
"#jenkins-builds .app-builds-container__item__inner__controls span"),
80+
Objects::nonNull);
7281
DomElement icon = badge.getLastElementChild();
7382

7483
assertEquals("svg", icon.getTagName());
@@ -89,8 +98,11 @@ void textWithLink() throws Throwable {
8998

9099
try (JenkinsRule.WebClient webClient = r.createWebClient()) {
91100
HtmlPage overview = webClient.getPage(job);
92-
DomElement badge =
93-
overview.querySelector("#jenkins-builds .app-builds-container__item__inner__controls a");
101+
DomElement badge = await().atMost(5, TimeUnit.SECONDS)
102+
.until(
103+
() -> overview.querySelector(
104+
"#jenkins-builds .app-builds-container__item__inner__controls a"),
105+
Objects::nonNull);
94106

95107
assertEquals("a", badge.getTagName());
96108

@@ -109,8 +121,11 @@ void textWithoutLink() throws Throwable {
109121

110122
try (JenkinsRule.WebClient webClient = r.createWebClient()) {
111123
HtmlPage overview = webClient.getPage(job);
112-
DomElement badge =
113-
overview.querySelector("#jenkins-builds .app-builds-container__item__inner__controls span");
124+
DomElement badge = await().atMost(5, TimeUnit.SECONDS)
125+
.until(
126+
() -> overview.querySelector(
127+
"#jenkins-builds .app-builds-container__item__inner__controls span"),
128+
Objects::nonNull);
114129

115130
assertEquals("span", badge.getTagName());
116131

@@ -127,8 +142,11 @@ void info() throws Throwable {
127142

128143
try (JenkinsRule.WebClient webClient = r.createWebClient()) {
129144
HtmlPage overview = webClient.getPage(job);
130-
DomElement badge =
131-
overview.querySelector("#jenkins-builds .app-builds-container__item__inner__controls span");
145+
DomElement badge = await().atMost(5, TimeUnit.SECONDS)
146+
.until(
147+
() -> overview.querySelector(
148+
"#jenkins-builds .app-builds-container__item__inner__controls span"),
149+
Objects::nonNull);
132150
DomElement icon = badge.getLastElementChild();
133151

134152
assertEquals("svg", icon.getTagName());
@@ -147,8 +165,11 @@ void warning() throws Throwable {
147165

148166
try (JenkinsRule.WebClient webClient = r.createWebClient()) {
149167
HtmlPage overview = webClient.getPage(job);
150-
DomElement badge =
151-
overview.querySelector("#jenkins-builds .app-builds-container__item__inner__controls span");
168+
DomElement badge = await().atMost(5, TimeUnit.SECONDS)
169+
.until(
170+
() -> overview.querySelector(
171+
"#jenkins-builds .app-builds-container__item__inner__controls span"),
172+
Objects::nonNull);
152173
DomElement icon = badge.getLastElementChild();
153174

154175
assertEquals("svg", icon.getTagName());
@@ -167,8 +188,11 @@ void error() throws Throwable {
167188

168189
try (JenkinsRule.WebClient webClient = r.createWebClient()) {
169190
HtmlPage overview = webClient.getPage(job);
170-
DomElement badge =
171-
overview.querySelector("#jenkins-builds .app-builds-container__item__inner__controls span");
191+
DomElement badge = await().atMost(5, TimeUnit.SECONDS)
192+
.until(
193+
() -> overview.querySelector(
194+
"#jenkins-builds .app-builds-container__item__inner__controls span"),
195+
Objects::nonNull);
172196
DomElement icon = badge.getLastElementChild();
173197

174198
assertEquals("svg", icon.getTagName());
@@ -195,8 +219,11 @@ void remove() throws Throwable {
195219

196220
try (JenkinsRule.WebClient webClient = r.createWebClient()) {
197221
HtmlPage overview = webClient.getPage(job);
198-
DomElement badge =
199-
overview.querySelector("#jenkins-builds .app-builds-container__item__inner__controls");
222+
DomElement badge = await().atMost(5, TimeUnit.SECONDS)
223+
.until(
224+
() -> overview.querySelector(
225+
"#jenkins-builds .app-builds-container__item__inner__controls"),
226+
Objects::nonNull);
200227
assertEquals(0, badge.getElementsByTagName("span").size());
201228
}
202229
}

0 commit comments

Comments
 (0)