Skip to content

Commit f24d718

Browse files
authored
chore: use deterministic app ports in integration tests (#677)
1 parent 9421463 commit f24d718

File tree

2 files changed

+25
-8
lines changed

2 files changed

+25
-8
lines changed

judgels-backends/judgels-server-app/src/integTest/java/judgels/BaseJudgelsApiIntegrationTests.java

+21-4
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@
1212
import com.google.common.io.RecursiveDeleteOption;
1313
import com.palantir.websecurity.WebSecurityConfiguration;
1414
import io.dropwizard.db.DataSourceFactory;
15+
import io.dropwizard.jetty.HttpConnectorFactory;
16+
import io.dropwizard.server.DefaultServerFactory;
1517
import io.dropwizard.testing.DropwizardTestSupport;
1618
import java.io.IOException;
1719
import java.nio.file.Files;
1820
import java.nio.file.Path;
1921
import java.time.Instant;
22+
import java.util.List;
2023
import java.util.Map;
2124
import java.util.regex.Matcher;
2225
import java.util.regex.Pattern;
@@ -136,7 +139,19 @@ static void startApp() throws Exception {
136139
jophielConfig,
137140
sandalphonConfig,
138141
urielConfig,
139-
jerahmeelConfig);
142+
jerahmeelConfig) {
143+
{
144+
DefaultServerFactory serverFactory = (DefaultServerFactory) getServerFactory();
145+
146+
HttpConnectorFactory appConnector = new HttpConnectorFactory();
147+
appConnector.setPort(9090);
148+
serverFactory.setApplicationConnectors(List.of(appConnector));
149+
150+
HttpConnectorFactory adminConnector = new HttpConnectorFactory();
151+
adminConnector.setPort(9091);
152+
serverFactory.setAdminConnectors(List.of(adminConnector));
153+
}
154+
};
140155

141156
support = new DropwizardTestSupport<>(JudgelsServerApplication.class, config);
142157
support.before();
@@ -171,9 +186,11 @@ protected static WebTarget createWebTarget() {
171186
}
172187

173188
protected static <T> T createClient(Class<T> clientClass) {
174-
return FeignClients.create(
175-
clientClass,
176-
"http://localhost:" + support.getLocalPort());
189+
return FeignClients.create(clientClass, getLocalUrl());
190+
}
191+
192+
protected static String getLocalUrl() {
193+
return "http://localhost:" + support.getLocalPort();
177194
}
178195

179196
protected static void assertPermitted(ThrowingCallable callable) {

judgels-backends/judgels-server-app/src/integTest/java/judgels/uriel/api/ContestProblemApiIntegrationTests.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ void get_programming_problem_worksheet() {
162162
.worksheet(new ProblemWorksheet.Builder()
163163
.statement(new ProblemStatement.Builder()
164164
.title("Problem 1")
165-
.text("Statement 1. <img src=\"http://localhost:8080/api/v2/problems/" + problem1.getJid() + "/render/image.png\"/>")
165+
.text("Statement 1. <img src=\"" + getLocalUrl() + "/api/v2/problems/" + problem1.getJid() + "/render/image.png\"/>")
166166
.build())
167167
.limits(new ProblemLimits.Builder()
168168
.timeLimit(2000)
@@ -253,15 +253,15 @@ void get_bundle_problem_worksheet() {
253253
.worksheet(new judgels.sandalphon.api.problem.bundle.ProblemWorksheet.Builder()
254254
.statement(new ProblemStatement.Builder()
255255
.title("Problem 3")
256-
.text("Statement 3. <img src=\"http://localhost:8080/api/v2/problems/" + problem3.getJid() + "/render/image.png\"/>")
256+
.text("Statement 3. <img src=\"" + getLocalUrl() + "/api/v2/problems/" + problem3.getJid() + "/render/image.png\"/>")
257257
.build())
258258
.addItems(
259259
new Item.Builder()
260260
.jid(item1Jid)
261261
.type(ItemType.STATEMENT)
262262
.meta("1-2")
263263
.config(new StatementItemConfig.Builder()
264-
.statement("<p>STATEMENT 1-2</p> <img src=\"http://localhost:8080/api/v2/problems/" + problem3.getJid() + "/render/statement.png\"/>")
264+
.statement("<p>STATEMENT 1-2</p> <img src=\"" + getLocalUrl() + "/api/v2/problems/" + problem3.getJid() + "/render/statement.png\"/>")
265265
.build())
266266
.build(),
267267
new Item.Builder()
@@ -276,7 +276,7 @@ void get_bundle_problem_worksheet() {
276276
.addChoices(
277277
new MultipleChoiceItemConfig.Choice.Builder()
278278
.alias("a")
279-
.content("answer a <img src=\"http://localhost:8080/api/v2/problems/" + problem3.getJid() + "/render/a.png\"/>")
279+
.content("answer a <img src=\"" + getLocalUrl() + "/api/v2/problems/" + problem3.getJid() + "/render/a.png\"/>")
280280
.build(),
281281
new MultipleChoiceItemConfig.Choice.Builder()
282282
.alias("b")

0 commit comments

Comments
 (0)