Skip to content

Commit

Permalink
Merge pull request #43 from Stumeet/dev
Browse files Browse the repository at this point in the history
🐛 [STMT-146] 테스트 컨테이너가 실행되지 않아 Redis 관련 테스트가 실패하는 버그 수정 (#42)
  • Loading branch information
zxcv9203 authored Feb 27, 2024
2 parents 8d03584 + c0fb9f8 commit a0d0d00
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 27 deletions.
17 changes: 14 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,8 @@ dependencies {
// jwt 의존성 추가
implementation 'io.jsonwebtoken:jjwt-api:0.12.5'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
testImplementation 'org.testcontainers:junit-jupiter'
testImplementation 'org.springframework.boot:spring-boot-testcontainers'
testImplementation 'org.testcontainers:mysql'
testImplementation "org.testcontainers:junit-jupiter"
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.5'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.5'
Expand Down Expand Up @@ -95,6 +94,10 @@ tasks.register('copyDocs', Copy) {
into 'src/main/resources/static/docs'
}

tasks.named('jib') {
dependsOn(asciidoctor)
}

jib {
from {
image = "eclipse-temurin:21"
Expand All @@ -106,7 +109,15 @@ jib {
container {
jvmFlags = ["-Xms128m", "-Xmx128m"]
environment = [
'SPRING_PROFILES_ACTIVE': 'prod'
'SPRING_PROFILES_ACTIVE': 'prod'
]
}
extraDirectories {
paths {
path {
from = "build/docs/asciidoc"
into = "/app/main/resources/static/docs"
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,9 @@
import com.stumeet.server.member.domain.OAuthProvider;
import com.stumeet.server.stub.MemberStub;
import com.stumeet.server.template.ApiTest;
import com.stumeet.server.template.RedisTestConfig;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.Import;
import org.springframework.http.HttpStatus;
import org.springframework.restdocs.payload.JsonFieldType;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -27,7 +25,6 @@
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@WireMockTest(httpPort = 8089)
@Import(RedisTestConfig.class)
@Transactional
class OAuthAuthenticationFilterTest extends ApiTest {

Expand Down
18 changes: 18 additions & 0 deletions src/test/java/com/stumeet/server/template/ApiTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,24 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.testcontainers.service.connection.ServiceConnection;
import org.springframework.restdocs.RestDocumentationContextProvider;
import org.springframework.restdocs.RestDocumentationExtension;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.DynamicPropertyRegistry;
import org.springframework.test.context.DynamicPropertySource;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
import org.testcontainers.utility.DockerImageName;

import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration;
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
Expand All @@ -21,15 +29,25 @@
@SpringBootTest
@ExtendWith(RestDocumentationExtension.class)
@ActiveProfiles("test")
@Testcontainers
public abstract class ApiTest {

private static final DockerImageName REDIS_CONTAINER_VERSION = DockerImageName.parse("redis:5.0.3-alpine");

protected MockMvc mockMvc;

@Autowired
protected ObjectMapper objectMapper;

@Container
@ServiceConnection
private static GenericContainer<?> REDIS_CONTAINER = new GenericContainer<>(REDIS_CONTAINER_VERSION)
.withExposedPorts(6379)
.withReuse(true);

@BeforeEach
void setUpMockMvc(WebApplicationContext context, RestDocumentationContextProvider provider) {

this.mockMvc = MockMvcBuilders.webAppContextSetup(context)
.addFilter(new CharacterEncodingFilter("UTF-8", true))
.apply(documentationConfiguration(provider))
Expand Down
21 changes: 0 additions & 21 deletions src/test/java/com/stumeet/server/template/RedisTestConfig.java

This file was deleted.

0 comments on commit a0d0d00

Please sign in to comment.