Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,11 @@ public static TeamRecruitmentChatRoomListItemResponse of(
return new TeamRecruitmentChatRoomListItemResponse(
chatRoom.getRecruitment().getId(),
chatRoom.getId(),
direct && counterpart != null ? counterpart.getNickname() : chatRoom.getRecruitment().getTitle(),
direct && counterpart != null ? counterpart.getDisplayNickname() : chatRoom.getRecruitment().getTitle(),
chatRoom.getRoomType().name(),
chatRoom.getStatus().name(),
direct && counterpart != null ? counterpart.getId() : null,
direct && counterpart != null ? counterpart.getNickname() : null,
direct && counterpart != null ? counterpart.getDisplayNickname() : null,
lastMessage == null ? null : lastMessage.getId(),
lastMessage == null ? null : lastMessage.getContent(),
lastMessage == null ? null : lastMessage.getCreatedAt(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ void setUpClock() {
TeamRecruitmentChatRoomListItemResponse::lastMessageId,
TeamRecruitmentChatRoomListItemResponse::unreadMessageCount
)
.containsExactly(counterpart.getNickname(), OTHER_USER_ID, counterpart.getNickname(), 101, 0);
.containsExactly(counterpart.getDisplayNickname(), OTHER_USER_ID, counterpart.getDisplayNickname(), 101, 0);
assertThat(responses.get(1))
.extracting(
TeamRecruitmentChatRoomListItemResponse::roomName,
Expand All @@ -228,6 +228,39 @@ void setUpClock() {
verifyNoInteractions(messageRepository);
}

@Test
void 닉네임_미설정_사용자가_상대방인_DIRECT_채팅방_목록_조회시_counterpartNickname이_null이_아니다() {
TeamRecruitment recruitment = mock(TeamRecruitment.class);
TeamRecruitmentChatRoom directRoom = mock(TeamRecruitmentChatRoom.class);
TeamRecruitmentChatMember currentMember = mock(TeamRecruitmentChatMember.class);
TeamRecruitmentChatMember counterpartMember = mock(TeamRecruitmentChatMember.class);
User currentUser = UserFixture.id_설정_코인_유저(USER_ID);
User anonymousCounterpart = UserFixture.닉네임_없는_코인_유저(OTHER_USER_ID);

when(currentMember.getChatRoom()).thenReturn(directRoom);
when(currentMember.getUser()).thenReturn(currentUser);
when(directRoom.getId()).thenReturn(21);
when(directRoom.getRecruitment()).thenReturn(recruitment);
when(directRoom.getRoomType()).thenReturn(TeamRecruitmentChatRoomType.DIRECT);
when(directRoom.getStatus()).thenReturn(TeamRecruitmentChatRoomStatus.ACTIVE);
when(counterpartMember.getChatRoom()).thenReturn(directRoom);
when(counterpartMember.getUser()).thenReturn(anonymousCounterpart);
when(recruitment.getId()).thenReturn(RECRUITMENT_ID);
when(memberRepository.findAllByUserIdWithChatRoomAndRecruitment(USER_ID))
.thenReturn(List.of(currentMember));
when(memberRepository.findAllWithUsersByChatRoomIds(List.of(21)))
.thenReturn(List.of(currentMember, counterpartMember));
when(messageRepository.findLatestByChatRoomIds(List.of(21))).thenReturn(List.of());
when(messageRepository.countUnreadMessagesByUserId(USER_ID)).thenReturn(List.of());

List<TeamRecruitmentChatRoomListItemResponse> responses = chatService.getChatRooms(USER_ID);

assertThat(responses).hasSize(1);
assertThat(responses.get(0).roomName()).isEqualTo(anonymousCounterpart.getDisplayNickname());
assertThat(responses.get(0).counterpartNickname()).isEqualTo(anonymousCounterpart.getDisplayNickname());
assertThat(responses.get(0).counterpartNickname()).isNotNull();
}

@Test
void GENERAL_TEAM_채팅방에_작성자만_있으면_인원은_2명_중_1명이다() {
ChatRoomResponse response = getChatRoom(
Expand Down
Loading