fix(aihr): scope unknown mobile supervisors

This commit is contained in:
2026-07-09 17:29:28 +08:00
parent 7fcea6ecd3
commit 89d8611ea1
2 changed files with 15 additions and 1 deletions
@@ -1404,7 +1404,7 @@ public class AihrPracticeSeedService {
LIMIT 1
""", (rs, rowNum) -> new OrgScopeRow(rs.getString("project_code"), rs.getString("position_level")), ownerArgs.toArray());
if (owners.isEmpty()) {
return TeamScope.unscoped();
return TeamScope.scoped(List.of());
}
OrgScopeRow row = owners.get(0);
if (!canSeeProject(row.positionLevel())) {
@@ -107,6 +107,17 @@ public class AihrPracticeSeedServiceTest {
assertEquals(List.of("000000", "SUP-1", "EMP-1", 5), jdbcTemplate.reviewArgs);
}
@Test
public void pendingReviewRecordsBlocksUnknownSupervisorWhenSnapshotExists() {
PracticeReviewJdbcTemplate jdbcTemplate = new PracticeReviewJdbcTemplate(null, List.of());
AihrPracticeSeedService service = new AihrPracticeSeedService(new ObjectMapper(), jdbcTemplate, null, null);
service.pendingReviewRecords("UNKNOWN", "", "", 5);
assertEquals("", jdbcTemplate.reviewSql);
assertEquals(List.of(), jdbcTemplate.reviewArgs);
}
@Test
public void competencyDoesNotSeedScoreForEmptyEmployee() {
JdbcTemplate jdbcTemplate = mock(JdbcTemplate.class);
@@ -229,6 +240,9 @@ public class AihrPracticeSeedServiceTest {
if (sql.contains("SELECT project_code") && sql.contains("LIMIT 1")) {
ownerSql = sql;
ownerArgs = List.of(args);
if (ownerLevel == null) {
return List.of();
}
return mapRows(rowMapper, List.of(Map.of(
"project_code", "P1",
"position_level", ownerLevel