Skip to content

Commit b78cd0b

Browse files
committed
Fixes #561
1 parent c990f78 commit b78cd0b

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

server/src/main/java/invite/cron/RoleExpirationNotifier.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,14 @@ public void sweep() {
5252
}
5353

5454
public List<String> doSweep() {
55-
Instant instant = Instant.now().plus(roleExpirationNotificationDays, ChronoUnit.DAYS);
56-
List<UserRole> userRoles = userRoleRepository.findByEndDateBeforeAndExpiryNotifications(instant, 0);
55+
Instant now = Instant.now();
56+
Instant futureDate = now.plus(roleExpirationNotificationDays, ChronoUnit.DAYS);
57+
List<UserRole> userRoles = userRoleRepository.findByEndDateBeforeAndExpiryNotifications(futureDate, 0);
5758
return userRoles.stream().map(userRole -> {
5859
List<GroupedProviders> groupedProviders = manage.getGroupedProviders(List.of(userRole.getRole()));
5960
GroupedProviders groupedProvider = groupedProviders.isEmpty() ? null : groupedProviders.get(0);
6061
Instant endDate = userRole.getEndDate();
61-
long daysBetween = Math.min(ChronoUnit.DAYS.between(endDate, instant) - roleExpirationNotificationDays, roleExpirationNotificationDays) ;
62+
long daysBetween = ChronoUnit.DAYS.between(now, endDate) + 1;
6263
String mail = mailBox.sendUserRoleExpirationNotificationMail(userRole, groupedProvider, (int) daysBetween);
6364
//https://stackoverflow.com/a/75121707
6465
userRoleRepository.updateExpiryNotifications(1, userRole.getId());

server/src/test/java/invite/cron/RoleExpirationNotifierTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class RoleExpirationNotifierTest extends AbstractMailTest {
2323
@Test
2424
void sweep() {
2525
UserRole userRole = userRoleRepository.findByRoleName("Mail").get(0);
26-
userRole.setEndDate(Instant.now().minus(1, ChronoUnit.DAYS));
26+
userRole.setEndDate(Instant.now().plus(3, ChronoUnit.DAYS));
2727
super.stubForManageProviderById(EntityType.OIDC10_RP, "5");
2828

2929
userRoleRepository.save(userRole);
@@ -35,7 +35,7 @@ void sweep() {
3535
//Due to HTML formatting, we can't be sure of the line breaks
3636
Stream.of("Your Inviter role Mail at the application Calendar EN will expire".split(" "))
3737
.forEach(s -> assertTrue(htmlContent.contains(s)));
38-
assertTrue(htmlContent.contains("1 day(s)"));
38+
assertTrue(htmlContent.contains("3 day(s)"));
3939

4040
userRole = userRoleRepository.findByRoleName("Mail").get(0);
4141
assertEquals(1, userRole.getExpiryNotifications());

0 commit comments

Comments
 (0)