Skip to content

Commit d1933b7

Browse files
authored
Support additional flags in FirestoreEmulatorContainer (#10067)
Fixes #10060
1 parent b7336e9 commit d1933b7

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

modules/gcloud/src/main/java/org/testcontainers/containers/FirestoreEmulatorContainer.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ public class FirestoreEmulatorContainer extends GenericContainer<FirestoreEmulat
2424

2525
private static final int PORT = 8080;
2626

27+
private String flags;
28+
2729
public FirestoreEmulatorContainer(String image) {
2830
this(DockerImageName.parse(image));
2931
}
@@ -34,7 +36,20 @@ public FirestoreEmulatorContainer(final DockerImageName dockerImageName) {
3436

3537
withExposedPorts(PORT);
3638
setWaitStrategy(Wait.forLogMessage(".*running.*$", 1));
37-
withCommand("/bin/sh", "-c", CMD);
39+
}
40+
41+
@Override
42+
protected void configure() {
43+
String command = CMD;
44+
if (this.flags != null && !this.flags.isEmpty()) {
45+
command += " " + this.flags;
46+
}
47+
withCommand("/bin/sh", "-c", command);
48+
}
49+
50+
public FirestoreEmulatorContainer withFlags(String flags) {
51+
this.flags = flags;
52+
return this;
3853
}
3954

4055
/**

modules/gcloud/src/test/java/org/testcontainers/containers/FirestoreEmulatorContainerTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,21 @@ public void testSimple() throws ExecutionException, InterruptedException {
5353

5454
assertThat(querySnapshot.getDocuments().get(0).getData()).containsEntry("first", "Ada");
5555
}
56+
5657
// }
5758

59+
@Test
60+
public void testWithFlags() {
61+
try (
62+
FirestoreEmulatorContainer emulator = new FirestoreEmulatorContainer(
63+
"gcr.io/google.com/cloudsdktool/google-cloud-cli:465.0.0-emulators"
64+
)
65+
.withFlags("--database-mode datastore-mode")
66+
) {
67+
emulator.start();
68+
69+
assertThat(emulator.getContainerInfo().getConfig().getCmd())
70+
.anyMatch(e -> e.contains("--database-mode datastore-mode"));
71+
}
72+
}
5873
}

0 commit comments

Comments
 (0)