diff --git a/src/main/java/com/shinhan/klljs/domain/team/service/TeamMemberManagementService.java b/src/main/java/com/shinhan/klljs/domain/team/service/TeamMemberManagementService.java index 25b8b4e..bc793ca 100644 --- a/src/main/java/com/shinhan/klljs/domain/team/service/TeamMemberManagementService.java +++ b/src/main/java/com/shinhan/klljs/domain/team/service/TeamMemberManagementService.java @@ -15,6 +15,7 @@ import com.shinhan.klljs.domain.team.repository.TeamRepository; import com.shinhan.klljs.global.apiPayload.code.GeneralErrorCode; import com.shinhan.klljs.global.apiPayload.exception.GeneralException; +import com.shinhan.klljs.global.util.Texts; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -72,7 +73,7 @@ public TeamRenameResponse renameTeam(Long requesterId, Long teamId, String teamN throw new GeneralException(TeamErrorCode.TEAM_SETTINGS_FORBIDDEN); } - team.rename(teamName); + team.rename(Texts.trim(teamName)); return TeamRenameResponse.of(team); } diff --git a/src/test/java/com/shinhan/klljs/domain/team/service/TeamMemberManagementServiceTest.java b/src/test/java/com/shinhan/klljs/domain/team/service/TeamMemberManagementServiceTest.java index 5273072..0a696da 100644 --- a/src/test/java/com/shinhan/klljs/domain/team/service/TeamMemberManagementServiceTest.java +++ b/src/test/java/com/shinhan/klljs/domain/team/service/TeamMemberManagementServiceTest.java @@ -122,6 +122,21 @@ void renameTeam_allowsOwnerAndAdminButRejectsMember() { assertThat(team.getTeamName()).isEqualTo("관리자가 바꾼 팀명"); } + @Test + void renameTeam_trimsEdgeWhitespace() { + Team team = persistTeam(TeamStatus.ACTIVE); + TeamMember owner = persistMember(team, "오너", "owner@example.com", TeamMemberRole.OWNER, TeamMemberStatus.ACTIVE); + entityManager.flush(); + + TeamRenameResponse response = service.renameTeam(owner.getUser().getId(), team.getId(), " 공백 팀명 "); + entityManager.flush(); + entityManager.clear(); + + assertThat(response.teamName()).isEqualTo("공백 팀명"); + // 영속성 컨텍스트를 비우고 다시 조회해서, 메모리상 엔티티 상태가 아니라 실제 DB 반영 여부를 확인한다. + assertThat(entityManager.find(Team.class, team.getId()).getTeamName()).isEqualTo("공백 팀명"); + } + @Test void removeAndLeave_changeMembershipStatuses() { Team team = persistTeam(TeamStatus.ACTIVE);