Skip to content

Commit feecca7

Browse files
eddumelendeztzolov
authored andcommitted
Use Weaviate's readiness endpoint
Currently, Testcontainers Weaviate implementation relies on port availability. This commit switch to Weaviate's readiness endpoint.
1 parent 3227311 commit feecca7

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

spring-ai-spring-boot-autoconfigure/src/test/java/org/springframework/ai/autoconfigure/vectorstore/weaviate/WeaviateVectorStoreAutoConfigurationTests.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.util.Map;
2020

2121
import org.junit.jupiter.api.Test;
22+
import org.testcontainers.containers.wait.strategy.Wait;
2223
import org.testcontainers.junit.jupiter.Container;
2324
import org.testcontainers.junit.jupiter.Testcontainers;
2425

@@ -44,7 +45,10 @@
4445
public class WeaviateVectorStoreAutoConfigurationTests {
4546

4647
@Container
47-
static WeaviateContainer weaviate = new WeaviateContainer("semitechnologies/weaviate:1.25.4");
48+
static WeaviateContainer weaviate = new WeaviateContainer("semitechnologies/weaviate:1.25.4")
49+
.waitingFor(Wait.forHttp("/v1/.well-known/ready").forPort(8080));
50+
51+
;
4852

4953
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
5054
.withConfiguration(AutoConfigurations.of(WeaviateVectorStoreAutoConfiguration.class))

spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/weaviate/WeaviateContainerConnectionDetailsFactoryTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.springframework.context.annotation.Configuration;
3232
import org.springframework.test.context.TestPropertySource;
3333
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
34+
import org.testcontainers.containers.wait.strategy.Wait;
3435
import org.testcontainers.junit.jupiter.Container;
3536
import org.testcontainers.junit.jupiter.Testcontainers;
3637
import org.testcontainers.weaviate.WeaviateContainer;
@@ -50,7 +51,8 @@ class WeaviateContainerConnectionDetailsFactoryTest {
5051

5152
@Container
5253
@ServiceConnection
53-
static WeaviateContainer weaviateContainer = new WeaviateContainer("semitechnologies/weaviate:1.25.4");
54+
static WeaviateContainer weaviateContainer = new WeaviateContainer("semitechnologies/weaviate:1.25.4")
55+
.waitingFor(Wait.forHttp("/v1/.well-known/ready").forPort(8080));
5456

5557
@Autowired
5658
private WeaviateVectorStoreProperties properties;

vector-stores/spring-ai-weaviate-store/src/test/java/org/springframework/ai/vectorstore/WeaviateVectorStoreIT.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
3636
import org.springframework.context.annotation.Bean;
3737
import org.springframework.core.io.DefaultResourceLoader;
38+
import org.testcontainers.containers.wait.strategy.Wait;
3839
import org.testcontainers.junit.jupiter.Container;
3940
import org.testcontainers.junit.jupiter.Testcontainers;
4041
import org.testcontainers.weaviate.WeaviateContainer;
@@ -50,7 +51,10 @@
5051
public class WeaviateVectorStoreIT {
5152

5253
@Container
53-
static WeaviateContainer weaviateContainer = new WeaviateContainer("semitechnologies/weaviate:1.25.4");
54+
static WeaviateContainer weaviateContainer = new WeaviateContainer("semitechnologies/weaviate:1.25.4")
55+
.waitingFor(Wait.forHttp("/v1/.well-known/ready").forPort(8080));
56+
57+
;
5458

5559
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
5660
.withUserConfiguration(TestApplication.class);

0 commit comments

Comments
 (0)