Skip to content

Commit a2d00ed

Browse files
committed
Filter terminated team members
1 parent 3258d32 commit a2d00ed

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

server/src/main/java/com/objectcomputing/checkins/services/feedback/suggestions/FeedbackSuggestionServiceImpl.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import io.micronaut.context.annotation.Property;
1010
import com.objectcomputing.checkins.exceptions.PermissionException;
1111
import jakarta.inject.Singleton;
12+
13+
import java.time.LocalDate;
1214
import java.util.LinkedList;
1315
import java.util.List;
1416
import java.util.Set;
@@ -80,6 +82,12 @@ public List<FeedbackSuggestionDTO> getSuggestionsByProfileId(UUID id) {
8082

8183
if(suggestions.size() >= maxSuggestions) break;
8284
}
85+
86+
suggestions = suggestions.stream().filter((FeedbackSuggestionDTO suggestion) -> {
87+
MemberProfile suggested = memberProfileServices.getById(suggestion.getId());
88+
LocalDate terminationDate = suggested.getTerminationDate();
89+
return !(terminationDate != null && terminationDate.isBefore(LocalDate.now().atStartOfDay().toLocalDate()));
90+
}).collect(Collectors.toList());
8391
return suggestions;
8492
}
8593
}

server/src/test/java/com/objectcomputing/checkins/services/feedback/suggestions/FeedbackSuggestionsControllerTest.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,13 +151,44 @@ void testGetRecsIfTeamMember() {
151151

152152
assertNotNull(JSON.toString(response.getBody().get()));
153153
assertEquals(HttpStatus.OK, response.getStatus());
154-
assertEquals(response.getBody().get().size(), 3 );
154+
assertEquals( 3, response.getBody().get().size() );
155155
assertContentEqualsEntity(idealOne, response.getBody().get().get(0));
156156
assertContentEqualsEntity(idealTwo, response.getBody().get().get(1));
157157
assertContentEqualsEntity(idealThree, response.getBody().get().get(2));
158158

159159
}
160160

161+
@Test
162+
void testDoesNotIncludeTerminatedTeamMembers() {
163+
Team team = createDefaultTeam();
164+
MemberProfile pdlProfile = createADefaultMemberProfile();
165+
createAndAssignRole(RoleType.PDL, pdlProfile);
166+
MemberProfile supervisor = createADefaultSupervisor();
167+
createAndAssignRole(RoleType.ADMIN, supervisor);
168+
MemberProfile requestee = createAProfileWithSupervisorAndPDL(supervisor, pdlProfile);
169+
MemberProfile requesteeTeamLead = createAnUnrelatedUser();
170+
MemberProfile teamMemberofRequestee = createASecondDefaultMemberProfile();
171+
MemberProfile termedTeamMemberofRequestee = createAPastTerminatedMemberProfile();
172+
createLeadTeamMember(team, requesteeTeamLead);
173+
createDefaultTeamMember(team, requestee);
174+
createDefaultTeamMember(team, teamMemberofRequestee);
175+
createDefaultTeamMember(team, termedTeamMemberofRequestee);
161176

177+
final HttpRequest<?> request = HttpRequest.GET(String.format("/%s", requestee.getId()))
178+
.basicAuth(teamMemberofRequestee.getWorkEmail(), RoleType.Constants.MEMBER_ROLE);
179+
final HttpResponse<List<FeedbackSuggestionDTO>> response = client.toBlocking()
180+
.exchange(request, Argument.listOf(FeedbackSuggestionDTO.class));
181+
182+
183+
FeedbackSuggestionDTO idealOne = createFeedbackSuggestion(supervisorReason, supervisor.getId());
184+
FeedbackSuggestionDTO idealTwo = createFeedbackSuggestion(pdlReason, pdlProfile.getId());
185+
FeedbackSuggestionDTO idealThree = createFeedbackSuggestion(teamLeadReason, requesteeTeamLead.getId());
162186

187+
assertNotNull(JSON.toString(response.getBody().get()));
188+
assertEquals(HttpStatus.OK, response.getStatus());
189+
assertEquals( 3, response.getBody().get().size() );
190+
assertContentEqualsEntity(idealOne, response.getBody().get().get(0));
191+
assertContentEqualsEntity(idealTwo, response.getBody().get().get(1));
192+
assertContentEqualsEntity(idealThree, response.getBody().get().get(2));
193+
}
163194
}

0 commit comments

Comments
 (0)