diff --git a/backend/src/main/java/kr/touroot/travelogue/service/TravelogueService.java b/backend/src/main/java/kr/touroot/travelogue/service/TravelogueService.java index bc74a7b6..c6c4ad5b 100644 --- a/backend/src/main/java/kr/touroot/travelogue/service/TravelogueService.java +++ b/backend/src/main/java/kr/touroot/travelogue/service/TravelogueService.java @@ -6,9 +6,9 @@ import kr.touroot.member.domain.Member; import kr.touroot.travelogue.domain.Travelogue; import kr.touroot.travelogue.domain.TravelogueFilterCondition; -import kr.touroot.travelogue.dto.request.TravelogueRequest; import kr.touroot.travelogue.domain.search.SearchCondition; import kr.touroot.travelogue.domain.search.SearchType; +import kr.touroot.travelogue.dto.request.TravelogueRequest; import kr.touroot.travelogue.dto.request.TravelogueSearchRequest; import kr.touroot.travelogue.repository.TravelogueRepository; import kr.touroot.travelogue.repository.query.TravelogueQueryRepository; @@ -68,7 +68,8 @@ public Travelogue update(Long id, Member author, TravelogueRequest request) { .orElseThrow(() -> new BadRequestException("존재하지 않는 여행기입니다.")); validateAuthor(travelogue, author); - travelogue.update(request.title(), request.thumbnail()); + String url = s3Provider.copyImageToPermanentStorage(request.thumbnail()); + travelogue.update(request.title(), url); return travelogueRepository.save(travelogue); } diff --git a/backend/src/test/java/kr/touroot/travelogue/controller/TravelogueControllerTest.java b/backend/src/test/java/kr/touroot/travelogue/controller/TravelogueControllerTest.java index 3ca3c77f..673f007e 100644 --- a/backend/src/test/java/kr/touroot/travelogue/controller/TravelogueControllerTest.java +++ b/backend/src/test/java/kr/touroot/travelogue/controller/TravelogueControllerTest.java @@ -449,6 +449,9 @@ void findTraveloguesByKeywordWithoutSearchType() { @DisplayName("여행기를 수정한다.") @Test void updateTravelogue() throws JsonProcessingException { + Mockito.when(s3Provider.copyImageToPermanentStorage(any(String.class))) + .thenReturn(TravelogueResponseFixture.getUpdatedTravelogueResponse().thumbnail()); + Travelogue travelogue = testHelper.initTravelogueTestData(member); List days = getUpdateTravelogueDayRequests(); diff --git a/backend/src/test/java/kr/touroot/travelogue/service/TravelogueFacadeServiceTest.java b/backend/src/test/java/kr/touroot/travelogue/service/TravelogueFacadeServiceTest.java index 5ca9328f..7c32c137 100644 --- a/backend/src/test/java/kr/touroot/travelogue/service/TravelogueFacadeServiceTest.java +++ b/backend/src/test/java/kr/touroot/travelogue/service/TravelogueFacadeServiceTest.java @@ -2,6 +2,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; import java.util.List; @@ -30,6 +31,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Import; @@ -204,6 +206,9 @@ void findTraveloguesByAuthorNicknameKeyword() { @DisplayName("여행기를 수정할 수 있다.") @Test void updateTravelogue() { + Mockito.when(s3Provider.copyImageToPermanentStorage(any(String.class))) + .thenReturn(TravelogueResponseFixture.getUpdatedTravelogueResponse().thumbnail()); + List days = getUpdateTravelogueDayRequests(); saveImages(days);