1
1
package com .jenkinsci .plugins .badge .dsl ;
2
2
3
+ import static org .awaitility .Awaitility .await ;
3
4
import static org .junit .jupiter .api .Assertions .assertEquals ;
4
5
import static org .junit .jupiter .api .Assertions .assertTrue ;
5
6
7
+ import java .util .Objects ;
6
8
import java .util .UUID ;
9
+ import java .util .concurrent .TimeUnit ;
7
10
import jenkins .model .Jenkins ;
8
11
import org .apache .commons .lang .StringUtils ;
9
12
import org .htmlunit .html .DomElement ;
@@ -43,8 +46,11 @@ void iconWithLink() throws Throwable {
43
46
44
47
try (JenkinsRule .WebClient webClient = r .createWebClient ()) {
45
48
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 );
48
54
DomElement icon = badge .getLastElementChild ();
49
55
50
56
assertEquals ("a" , badge .getTagName ());
@@ -67,8 +73,11 @@ void iconWithoutLink() throws Throwable {
67
73
68
74
try (JenkinsRule .WebClient webClient = r .createWebClient ()) {
69
75
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 );
72
81
DomElement icon = badge .getLastElementChild ();
73
82
74
83
assertEquals ("svg" , icon .getTagName ());
@@ -89,8 +98,11 @@ void textWithLink() throws Throwable {
89
98
90
99
try (JenkinsRule .WebClient webClient = r .createWebClient ()) {
91
100
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 );
94
106
95
107
assertEquals ("a" , badge .getTagName ());
96
108
@@ -109,8 +121,11 @@ void textWithoutLink() throws Throwable {
109
121
110
122
try (JenkinsRule .WebClient webClient = r .createWebClient ()) {
111
123
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 );
114
129
115
130
assertEquals ("span" , badge .getTagName ());
116
131
@@ -127,8 +142,11 @@ void info() throws Throwable {
127
142
128
143
try (JenkinsRule .WebClient webClient = r .createWebClient ()) {
129
144
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 );
132
150
DomElement icon = badge .getLastElementChild ();
133
151
134
152
assertEquals ("svg" , icon .getTagName ());
@@ -147,8 +165,11 @@ void warning() throws Throwable {
147
165
148
166
try (JenkinsRule .WebClient webClient = r .createWebClient ()) {
149
167
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 );
152
173
DomElement icon = badge .getLastElementChild ();
153
174
154
175
assertEquals ("svg" , icon .getTagName ());
@@ -167,8 +188,11 @@ void error() throws Throwable {
167
188
168
189
try (JenkinsRule .WebClient webClient = r .createWebClient ()) {
169
190
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 );
172
196
DomElement icon = badge .getLastElementChild ();
173
197
174
198
assertEquals ("svg" , icon .getTagName ());
@@ -195,8 +219,11 @@ void remove() throws Throwable {
195
219
196
220
try (JenkinsRule .WebClient webClient = r .createWebClient ()) {
197
221
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 );
200
227
assertEquals (0 , badge .getElementsByTagName ("span" ).size ());
201
228
}
202
229
}
0 commit comments