Skip to content

Commit

Permalink
Feature/#233 팀 초대코드를 통한 팀 조인이 불가한 상황 해결 (#234)
Browse files Browse the repository at this point in the history
* fix: 예외처리 수정사항 변경
- 코드 상 throw 위치 변경

* test : disable된 코드 수정
- 이미 가입된 팀원 팀 가입 실패 테스트 : 테스트 대상 멤버를 팀원에 저장 후 테스트
- 초대코드 생성 테스트 : prefix가 잘못 설정되어 있던 문제 수정
  • Loading branch information
JJimini authored Nov 6, 2024
1 parent af66177 commit 9bed1e8
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 6 deletions.
3 changes: 2 additions & 1 deletion src/main/java/doore/team/application/TeamCommandService.java
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,9 @@ public void joinTeam(final Long teamId, final TeamInviteCodeRequest request, fin
duplicateCheckTeamMember(teamId, memberId);
assignTeamMemberRole(teamId, memberId);
createMemberTeam(member, teamId);
} else {
throw new TeamException(EXPIRED_LINK);
}
throw new TeamException(EXPIRED_LINK);
}

private void validateMatchLink(final String link, final String userLink) {
Expand Down
17 changes: 12 additions & 5 deletions src/test/java/doore/team/application/TeamCommandServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@

import doore.helper.IntegrationTest;
import doore.member.domain.Member;
import doore.member.domain.MemberTeam;
import doore.member.domain.Participant;
import doore.member.domain.TeamRole;
import doore.member.domain.repository.MemberRepository;
import doore.member.domain.repository.MemberTeamRepository;
import doore.member.domain.repository.ParticipantRepository;
import doore.member.domain.repository.TeamRoleRepository;
import doore.member.exception.MemberException;
Expand Down Expand Up @@ -61,6 +63,8 @@ public class TeamCommandServiceTest extends IntegrationTest {
private ParticipantCurriculumItemRepository participantCurriculumItemRepository;
@Autowired
private ParticipantRepository participantRepository;
@Autowired
private MemberTeamRepository memberTeamRepository;

private Long teamId;
private Long memberId;
Expand Down Expand Up @@ -117,26 +121,30 @@ void flushAll() {
}

@Test
@Disabled // TODO: 만료된 초대 링크 수정
@DisplayName("[실패] 이미 가입된 팀원이라면 팀 가입을 할 수 없다.")
public void joinTeam_이미_가입된_팀원이라면_팀_가입을_할_수_없다_실패() {
Member alreadyJoinMember = memberRepository.findById(memberId).orElseThrow();
MemberTeam alreadyJoinMemberTeam = memberTeamRepository.save(MemberTeam.builder()
.teamId(teamId)
.member(alreadyJoinMember)
.isDeleted(false)
.build());
final var createdCode = teamCommandService.generateTeamInviteCode(teamId, memberId).code();

assertThatThrownBy(() -> {
teamCommandService.joinTeam(teamId, new TeamInviteCodeRequest(createdCode), memberId);
teamCommandService.joinTeam(teamId, new TeamInviteCodeRequest(createdCode), alreadyJoinMemberTeam.getId());
}).isInstanceOf(MemberException.class).hasMessage(ALREADY_JOIN_TEAM_MEMBER.errorMessage());
}

@Test
@Disabled // TODO: 2/14/24 수정 S3 문제
@DisplayName("[성공] 초대코드는 생성된다.")
public void generateTeamInviteCode_초대코드는_생성된다_성공() {

//when
final var teamInviteLinkResponse = teamCommandService.generateTeamInviteCode(teamId, memberId);

//then
final Optional<String> data = redisUtil.getData("teamId:%d".formatted(teamId), String.class);
final Optional<String> data = redisUtil.getData("teamId=%d".formatted(teamId), String.class);
assertThat(data).isNotEmpty();
assertThat(data.get()).isEqualTo(teamInviteLinkResponse.code());
}
Expand Down Expand Up @@ -170,7 +178,6 @@ void flushAll() {
}

@Test
@Disabled // TODO: 2/14/24 수정 S3 문제
@DisplayName("[성공] 초대코드와 유저코드가 일치하면 팀 가입은 성공한다.")
public void joinTeam_초대코드와_유저코드가_일치하면_팀_가입은_성공한다_성공() {
//given
Expand Down

0 comments on commit 9bed1e8

Please sign in to comment.