Skip to content

Commit

Permalink
Feature/#413 rest docs를 쉽게 작성할 수 있도록 한다 (#431)
Browse files Browse the repository at this point in the history
* feat: KEEPER-RestDocs 1차 구현

* feat: keeper-restDocs 2차 구현

* fest: keeper-restDocs 1차 테스트

* feat: 코틀린 DSL을 활용한 Spring Rest Docs 1차 구현

* fix: NPE 발생하는 문제 해결

* feat: KEEPER-RestDocs 페이징 기능 추가

* fix: GET 메서드 뿐만 아니라 다른 메서드도 사용할 수 있도록 수정

* fix: Documentation 어노테이션을 활용해 documentName을 작성하도록 수정

* feat: content 기능 추가 및 isOptional 기능 구현

* feat: pathParameter 기능 추가

* feat: Rest Docs 클래스 분리

* feat: DocsRequestBuilder 구현

* feat: DocsResponseBuilder 구현

* feat: KEEPER Rest Docs DSL 3차 구현 완료

* fix: Path 파라미터를 넣을 수 있도록 수정

* feat: 페이지네이션 기능 추가

* feat: Path 파라미터 기능 추가

* feat: param 기능 추가 구현

* test: 기존 Spring Rest Docs 코드를 KEEPER Spring Rest Docs 코드로 수정

* chore: 파일 구조 변경

* fix: 페이지네이션을 사용하는 경우 content[] 스트링을 적지 않도록 수정

* chore: 페이지네이션 테스트 코드에서 content[]. String 제거

* fix: util 클래스 삭제

* test: 기존의 MeritControllerTest 코드를 KEEPER DSL로 변환

* chore: 주석 제거

* chore: 테스트 Spring Rest Docs 삭제
  • Loading branch information
02ggang9 authored Mar 25, 2024
1 parent 4f2b852 commit ab476ba
Show file tree
Hide file tree
Showing 13 changed files with 792 additions and 43 deletions.
4 changes: 3 additions & 1 deletion src/test/java/com/keeper/homepage/IntegrationTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,9 @@ protected void setUpAll(RestDocumentationContextProvider restDocumentationContex
.apply(documentationConfiguration(restDocumentationContextProvider)
.operationPreprocessors()
.withRequestDefaults(
modifyUris().scheme("https").host("docs.api.com").removePort(), prettyPrint())
modifyUris().scheme("https")
.host("docs.api.com")
.removePort(), prettyPrint())
.withResponseDefaults(prettyPrint())
)
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,22 +195,30 @@ void setUp() throws IOException {
String securedValue = getSecuredValue(MeritController.class, "findMeritLogByMemberId");
meritLogTestHelper.builder()
.memberId(member.getId())
.meritType(meritTypeHelper.builder().merit(3).build())
.meritType(meritTypeHelper.builder()
.merit(3)
.build())
.build();

meritLogTestHelper.builder()
.memberId(member.getId())
.meritType(meritTypeHelper.builder().merit(2).build())
.meritType(meritTypeHelper.builder()
.merit(2)
.build())
.build();

meritLogTestHelper.builder()
.memberId(member.getId())
.meritType(meritTypeHelper.builder().merit(-1).build())
.meritType(meritTypeHelper.builder()
.merit(-1)
.build())
.build();

meritLogTestHelper.builder()
.memberId(member.getId())
.meritType(meritTypeHelper.builder().merit(-3).build())
.meritType(meritTypeHelper.builder()
.merit(-3)
.build())
.build();

mockMvc.perform(
Expand All @@ -234,7 +242,9 @@ void setUp() throws IOException {
@Test
@DisplayName("일반회원은 회원별 상벌점 목록 조회를 할 수 없다.")
void 일반회원은_회원별_상벌점_목록_조회를_할_수_없다() throws Exception {
meritLogTestHelper.builder().memberId(member.getId()).build();
meritLogTestHelper.builder()
.memberId(member.getId())
.build();

mockMvc.perform(
get("/merits/members/{memberId}", member.getId())
Expand Down Expand Up @@ -277,40 +287,52 @@ void setUp() throws IOException {
@DisplayName("벌점 목록 조회를 성공해야 한다.")
void 벌점_목록_조회를_성공해야_한다() throws Exception {
meritLogTestHelper.builder()
.memberId(member.getId())
.meritType(meritTypeHelper.builder().merit(3).isMerit(true).build())
.build();
.memberId(member.getId())
.meritType(meritTypeHelper.builder()
.merit(3)
.isMerit(true)
.build())
.build();

meritLogTestHelper.builder()
.memberId(member.getId())
.meritType(meritTypeHelper.builder().merit(-3).isMerit(false).build())
.build();
.memberId(member.getId())
.meritType(meritTypeHelper.builder()
.merit(-3)
.isMerit(false)
.build())
.build();

mockMvc.perform(get("/merits")
.param("meritType", "DEMERIT")
.cookie(new Cookie(ACCESS_TOKEN.getTokenName(), adminAccessToken)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.content[0].isMerit").value("false"));
.param("meritType", "DEMERIT")
.cookie(new Cookie(ACCESS_TOKEN.getTokenName(), adminAccessToken)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.content[0].isMerit").value("false"));
}

@Test
@DisplayName("상점 목록 조회를 성공해야 한다.")
void 상점_목록_조회를_성공해야_한다() throws Exception {
meritLogTestHelper.builder()
.memberId(member.getId())
.meritType(meritTypeHelper.builder().merit(-3).isMerit(false).build())
.build();
.memberId(member.getId())
.meritType(meritTypeHelper.builder()
.merit(-3)
.isMerit(false)
.build())
.build();

meritLogTestHelper.builder()
.memberId(member.getId())
.meritType(meritTypeHelper.builder().merit(3).isMerit(true).build())
.build();
.memberId(member.getId())
.meritType(meritTypeHelper.builder()
.merit(3)
.isMerit(true)
.build())
.build();

mockMvc.perform(get("/merits")
.param("meritType", "MERIT")
.cookie(new Cookie(ACCESS_TOKEN.getTokenName(), adminAccessToken)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.content[0].isMerit").value("true"));
.param("meritType", "MERIT")
.cookie(new Cookie(ACCESS_TOKEN.getTokenName(), adminAccessToken)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.content[0].isMerit").value("true"));
}

@Test
Expand Down Expand Up @@ -340,7 +362,7 @@ void setUp() throws IOException {

@Test
@DisplayName("일반회원은 상벌점 부여 로그를 생성할 수 없다.")
void 일반회원은_상벌점_부여_로그를_생성할_수_없다() throws Exception {
void 일반회원은_상벌점_부여_로그를_생성할_수_없다() throws Exception { // o
GiveMeritPointRequest request = GiveMeritPointRequest.builder()
.awarderId(member.getId())
.meritTypeId(meritType.getId())
Expand All @@ -361,8 +383,12 @@ class GetAllTotalMeritLogsTest {

@BeforeEach
void setUp() {
meritType = meritTypeHelper.builder().merit(5).build();
demeritType = meritTypeHelper.builder().merit(-3).build();
meritType = meritTypeHelper.builder()
.merit(5)
.build();
demeritType = meritTypeHelper.builder()
.merit(-3)
.build();

meritLogTestHelper.builder()
.memberId(member.getId())
Expand Down Expand Up @@ -429,7 +455,8 @@ class DeleteMeritLogTest {

@BeforeEach
void setUp() {
meritLogId = meritLogTestHelper.generate().getId();
meritLogId = meritLogTestHelper.generate()
.getId();
}

@Test
Expand Down
Loading

0 comments on commit ab476ba

Please sign in to comment.