Add env test

This commit is contained in:
2025-12-02 16:45:56 +01:00
parent 8b7bf1ecde
commit 60f04f1aa8
5 changed files with 81 additions and 3 deletions

View File

@@ -19,7 +19,10 @@ 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;
@SpringBootTest
@SpringBootTest(properties = {
"spring.security.oauth2.client.registration.twitch.client-id=test-client-id",
"spring.security.oauth2.client.registration.twitch.client-secret=test-client-secret"
})
@AutoConfigureMockMvc
class ChannelApiIntegrationTest {

View File

@@ -0,0 +1,40 @@
package com.imgfloat.app;
import com.imgfloat.app.config.TwitchCredentialsValidator;
import org.junit.jupiter.api.Test;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ConfigurableApplicationContext;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
class TwitchEnvironmentValidationTest {
@Test
void failsToStartWhenTwitchCredentialsMissing() {
assertThatThrownBy(() -> new SpringApplicationBuilder(ImgfloatApplication.class)
.properties("server.port=0")
.run())
.hasRootCauseInstanceOf(IllegalArgumentException.class)
.hasRootCauseMessage("Could not resolve placeholder 'TWITCH_CLIENT_ID' in value \"${TWITCH_CLIENT_ID}\"");
}
@Test
void loadsCredentialsFromDotEnvFile() {
ConfigurableApplicationContext context = null;
try {
context = new SpringApplicationBuilder(ImgfloatApplication.class)
.properties(
"server.port=0",
"spring.config.import=optional:file:src/test/resources/valid.env[.properties]")
.run();
ConfigurableApplicationContext finalContext = context;
assertThatCode(() -> finalContext.getBean(TwitchCredentialsValidator.class))
.doesNotThrowAnyException();
} finally {
if (context != null) {
context.close();
}
}
}
}

View File

@@ -0,0 +1,2 @@
TWITCH_CLIENT_ID=test-client-id
TWITCH_CLIENT_SECRET=test-client-secret