diff --git a/build.gradle b/build.gradle index 5fd267dc..fd7bb910 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ plugins { id 'java' id 'org.springframework.boot' version '3.3.1' id 'io.spring.dependency-management' version '1.1.5' + id 'org.asciidoctor.jvm.convert' version '4.0.2' } group = 'shop.kkeujeok' @@ -17,6 +18,7 @@ configurations { compileOnly { extendsFrom annotationProcessor } + asciidoctorExt } repositories { @@ -30,7 +32,7 @@ dependencies { compileOnly 'org.projectlombok:lombok' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '3.3.2' implementation 'org.springframework.boot:spring-boot-starter-web-services' - + // logback implementation 'com.github.napstr:logback-discord-appender:1.0.0' implementation 'com.github.maricn:logback-slack-appender:1.4.0' @@ -53,8 +55,33 @@ dependencies { annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" + // restdocs + asciidoctorExt 'org.springframework.restdocs:spring-restdocs-asciidoctor:3.0.1' + testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc:3.0.1' + +} +ext { + snippetsDir = file('build/generated-snippets') +} + +test { + outputs.dir snippetsDir +} + +asciidoctor { + inputs.dir snippetsDir + configurations 'asciidoctorExt' + dependsOn test + baseDirFollowsSourceFile() +} + +bootJar { + dependsOn asciidoctor + from("${asciidoctor.outputDir}") { + into 'static/docs' + } } tasks.named('test') { useJUnitPlatform() -} +} \ No newline at end of file diff --git a/src/main/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/api/dto/response/TeamDashboardInfoResDto.java b/src/main/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/api/dto/response/TeamDashboardInfoResDto.java index cdf94b61..8d98ecd5 100644 --- a/src/main/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/api/dto/response/TeamDashboardInfoResDto.java +++ b/src/main/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/api/dto/response/TeamDashboardInfoResDto.java @@ -22,13 +22,16 @@ public static TeamDashboardInfoResDto of(Member member, TeamDashboard dashboard) } public static TeamDashboardInfoResDto detailOf(Member member, TeamDashboard dashboard, double blockProgress) { + List joinMemberInfoResDtos = new java.util.ArrayList<>(); + joinMemberInfoResDtos.add(JoinMemberInfoResDto.from(dashboard.getMember())); + + joinMemberInfoResDtos.addAll(dashboard.getTeamDashboardMemberMappings().stream() + .map(mapping -> JoinMemberInfoResDto.from(mapping.getMember())) + .toList()); + return commonBuilder(member, dashboard) .blockProgress(blockProgress) - .joinMembers(dashboard.getTeamDashboardMemberMappings().stream() - .map(teamDashboardMemberMapping -> { - return JoinMemberInfoResDto.from(teamDashboardMemberMapping.getMember()); - }) - .toList()) + .joinMembers(joinMemberInfoResDtos) .build(); } diff --git a/src/main/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/application/TeamDashboardService.java b/src/main/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/application/TeamDashboardService.java index 11e3e85b..3f6dd30b 100644 --- a/src/main/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/application/TeamDashboardService.java +++ b/src/main/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/application/TeamDashboardService.java @@ -9,7 +9,6 @@ import shop.kkeujeok.kkeujeokbackend.dashboard.exception.DashboardNotFoundException; import shop.kkeujeok.kkeujeokbackend.dashboard.exception.InvalidMemberInviteException; import shop.kkeujeok.kkeujeokbackend.dashboard.exception.UnauthorizedAccessException; -import shop.kkeujeok.kkeujeokbackend.dashboard.personal.domain.PersonalDashboard; import shop.kkeujeok.kkeujeokbackend.dashboard.personal.exception.DashboardAccessDeniedException; import shop.kkeujeok.kkeujeokbackend.dashboard.team.api.dto.request.TeamDashboardSaveReqDto; import shop.kkeujeok.kkeujeokbackend.dashboard.team.api.dto.request.TeamDashboardUpdateReqDto; @@ -30,6 +29,7 @@ public class TeamDashboardService { private static final String TEAM_DASHBOARD_JOIN_MESSAGE = "%s님이 %s 대시보드에 초대하였습니다."; + private static final String TEAM_JOIN_ACCEPT_MESSAGE = "%s님이 초대를 수락하였습니다."; private final TeamDashboardRepository teamDashboardRepository; @@ -133,6 +133,9 @@ public void joinTeam(String email, Long dashboardId) { .orElseThrow(DashboardNotFoundException::new); dashboard.addMember(member); + + String message = String.format(TEAM_JOIN_ACCEPT_MESSAGE, member.getEmail()); + notificationService.sendNotification(dashboard.getMember(), message); } @Transactional @@ -152,17 +155,21 @@ public SearchMemberListResDto searchMembers(String query) { private void inviteMember(Member member, TeamDashboard teamDashboard, List invitedEmails) { for (String email : invitedEmails) { - verifyIsSameEmail(member.getEmail(), email); + try { + verifyIsSameEmail(member.getEmail(), email); - Member inviteReceivedMember = memberRepository.findByEmail(email) - .orElseThrow(MemberNotFoundException::new); + Member inviteReceivedMember = memberRepository.findByEmail(email) + .orElseThrow(MemberNotFoundException::new); - String message = String.format(TEAM_DASHBOARD_JOIN_MESSAGE, member.getName(), - teamDashboard.getTitle()); - notificationService.sendNotification(inviteReceivedMember, message); + String message = String.format(TEAM_DASHBOARD_JOIN_MESSAGE, member.getName(), + teamDashboard.getTitle()); + notificationService.sendNotification(inviteReceivedMember, message); + } catch (MemberNotFoundException ignored) { + } } } + private void verifyIsSameEmail(String email, String otherEmail) { if (email.equals(otherEmail)) { throw new InvalidMemberInviteException(); diff --git a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/api/NotificationController.java b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/api/NotificationController.java index 5ca1fa70..a69686a8 100644 --- a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/api/NotificationController.java +++ b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/api/NotificationController.java @@ -4,14 +4,12 @@ import org.springframework.data.domain.PageRequest; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; import shop.kkeujeok.kkeujeokbackend.global.annotation.CurrentUserEmail; import shop.kkeujeok.kkeujeokbackend.global.template.RspTemplate; -import shop.kkeujeok.kkeujeokbackend.notification.api.dto.response.NotificationInfoResDto; import shop.kkeujeok.kkeujeokbackend.notification.api.dto.response.NotificationListResDto; import shop.kkeujeok.kkeujeokbackend.notification.application.NotificationService; @@ -35,10 +33,10 @@ public RspTemplate findAllNotifications(@CurrentUserEmai notificationService.findAllNotificationsFromMember(email, PageRequest.of(page, size))); } - @GetMapping("/{notificationId}") + /*@GetMapping("/{notificationId}") public RspTemplate findNotificationById( @PathVariable(name = "notificationId") Long notificationId) { return new RspTemplate<>(HttpStatus.OK, "알림 상세 조회 성공", notificationService.findByNotificationId(notificationId)); - } + }*/ } diff --git a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/api/dto/response/NotificationInfoResDto.java b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/api/dto/response/NotificationInfoResDto.java index 849013d2..dadf183a 100644 --- a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/api/dto/response/NotificationInfoResDto.java +++ b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/api/dto/response/NotificationInfoResDto.java @@ -10,11 +10,12 @@ public record NotificationInfoResDto( Boolean isRead ) { public static NotificationInfoResDto from(Notification notification) { + notification.markAsRead(); + return NotificationInfoResDto.builder() .id(notification.getId()) .message(notification.getMessage()) .isRead(notification.getIsRead()) .build(); } - } diff --git a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/application/NotificationService.java b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/application/NotificationService.java index 0d98cb99..1a51f65e 100644 --- a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/application/NotificationService.java +++ b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/application/NotificationService.java @@ -15,7 +15,6 @@ import shop.kkeujeok.kkeujeokbackend.notification.api.dto.response.NotificationListResDto; import shop.kkeujeok.kkeujeokbackend.notification.domain.Notification; import shop.kkeujeok.kkeujeokbackend.notification.domain.repository.NotificationRepository; -import shop.kkeujeok.kkeujeokbackend.notification.exception.NotificationNotFoundException; import shop.kkeujeok.kkeujeokbackend.notification.util.SseEmitterManager; @Service @@ -57,14 +56,14 @@ public NotificationListResDto findAllNotificationsFromMember(String email, Pagea return NotificationListResDto.of(notificationList, PageInfoResDto.from(notifications)); } - @Transactional + /*@Transactional public NotificationInfoResDto findByNotificationId(Long notificationId) { Notification notification = notificationRepository.findById(notificationId) .orElseThrow(NotificationNotFoundException::new); notification.markAsRead(); return NotificationInfoResDto.from(notification); - } + }*/ private Member findMemberByEmail(String email) { return memberRepository.findByEmail(email) diff --git a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/domain/repository/NotificationCustomRepositoryImpl.java b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/domain/repository/NotificationCustomRepositoryImpl.java index 39521295..663e63a2 100644 --- a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/domain/repository/NotificationCustomRepositoryImpl.java +++ b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/domain/repository/NotificationCustomRepositoryImpl.java @@ -24,22 +24,29 @@ public class NotificationCustomRepositoryImpl implements NotificationCustomRepos public Page findAllNotifications(Member member, Pageable pageable) { QNotification notification = QNotification.notification; - long total = Optional.ofNullable( + long total = getTotal(notification, member); + List notifications = getNotifications(notification, member, pageable); + + return new PageImpl<>(notifications, pageable, total); + } + + private long getTotal(QNotification notification, Member member) { + return Optional.ofNullable( queryFactory .select(notification.count()) .from(notification) .where(notification.receiver.eq(member)) .fetchOne() ).orElse(0L); + } - List notifications = queryFactory + private List getNotifications(QNotification notification, Member member, Pageable pageable) { + return queryFactory .selectFrom(notification) .where(notification.receiver.eq(member)) .orderBy(notification.createdAt.desc()) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); - - return new PageImpl<>(notifications, pageable, total); } } diff --git a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/util/SseEmitterManager.java b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/util/SseEmitterManager.java index 348a24c9..0e716589 100644 --- a/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/util/SseEmitterManager.java +++ b/src/main/java/shop/kkeujeok/kkeujeokbackend/notification/util/SseEmitterManager.java @@ -9,6 +9,8 @@ @Slf4j @Component public class SseEmitterManager { + private static final String EMITTER_NAME = "notification"; + private static final String DUMMY_MESSAGE = "연결 성공"; private final Map emitters = new ConcurrentHashMap<>(); @@ -20,6 +22,8 @@ public SseEmitter createEmitter(Long memberId) { emitter.onTimeout(() -> emitters.remove(memberId)); emitter.onError((e) -> emitters.remove(memberId)); + sendNotification(memberId, DUMMY_MESSAGE); + return emitter; } @@ -28,7 +32,8 @@ public void sendNotification(Long memberId, String message) { if (emitter != null) { try { - emitter.send(SseEmitter.event().name("notification").data(message)); + emitter.send(SseEmitter.event() + .data(message)); } catch (Exception e) { emitter.completeWithError(e); } diff --git a/src/test/java/shop/kkeujeok/kkeujeokbackend/auth/api/AuthControllerTest.java b/src/test/java/shop/kkeujeok/kkeujeokbackend/auth/api/AuthControllerTest.java index fd6551ab..cacafa18 100644 --- a/src/test/java/shop/kkeujeok/kkeujeokbackend/auth/api/AuthControllerTest.java +++ b/src/test/java/shop/kkeujeok/kkeujeokbackend/auth/api/AuthControllerTest.java @@ -1,14 +1,25 @@ package shop.kkeujeok.kkeujeokbackend.auth.api; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; +import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; +import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static shop.kkeujeok.kkeujeokbackend.global.restdocs.RestDocsHandler.requestFields; +import static shop.kkeujeok.kkeujeokbackend.global.restdocs.RestDocsHandler.responseFields; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; -import org.mockito.InjectMocks; import org.mockito.MockitoAnnotations; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.restdocs.RestDocumentationContextProvider; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; import shop.kkeujeok.kkeujeokbackend.auth.api.dto.request.RefreshTokenReqDto; import shop.kkeujeok.kkeujeokbackend.auth.api.dto.request.TokenReqDto; import shop.kkeujeok.kkeujeokbackend.auth.api.dto.response.MemberLoginResDto; @@ -18,22 +29,6 @@ import shop.kkeujeok.kkeujeokbackend.member.domain.Member; import shop.kkeujeok.kkeujeokbackend.member.domain.SocialType; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.BDDMockito.given; -import static org.springframework.restdocs.headers.HeaderDocumentation.headerWithName; -import static org.springframework.restdocs.headers.HeaderDocumentation.requestHeaders; -import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; -import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.*; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; -import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import static shop.kkeujeok.kkeujeokbackend.global.restdocs.RestDocsHandler.requestFields; -import static shop.kkeujeok.kkeujeokbackend.global.restdocs.RestDocsHandler.responseFields; - public class AuthControllerTest extends ControllerTest { private Member member; diff --git a/src/test/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/api/TeamDashboardControllerTest.java b/src/test/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/api/TeamDashboardControllerTest.java index 5cf567a0..8e076c49 100644 --- a/src/test/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/api/TeamDashboardControllerTest.java +++ b/src/test/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/api/TeamDashboardControllerTest.java @@ -18,13 +18,13 @@ import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath; +import static org.springframework.restdocs.payload.PayloadDocumentation.requestFields; +import static org.springframework.restdocs.payload.PayloadDocumentation.responseFields; import static org.springframework.restdocs.request.RequestDocumentation.parameterWithName; import static org.springframework.restdocs.request.RequestDocumentation.pathParameters; import static org.springframework.restdocs.request.RequestDocumentation.queryParameters; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -import static shop.kkeujeok.kkeujeokbackend.global.restdocs.RestDocsHandler.requestFields; -import static shop.kkeujeok.kkeujeokbackend.global.restdocs.RestDocsHandler.responseFields; import java.util.Collections; import java.util.List; diff --git a/src/test/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/application/TeamDashboardServiceTest.java b/src/test/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/application/TeamDashboardServiceTest.java index 9cc6716b..35c0b859 100644 --- a/src/test/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/application/TeamDashboardServiceTest.java +++ b/src/test/java/shop/kkeujeok/kkeujeokbackend/dashboard/team/application/TeamDashboardServiceTest.java @@ -236,7 +236,7 @@ void setUp() { assertThat(result.title()).isEqualTo("title"); assertThat(result.description()).isEqualTo("description"); assertThat(result.blockProgress()).isEqualTo(0.0); - assertThat(result.joinMembers().size()).isEqualTo(1); + assertThat(result.joinMembers().size()).isEqualTo(2); }); } @@ -257,7 +257,7 @@ void setUp() { assertThat(result.title()).isEqualTo("title"); assertThat(result.description()).isEqualTo("description"); assertThat(result.blockProgress()).isEqualTo(0.0); - assertThat(result.joinMembers().size()).isEqualTo(0); + assertThat(result.joinMembers().size()).isEqualTo(1); }); } @@ -277,4 +277,4 @@ void setUp() { }); } -} \ No newline at end of file +} diff --git a/src/test/java/shop/kkeujeok/kkeujeokbackend/global/restdocs/RestDocsHandler.java b/src/test/java/shop/kkeujeok/kkeujeokbackend/global/restdocs/RestDocsHandler.java new file mode 100644 index 00000000..5a01af5c --- /dev/null +++ b/src/test/java/shop/kkeujeok/kkeujeokbackend/global/restdocs/RestDocsHandler.java @@ -0,0 +1,43 @@ +package shop.kkeujeok.kkeujeokbackend.global.restdocs; + +import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; +import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; + +import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler; +import org.springframework.restdocs.payload.FieldDescriptor; +import org.springframework.restdocs.payload.PayloadDocumentation; +import org.springframework.restdocs.snippet.Snippet; + +public class RestDocsHandler { + public static RestDocumentationResultHandler createRestDocsHandler(String identifier, Snippet... snippets) { + return document(identifier, + preprocessRequest( + prettyPrint()), + preprocessResponse( + prettyPrint()), + snippets + ); + } + + public static RestDocumentationResultHandler createRestDocsHandlerWithFields( + String identifier, + Snippet requestFieldsSnippet, + Snippet responseFieldsSnippet) { + return document(identifier, + preprocessRequest(prettyPrint()), + preprocessResponse(prettyPrint()), + requestFieldsSnippet, + responseFieldsSnippet + ); + } + + public static Snippet requestFields(FieldDescriptor... fields) { + return PayloadDocumentation.requestFields(fields); + } + + public static Snippet responseFields(FieldDescriptor... fields) { + return PayloadDocumentation.responseFields(fields); + } +} diff --git a/src/test/java/shop/kkeujeok/kkeujeokbackend/notification/api/NotificationControllerTest.java b/src/test/java/shop/kkeujeok/kkeujeokbackend/notification/api/NotificationControllerTest.java index a7097eaa..14db02f5 100644 --- a/src/test/java/shop/kkeujeok/kkeujeokbackend/notification/api/NotificationControllerTest.java +++ b/src/test/java/shop/kkeujeok/kkeujeokbackend/notification/api/NotificationControllerTest.java @@ -1,7 +1,6 @@ package shop.kkeujeok.kkeujeokbackend.notification.api; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.when; import static org.springframework.restdocs.headers.HeaderDocumentation.headerWithName; @@ -13,8 +12,6 @@ import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse; import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint; import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath; -import static org.springframework.restdocs.request.RequestDocumentation.parameterWithName; -import static org.springframework.restdocs.request.RequestDocumentation.pathParameters; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static shop.kkeujeok.kkeujeokbackend.global.restdocs.RestDocsHandler.responseFields; @@ -151,7 +148,7 @@ void setUp(RestDocumentationContextProvider restDocumentation) { .andExpect(status().isOk()); } - @Test + /*@Test @DisplayName("알림 상세 조회에 성공하면 상태코드 200 반환") void 알림_상세_조회에_성공하면_상태코드_200_반환() throws Exception { // given @@ -180,5 +177,5 @@ void setUp(RestDocumentationContextProvider restDocumentation) { )) ) .andExpect(status().isOk()); - } + }*/ } diff --git a/src/test/java/shop/kkeujeok/kkeujeokbackend/notification/application/NotificationServiceTest.java b/src/test/java/shop/kkeujeok/kkeujeokbackend/notification/application/NotificationServiceTest.java index f712e115..5191ce27 100644 --- a/src/test/java/shop/kkeujeok/kkeujeokbackend/notification/application/NotificationServiceTest.java +++ b/src/test/java/shop/kkeujeok/kkeujeokbackend/notification/application/NotificationServiceTest.java @@ -1,7 +1,6 @@ package shop.kkeujeok.kkeujeokbackend.notification.application; 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.ArgumentMatchers.anyString; import static org.mockito.Mockito.when; @@ -26,7 +25,6 @@ import shop.kkeujeok.kkeujeokbackend.notification.api.dto.response.NotificationListResDto; import shop.kkeujeok.kkeujeokbackend.notification.domain.Notification; import shop.kkeujeok.kkeujeokbackend.notification.domain.repository.NotificationRepository; -import shop.kkeujeok.kkeujeokbackend.notification.exception.NotificationNotFoundException; import shop.kkeujeok.kkeujeokbackend.notification.util.SseEmitterManager; @ExtendWith(MockitoExtension.class) @@ -104,7 +102,7 @@ void setUp() { // 어떻게 테스트할 지 고민해보겠습니다.. } - @Test + /*@Test @DisplayName("존재하지 않는 알림을 조회하면 예외가 발생한다") void 존재하지_않는_알림을_조회하면_예외가_발생한다() { // given @@ -115,7 +113,7 @@ void setUp() { // when & then assertThatThrownBy(() -> notificationService.findByNotificationId(nonExistentNotificationId)) .isInstanceOf(NotificationNotFoundException.class); - } + }*/ @Test @DisplayName("회원의 모든 알림을 조회할 수 있다")