feat: show unread message count

This commit is contained in:
Tim
2025-07-07 19:26:38 +08:00
parent 60b789759a
commit 87d0441ef6
7 changed files with 94 additions and 0 deletions

View File

@@ -60,4 +60,14 @@ class NotificationControllerTest {
verify(notificationService).markRead("alice", List.of(1L,2L));
}
@Test
void unreadCountEndpoint() throws Exception {
Mockito.when(notificationService.countUnread("alice")).thenReturn(3L);
mockMvc.perform(get("/api/notifications/unread-count")
.principal(new UsernamePasswordAuthenticationToken("alice","p")))
.andExpect(status().isOk())
.andExpect(jsonPath("$.count").value(3));
}
}

View File

@@ -60,4 +60,22 @@ class NotificationServiceTest {
assertEquals(1, list.size());
verify(nRepo).findByUserOrderByCreatedAtDesc(user);
}
@Test
void countUnreadReturnsRepositoryValue() {
NotificationRepository nRepo = mock(NotificationRepository.class);
UserRepository uRepo = mock(UserRepository.class);
NotificationService service = new NotificationService(nRepo, uRepo);
User user = new User();
user.setId(3L);
user.setUsername("carl");
when(uRepo.findByUsername("carl")).thenReturn(Optional.of(user));
when(nRepo.countByUserAndRead(user, false)).thenReturn(5L);
long count = service.countUnread("carl");
assertEquals(5L, count);
verify(nRepo).countByUserAndRead(user, false);
}
}