From f272db9bddffd126de25aa45aa0f6f1c16118570 Mon Sep 17 00:00:00 2001 From: Jesse Brault Date: Sat, 24 Jan 2026 13:29:26 -0600 Subject: [PATCH] Refactoring tests, test extensions, test suites. --- build.gradle | 32 ++++++ ...ipeDraftsControllerAiIntegrationTests.java | 96 ++++++++++++++++++ .../RecipeInferJobAiIntegrationTests.java} | 23 +---- .../resources/application.properties | 15 +++ src/aiIntegrationTest/resources/recipe.jpeg | Bin 0 -> 127673 bytes .../api/MealsMadeEasyApiApplicationTests.java | 2 +- .../api/auth/AuthControllerTests.java | 4 +- .../api/image/ImageControllerTests.java | 23 +---- .../api/image/S3ImageServiceTests.java | 23 +---- .../api/job/JobServiceIntegrationTests.java | 4 +- ...ecipeDraftsControllerIntegrationTests.java | 39 +------ .../api/recipe/RecipeRepositoryTests.java | 4 +- .../api/recipe/RecipeServiceTests.java | 4 +- .../api/recipe/RecipesControllerTests.java | 23 +---- .../star/RecipeStarRepositoryTests.java | 4 +- .../recipe/star/RecipeStarServiceTests.java | 4 +- .../api/s3/MinioS3ManagerTests.java | 18 ++-- .../api/signup/SignUpControllerTests.java | 4 +- .../api/MinIOTestsExtension.java | 23 +++++ .../api/PostgresTestsExtension.java} | 3 +- 20 files changed, 203 insertions(+), 145 deletions(-) create mode 100644 src/aiIntegrationTest/java/app/mealsmadeeasy/api/recipe/RecipeDraftsControllerAiIntegrationTests.java rename src/{integrationTest/java/app/mealsmadeeasy/api/recipe/job/RecipeInferJobIntegrationTests.java => aiIntegrationTest/java/app/mealsmadeeasy/api/recipe/job/RecipeInferJobAiIntegrationTests.java} (73%) create mode 100644 src/aiIntegrationTest/resources/application.properties create mode 100644 src/aiIntegrationTest/resources/recipe.jpeg create mode 100644 src/testFixtures/java/app/mealsmadeeasy/api/MinIOTestsExtension.java rename src/{integrationTest/java/app/mealsmadeeasy/api/IntegrationTestsExtension.java => testFixtures/java/app/mealsmadeeasy/api/PostgresTestsExtension.java} (87%) diff --git a/build.gradle b/build.gradle index d815771..c31b8b1 100644 --- a/build.gradle +++ b/build.gradle @@ -26,6 +26,11 @@ sourceSets { compileClasspath += main.output + testFixtures.output runtimeClasspath += main.runtimeClasspath + testFixtures.runtimeClasspath } + + aiIntegrationTest { + compileClasspath += main.output + testFixtures.output + runtimeClasspath += main.runtimeClasspath + testFixtures.runtimeClasspath + } } configurations { @@ -35,6 +40,7 @@ configurations { testFixturesImplementation { extendsFrom implementation + extendsFrom testImplementation } integrationTestImplementation { @@ -45,6 +51,15 @@ configurations { integrationTestRuntimeOnly { extendsFrom testRuntimeOnly } + + aiIntegrationTestImplementation { + extendsFrom implementation + extendsFrom testImplementation + } + + aiIntegrationTestRuntimeOnly { + extendsFrom testRuntimeOnly + } } ext { @@ -122,6 +137,23 @@ tasks.register('integrationTest', Test) { classpath = sourceSets.integrationTest.runtimeClasspath } +tasks.register('aiIntegrationTest', Test) { + description = 'Run AI integration tests.' + group = 'verification' + testClassesDirs = sourceSets.aiIntegrationTest.output.classesDirs + classpath = sourceSets.aiIntegrationTest.runtimeClasspath +} + +check { + dependsOn 'integrationTest' +} + +tasks.register('checkWithAi') { + description = 'Run all tests, including AI integration tests.' + group = 'verification' + dependsOn 'test', 'integrationTest', 'aiIntegrationTest' +} + tasks.withType(Test).configureEach { useJUnitPlatform() } diff --git a/src/aiIntegrationTest/java/app/mealsmadeeasy/api/recipe/RecipeDraftsControllerAiIntegrationTests.java b/src/aiIntegrationTest/java/app/mealsmadeeasy/api/recipe/RecipeDraftsControllerAiIntegrationTests.java new file mode 100644 index 0000000..4d49fcb --- /dev/null +++ b/src/aiIntegrationTest/java/app/mealsmadeeasy/api/recipe/RecipeDraftsControllerAiIntegrationTests.java @@ -0,0 +1,96 @@ +package app.mealsmadeeasy.api.recipe; + +import app.mealsmadeeasy.api.MinIOTestsExtension; +import app.mealsmadeeasy.api.PostgresTestsExtension; +import app.mealsmadeeasy.api.auth.AuthService; +import app.mealsmadeeasy.api.auth.LoginException; +import app.mealsmadeeasy.api.recipe.view.RecipeDraftView; +import app.mealsmadeeasy.api.user.User; +import app.mealsmadeeasy.api.user.UserCreateException; +import app.mealsmadeeasy.api.user.UserService; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.util.MimeTypeUtils; + +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +import static org.awaitility.Awaitility.await; +import static org.hamcrest.CoreMatchers.is; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.multipart; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@SpringBootTest +@ExtendWith({ PostgresTestsExtension.class, MinIOTestsExtension.class }) +@AutoConfigureMockMvc +public class RecipeDraftsControllerAiIntegrationTests { + + private static final String TEST_PASSWORD = "test"; + + @Autowired + private UserService userService; + + @Autowired + private MockMvc mockMvc; + + @Autowired + private AuthService authService; + + @Autowired + private ObjectMapper objectMapper; + + private User seedUser() { + final String uuid = UUID.randomUUID().toString(); + try { + return this.userService.createUser(uuid, uuid + "@test.com", "test"); + } catch (UserCreateException e) { + throw new RuntimeException(e); + } + } + + private String getAccessToken(User user) throws LoginException { + return this.authService.login(user.getUsername(), TEST_PASSWORD) + .getAccessToken() + .getToken(); + } + + @Test + public void pollAiDraft_returnsDraft() throws Exception { + final User owner = this.seedUser(); + final MockMultipartFile sourceFile = new MockMultipartFile( + "sourceFile", + "recipe.jpeg", + MimeTypeUtils.IMAGE_JPEG_VALUE, + this.getClass().getResourceAsStream("/recipe.jpeg") + ); + final MvcResult multipartResult = this.mockMvc.perform( + multipart("/recipe-drafts/ai") + .file(sourceFile) + .param("sourceFileName", sourceFile.getOriginalFilename()) + .header("Authorization", "Bearer " + this.getAccessToken(owner)) + ) + .andExpect(status().isCreated()) + .andReturn(); + + final String rawContent = multipartResult.getResponse().getContentAsString(); + final RecipeDraftView recipeDraftView = this.objectMapper.readValue(rawContent, RecipeDraftView.class); + + await().atMost(60, TimeUnit.SECONDS).untilAsserted(() -> { + this.mockMvc.perform( + get("/recipe-drafts/{id}", recipeDraftView.id()) + .header("Authorization", "Bearer " + this.getAccessToken(owner)) + ) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.state", is(RecipeDraft.State.ENTER_DATA.toString()))); + }); + } +} diff --git a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/job/RecipeInferJobIntegrationTests.java b/src/aiIntegrationTest/java/app/mealsmadeeasy/api/recipe/job/RecipeInferJobAiIntegrationTests.java similarity index 73% rename from src/integrationTest/java/app/mealsmadeeasy/api/recipe/job/RecipeInferJobIntegrationTests.java rename to src/aiIntegrationTest/java/app/mealsmadeeasy/api/recipe/job/RecipeInferJobAiIntegrationTests.java index 71d580b..6cc2260 100644 --- a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/job/RecipeInferJobIntegrationTests.java +++ b/src/aiIntegrationTest/java/app/mealsmadeeasy/api/recipe/job/RecipeInferJobAiIntegrationTests.java @@ -1,6 +1,7 @@ package app.mealsmadeeasy.api.recipe.job; -import app.mealsmadeeasy.api.IntegrationTestsExtension; +import app.mealsmadeeasy.api.MinIOTestsExtension; +import app.mealsmadeeasy.api.PostgresTestsExtension; import app.mealsmadeeasy.api.file.File; import app.mealsmadeeasy.api.file.FileService; import app.mealsmadeeasy.api.recipe.RecipeDraft; @@ -12,10 +13,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.MinIOContainer; -import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import java.io.IOException; @@ -29,19 +26,9 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; @SpringBootTest -@ExtendWith(IntegrationTestsExtension.class) +@ExtendWith({ PostgresTestsExtension.class, MinIOTestsExtension.class }) @Testcontainers -public class RecipeInferJobIntegrationTests { - - @Container - private static final MinIOContainer minioContainer = new MinIOContainer("minio/minio:latest"); - - @DynamicPropertySource - public static void minioProperties(DynamicPropertyRegistry registry) { - registry.add("app.mealsmadeeasy.api.minio.endpoint", minioContainer::getS3URL); - registry.add("app.mealsmadeeasy.api.minio.accessKey", minioContainer::getUserName); - registry.add("app.mealsmadeeasy.api.minio.secretKey", minioContainer::getPassword); - } +public class RecipeInferJobAiIntegrationTests { @Autowired private UserService userService; @@ -61,7 +48,7 @@ public class RecipeInferJobIntegrationTests { "test-pass" ); final File sourceFile = this.fileService.create( - RecipeInferJobIntegrationTests.class.getResourceAsStream("recipe.jpeg"), + this.getClass().getResourceAsStream("/recipe.jpeg"), "recipe.jpeg", 127673L, owner diff --git a/src/aiIntegrationTest/resources/application.properties b/src/aiIntegrationTest/resources/application.properties new file mode 100644 index 0000000..1341b82 --- /dev/null +++ b/src/aiIntegrationTest/resources/application.properties @@ -0,0 +1,15 @@ +app.mealsmadeeasy.api.baseUrl=http://localhost:8080 +app.mealsmadeeasy.api.security.access-token-lifetime=60 +app.mealsmadeeasy.api.security.refresh-token-lifetime=120 +app.mealsmadeeasy.api.minio.endpoint=http://localhost:9000 +app.mealsmadeeasy.api.minio.accessKey=minio-root +app.mealsmadeeasy.api.minio.secretKey=test0123 +app.mealsmadeeasy.api.images.bucketName=images +app.mealsmadeeasy.api.files.bucketName=files + +# Source - https://stackoverflow.com/questions/3164072/large-objects-may-not-be-used-in-auto-commit-mode +# Posted by Iogui, modified by community. See post 'Timeline' for change history +# Retrieved 2025-12-25, License - CC BY-SA 4.0 +spring.datasource.hikari.auto-commit=false + +logging.level.app.mealsmadeeasy.api=debug \ No newline at end of file diff --git a/src/aiIntegrationTest/resources/recipe.jpeg b/src/aiIntegrationTest/resources/recipe.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..fa6b65fd5d8fd4385854ecc0b032166b71f1295c GIT binary patch literal 127673 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%0AJM~?elQ6L+`kX#w+-HV)h^}S7Afng1-|Ajbx9Ij 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
    nD8g1Jmdi9%8gi7{5zt$)2vn3 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

    IN}o=EAwmyN?=<9Ff$ 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 pYs*cqzF-Ng)sNe$b8+5&N { - this.mockMvc.perform( - get("/recipe-drafts/{id}", recipeDraftView.id()) - .header("Authorization", "Bearer " + this.getAccessToken(owner)) - ) - .andExpect(status().isOk()) - .andExpect(jsonPath("$.state", is(RecipeDraft.State.ENTER_DATA.toString()))); - }); - } - @Test public void whenUpdate_returnsUpdated() throws Exception { final User owner = this.seedUser(); diff --git a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipeRepositoryTests.java b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipeRepositoryTests.java index 7ac9a14..26ecf77 100644 --- a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipeRepositoryTests.java +++ b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipeRepositoryTests.java @@ -1,6 +1,6 @@ package app.mealsmadeeasy.api.recipe; -import app.mealsmadeeasy.api.IntegrationTestsExtension; +import app.mealsmadeeasy.api.PostgresTestsExtension; import app.mealsmadeeasy.api.user.User; import app.mealsmadeeasy.api.user.UserRepository; import org.junit.jupiter.api.Test; @@ -18,7 +18,7 @@ import java.util.UUID; import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest -@ExtendWith(IntegrationTestsExtension.class) +@ExtendWith(PostgresTestsExtension.class) public class RecipeRepositoryTests { @Autowired diff --git a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipeServiceTests.java b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipeServiceTests.java index a476f21..d00f6e4 100644 --- a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipeServiceTests.java +++ b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipeServiceTests.java @@ -1,6 +1,6 @@ package app.mealsmadeeasy.api.recipe; -import app.mealsmadeeasy.api.IntegrationTestsExtension; +import app.mealsmadeeasy.api.PostgresTestsExtension; import app.mealsmadeeasy.api.recipe.spec.RecipeCreateSpec; import app.mealsmadeeasy.api.recipe.spec.RecipeUpdateSpec; import app.mealsmadeeasy.api.recipe.star.RecipeStar; @@ -29,7 +29,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; // TODO: test mainImage included // TODO: test prep/cooking/total times included @SpringBootTest -@ExtendWith(IntegrationTestsExtension.class) +@ExtendWith(PostgresTestsExtension.class) public class RecipeServiceTests { @Autowired diff --git a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipesControllerTests.java b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipesControllerTests.java index 9c5521c..aee17ae 100644 --- a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipesControllerTests.java +++ b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/RecipesControllerTests.java @@ -1,6 +1,6 @@ package app.mealsmadeeasy.api.recipe; -import app.mealsmadeeasy.api.IntegrationTestsExtension; +import app.mealsmadeeasy.api.PostgresTestsExtension; import app.mealsmadeeasy.api.auth.AuthService; import app.mealsmadeeasy.api.auth.LoginDetails; import app.mealsmadeeasy.api.auth.LoginException; @@ -22,13 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; -import org.springframework.test.context.DynamicPropertyRegistry; -import org.springframework.test.context.DynamicPropertySource; import org.springframework.test.web.servlet.MockMvc; -import org.testcontainers.containers.MinIOContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; import java.io.InputStream; import java.util.UUID; @@ -38,24 +32,11 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -@Testcontainers @SpringBootTest @AutoConfigureMockMvc -@ExtendWith(IntegrationTestsExtension.class) +@ExtendWith(PostgresTestsExtension.class) public class RecipesControllerTests { - @Container - private static final MinIOContainer container = new MinIOContainer( - DockerImageName.parse("minio/minio:latest") - ); - - @DynamicPropertySource - public static void minioProperties(DynamicPropertyRegistry registry) { - registry.add("app.mealsmadeeasy.api.minio.endpoint", container::getS3URL); - registry.add("app.mealsmadeeasy.api.minio.accessKey", container::getUserName); - registry.add("app.mealsmadeeasy.api.minio.secretKey", container::getPassword); - } - private static InputStream getHal9000() { return S3ImageServiceTests.class.getClassLoader().getResourceAsStream("HAL9000.svg"); } diff --git a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/star/RecipeStarRepositoryTests.java b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/star/RecipeStarRepositoryTests.java index e6ff4bc..87783a8 100644 --- a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/star/RecipeStarRepositoryTests.java +++ b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/star/RecipeStarRepositoryTests.java @@ -1,6 +1,6 @@ package app.mealsmadeeasy.api.recipe.star; -import app.mealsmadeeasy.api.IntegrationTestsExtension; +import app.mealsmadeeasy.api.PostgresTestsExtension; import app.mealsmadeeasy.api.recipe.Recipe; import app.mealsmadeeasy.api.recipe.RecipeRepository; import app.mealsmadeeasy.api.user.User; @@ -17,7 +17,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; @SpringBootTest -@ExtendWith(IntegrationTestsExtension.class) +@ExtendWith(PostgresTestsExtension.class) public class RecipeStarRepositoryTests { @Autowired diff --git a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/star/RecipeStarServiceTests.java b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/star/RecipeStarServiceTests.java index 5361664..7325650 100644 --- a/src/integrationTest/java/app/mealsmadeeasy/api/recipe/star/RecipeStarServiceTests.java +++ b/src/integrationTest/java/app/mealsmadeeasy/api/recipe/star/RecipeStarServiceTests.java @@ -1,6 +1,6 @@ package app.mealsmadeeasy.api.recipe.star; -import app.mealsmadeeasy.api.IntegrationTestsExtension; +import app.mealsmadeeasy.api.PostgresTestsExtension; import app.mealsmadeeasy.api.recipe.Recipe; import app.mealsmadeeasy.api.recipe.RecipeService; import app.mealsmadeeasy.api.recipe.spec.RecipeCreateSpec; @@ -21,7 +21,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; @SpringBootTest -@ExtendWith(IntegrationTestsExtension.class) +@ExtendWith(PostgresTestsExtension.class) public class RecipeStarServiceTests { @Autowired diff --git a/src/integrationTest/java/app/mealsmadeeasy/api/s3/MinioS3ManagerTests.java b/src/integrationTest/java/app/mealsmadeeasy/api/s3/MinioS3ManagerTests.java index 8dcbc5c..e04e92e 100644 --- a/src/integrationTest/java/app/mealsmadeeasy/api/s3/MinioS3ManagerTests.java +++ b/src/integrationTest/java/app/mealsmadeeasy/api/s3/MinioS3ManagerTests.java @@ -1,30 +1,26 @@ package app.mealsmadeeasy.api.s3; +import app.mealsmadeeasy.api.MinIOTestsExtension; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.testcontainers.containers.MinIOContainer; -import org.testcontainers.junit.jupiter.Container; -import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.utility.DockerImageName; import java.io.IOException; import java.io.InputStream; import static org.junit.jupiter.api.Assertions.assertEquals; -@Testcontainers public class MinioS3ManagerTests { - @Container - private static final MinIOContainer container = new MinIOContainer( - DockerImageName.parse("minio/minio:latest") - ); + @RegisterExtension + public static final MinIOTestsExtension minioTestsExtension = new MinIOTestsExtension(); - private MinioS3Manager s3Manager; + private final MinioS3Manager s3Manager = new MinioS3Manager(); @BeforeEach - public void beforeEach() { - this.s3Manager = new MinioS3Manager(); + public void setup() { + final MinIOContainer container = minioTestsExtension.getContainer(); this.s3Manager.setEndpoint(container.getS3URL()); this.s3Manager.setAccessKey(container.getUserName()); this.s3Manager.setSecretKey(container.getPassword()); diff --git a/src/integrationTest/java/app/mealsmadeeasy/api/signup/SignUpControllerTests.java b/src/integrationTest/java/app/mealsmadeeasy/api/signup/SignUpControllerTests.java index a4dead1..abc09bc 100644 --- a/src/integrationTest/java/app/mealsmadeeasy/api/signup/SignUpControllerTests.java +++ b/src/integrationTest/java/app/mealsmadeeasy/api/signup/SignUpControllerTests.java @@ -1,6 +1,6 @@ package app.mealsmadeeasy.api.signup; -import app.mealsmadeeasy.api.IntegrationTestsExtension; +import app.mealsmadeeasy.api.PostgresTestsExtension; import app.mealsmadeeasy.api.user.UserCreateException.Type; import app.mealsmadeeasy.api.user.UserService; import com.fasterxml.jackson.core.JsonProcessingException; @@ -25,7 +25,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @SpringBootTest @AutoConfigureMockMvc -@ExtendWith(IntegrationTestsExtension.class) +@ExtendWith(PostgresTestsExtension.class) public class SignUpControllerTests { @Autowired diff --git a/src/testFixtures/java/app/mealsmadeeasy/api/MinIOTestsExtension.java b/src/testFixtures/java/app/mealsmadeeasy/api/MinIOTestsExtension.java new file mode 100644 index 0000000..f9d4361 --- /dev/null +++ b/src/testFixtures/java/app/mealsmadeeasy/api/MinIOTestsExtension.java @@ -0,0 +1,23 @@ +package app.mealsmadeeasy.api; + +import org.junit.jupiter.api.extension.BeforeAllCallback; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.testcontainers.containers.MinIOContainer; + +public class MinIOTestsExtension implements BeforeAllCallback { + + private final MinIOContainer container = new MinIOContainer("minio/minio:latest"); + + @Override + public void beforeAll(ExtensionContext context) { + this.container.start(); + System.setProperty("app.mealsmadeeasy.api.minio.endpoint", this.container.getS3URL()); + System.setProperty("app.mealsmadeeasy.api.minio.accessKey", this.container.getUserName()); + System.setProperty("app.mealsmadeeasy.api.minio.secretKey", this.container.getPassword()); + } + + public MinIOContainer getContainer() { + return this.container; + } + +} diff --git a/src/integrationTest/java/app/mealsmadeeasy/api/IntegrationTestsExtension.java b/src/testFixtures/java/app/mealsmadeeasy/api/PostgresTestsExtension.java similarity index 87% rename from src/integrationTest/java/app/mealsmadeeasy/api/IntegrationTestsExtension.java rename to src/testFixtures/java/app/mealsmadeeasy/api/PostgresTestsExtension.java index c8751c0..5db8130 100644 --- a/src/integrationTest/java/app/mealsmadeeasy/api/IntegrationTestsExtension.java +++ b/src/testFixtures/java/app/mealsmadeeasy/api/PostgresTestsExtension.java @@ -4,10 +4,11 @@ import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.ExtensionContext; import org.testcontainers.containers.PostgreSQLContainer; -public class IntegrationTestsExtension implements BeforeAllCallback { +public class PostgresTestsExtension implements BeforeAllCallback { @Override public void beforeAll(ExtensionContext context) { + @SuppressWarnings("resource") final PostgreSQLContainer postgres = new PostgreSQLContainer<>("pgvector/pgvector:pg18-trixie") .withDatabaseName("meals_made_easy_api"); postgres.start();