Skip to content

Commit 027304c

Browse files
authored
feat: 조직문서 수정시 히스토리 저장 (#134)
1 parent 47ee6ee commit 027304c

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/main/java/com/wooteco/wiki/organizationdocument/service/OrganizationDocumentService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.wooteco.wiki.document.repository.DocumentRepository;
88
import com.wooteco.wiki.global.exception.ErrorCode;
99
import com.wooteco.wiki.global.exception.WikiException;
10+
import com.wooteco.wiki.history.service.HistoryService;
1011
import com.wooteco.wiki.organizationdocument.domain.OrganizationDocument;
1112
import com.wooteco.wiki.organizationdocument.dto.request.OrganizationDocumentCreateRequest;
1213
import com.wooteco.wiki.organizationdocument.dto.request.OrganizationDocumentUpdateRequest;
@@ -32,6 +33,7 @@ public class OrganizationDocumentService {
3233
private final DocumentRepository documentRepository;
3334
private final DocumentOrganizationLinkService documentOrganizationLinkService;
3435
private final CrewDocumentRepository crewDocumentRepository;
36+
private final HistoryService historyService;
3537

3638
public OrganizationDocumentResponse create(OrganizationDocumentCreateRequest organizationDocumentCreateRequest) {
3739
if (documentRepository.existsByTitle(organizationDocumentCreateRequest.title())) {
@@ -56,6 +58,7 @@ public OrganizationDocumentResponse update(OrganizationDocumentUpdateRequest org
5658
organizationDocumentUpdateRequest.documentBytes(),
5759
LocalDateTime.now()
5860
);
61+
historyService.save(organizationDocument);
5962
return new OrganizationDocumentResponse(organizationDocument);
6063
}
6164

src/test/java/com/wooteco/wiki/organizationdocument/service/OrganizationCrewDocumentServiceTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import com.wooteco.wiki.global.exception.ErrorCode;
77
import com.wooteco.wiki.global.exception.WikiException;
8+
import com.wooteco.wiki.history.domain.History;
9+
import com.wooteco.wiki.history.repository.HistoryRepository;
810
import com.wooteco.wiki.organizationdocument.domain.OrganizationDocument;
911
import com.wooteco.wiki.organizationdocument.dto.request.OrganizationDocumentCreateRequest;
1012
import com.wooteco.wiki.organizationdocument.dto.request.OrganizationDocumentUpdateRequest;
@@ -14,13 +16,16 @@
1416
import com.wooteco.wiki.organizationevent.domain.OrganizationEvent;
1517
import com.wooteco.wiki.organizationevent.fixture.OrganizationEventFixture;
1618
import com.wooteco.wiki.organizationevent.repository.OrganizationEventRepository;
19+
import java.util.List;
1720
import java.util.UUID;
1821
import org.assertj.core.api.Assertions;
1922
import org.junit.jupiter.api.DisplayName;
2023
import org.junit.jupiter.api.Nested;
2124
import org.junit.jupiter.api.Test;
2225
import org.springframework.beans.factory.annotation.Autowired;
2326
import org.springframework.boot.test.context.SpringBootTest;
27+
import org.springframework.data.domain.Page;
28+
import org.springframework.data.domain.Pageable;
2429
import org.springframework.test.annotation.DirtiesContext;
2530

2631
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
@@ -36,6 +41,9 @@ class OrganizationCrewDocumentServiceTest {
3641
@Autowired
3742
private OrganizationEventRepository organizationEventRepository;
3843

44+
@Autowired
45+
private HistoryRepository historyRepository;
46+
3947
@DisplayName("조직 문서를 수정할 때")
4048
@Nested
4149
class Update {
@@ -61,11 +69,20 @@ void updateOrganizationDocument_success_byValidData() {
6169
organizationDocument.getUuid()).orElseThrow();
6270

6371
// then
72+
Page<History> histories = historyRepository.findAllByDocumentId(organizationDocument.getId(), Pageable.ofSize(1));
73+
6474
assertSoftly(softly -> {
6575
softly.assertThat(foundOrganizationDocument.getTitle()).isEqualTo(updateTitle);
6676
softly.assertThat(foundOrganizationDocument.getContents()).isEqualTo(updateContents);
6777
softly.assertThat(foundOrganizationDocument.getWriter()).isEqualTo(updateWriter);
6878
softly.assertThat(foundOrganizationDocument.getDocumentBytes()).isEqualTo(updateDocumentBytes);
79+
softly.assertThat(histories.hasContent()).isTrue();
80+
81+
History first = histories.getContent().get(0);
82+
softly.assertThat(first.getTitle()).isEqualTo(updateTitle);
83+
softly.assertThat(first.getContents()).isEqualTo(updateContents);
84+
softly.assertThat(first.getWriter()).isEqualTo(updateWriter);
85+
softly.assertThat(first.getDocumentBytes()).isEqualTo(updateDocumentBytes);
6986
});
7087
}
7188
}

0 commit comments

Comments
 (0)