Surefire Report

Summary

[Summary] [Package List] [Test Cases]


Tests Errors Failures Skipped Success Rate Time
2442 0 0 0 100% 373.1 s

Note: failures are anticipated and checked for with assertions while errors are unanticipated.


Package List

[Summary] [Package List] [Test Cases]


Package Tests Errors Failures Skipped Success Rate Time
com.group7.backend.service.ranking 103 0 0 0 100% 0.376 s
com.group7.backend.listener 5 0 0 0 100% 0.169 s
com.group7.backend.repository.graph 10 0 0 0 100% 7.650 s
com.group7.backend.service.ranking.follow 71 0 0 0 100% 0.099 s
com.group7.backend.service.ranking.feed 13 0 0 0 100% 0.178 s
com.group7.backend.repository 142 0 0 0 100% 21.00 s
com.group7.backend.exception 3 0 0 0 100% 0 s
com.group7.backend.config 27 0 0 0 100% 4.447 s
com.group7.backend.dto.response 6 0 0 0 100% 0.035 s
com.group7.backend.entity 34 0 0 0 100% 0.011 s
com.group7.backend.validation 15 0 0 0 100% 0 s
com.group7.backend.scheduler 27 0 0 0 100% 0.953 s
com.group7.backend.service.ranking.feed.signals 29 0 0 0 100% 0.005 s
com.group7.backend.controller 334 0 0 0 100% 23.46 s
com.group7.backend.service.bandit 9 0 0 0 100% 1.484 s
com.group7.backend.service.ranking.signals 57 0 0 0 100% 0.006 s
com.group7.backend.config.websocket 11 0 0 0 100% 0.237 s
com.group7.backend.config.jsonld.feed 33 0 0 0 100% 0.009 s
com.group7.backend.service.embedding 40 0 0 0 100% 0.013 s
com.group7.backend.service.graph 34 0 0 0 100% 0.381 s
com.group7.backend.service 740 0 0 0 100% 5.993 s
com.group7.backend.config.jsonld 12 0 0 0 100% 0.002 s
com.group7.backend.service.ranking.coldstart 7 0 0 0 100% 0.094 s
com.group7.backend.util 10 0 0 0 100% 0.006 s
com.group7.backend.service.ranking.graph 17 0 0 0 100% 30.35 s
com.group7.backend.config.ratelimit 40 0 0 0 100% 0.033 s
com.group7.backend.integration 572 0 0 0 100% 275.9 s
com.group7.backend.service.explanation 27 0 0 0 100% 0.108 s
com.group7.backend.event 14 0 0 0 100% 0.103 s

Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

com.group7.backend.service.ranking

- Class Tests Errors Failures Skipped Success Rate Time
MentorScoringPipelineTest 17 0 0 0 100% 0.196 s
MmrRerankerTest 10 0 0 0 100% 0.002 s
AdvancedFollowRankerTest 12 0 0 0 100% 0.003 s
AdvancedMentorRankerTest 10 0 0 0 100% 0.080 s
RuleBasedMentorRankerTest 12 0 0 0 100% 0.001 s
AdvancedForYouFeedRankerTest 9 0 0 0 100% 0.002 s
EngagementStatsServiceTest 7 0 0 0 100% 0.090 s
RuleBasedFollowRankerTest 12 0 0 0 100% 0.001 s
InterestOverlapFeedRankerTest 14 0 0 0 100% 0.001 s

com.group7.backend.listener

- Class Tests Errors Failures Skipped Success Rate Time
FeedEngagementBanditListenerTest 5 0 0 0 100% 0.169 s

com.group7.backend.repository.graph

- Class Tests Errors Failures Skipped Success Rate Time
FollowGraphRepositoryIntegrationTest 10 0 0 0 100% 7.650 s

com.group7.backend.service.ranking.follow

- Class Tests Errors Failures Skipped Success Rate Time
ColdStartPopularitySignalTest 16 0 0 0 100% 0.005 s
PersonalizedPageRankSignalTest 7 0 0 0 100% 0.002 s
DirectInteractionSignalTest 5 0 0 0 100% 0 s
SemanticAffinitySignalTest 12 0 0 0 100% 0.090 s
RecentEngagementSignalTest 10 0 0 0 100% 0 s
InterestOverlapFollowSignalTest 13 0 0 0 100% 0.001 s
SecondHopFollowSignalTest 8 0 0 0 100% 0.001 s

com.group7.backend.service.ranking.feed

- Class Tests Errors Failures Skipped Success Rate Time
DiversityFloorEnforcerTest 7 0 0 0 100% 0.003 s
ForYouScoringPipelineTest 6 0 0 0 100% 0.175 s

com.group7.backend.repository

- Class Tests Errors Failures Skipped Success Rate Time
UserRepositoryFollowCandidatesTest 6 0 0 0 100% 2.117 s
MenteeRepositorySearchTest 10 0 0 0 100% 2.786 s
FeedPostRepositoryTest 17 0 0 0 100% 0.345 s
MentorRepositorySearchTest 32 0 0 0 100% 0.409 s
FailedGraphSyncSchemaTest 7 0 0 0 100% 7.572 s
LastFeedReadAtRepositoryTest 6 0 0 0 100% 0.080 s
ViewerInteractionRepositoryTest 7 0 0 0 100% 2.682 s
ReportRepositoryTest 13 0 0 0 100% 0.105 s
FollowRepositoryTest 12 0 0 0 100% 0.171 s
EngagementStatsRepositoryTest 7 0 0 0 100% 2.250 s
UserRepositoryAdminListTest 10 0 0 0 100% 0.254 s
PopularityByMajorRepositoryTest 7 0 0 0 100% 2.111 s
MatchNotificationEligibilityQueriesTest 8 0 0 0 100% 0.116 s

com.group7.backend.exception

- Class Tests Errors Failures Skipped Success Rate Time
GoalRequiredHandlerTest 3 0 0 0 100% 0 s

com.group7.backend.config

- Class Tests Errors Failures Skipped Success Rate Time
AdminBootstrapPropertiesTest 9 0 0 0 100% 0.012 s
SecurityConfigCspTest 1 0 0 0 100% 1.734 s
JwtAuthenticationFilterTest 5 0 0 0 100% 0.093 s
TimeConfigTest 1 0 0 0 100% 0.008 s
AdminBootstrapperTest 1 0 0 0 100% 2.522 s
PageTotalCountHeaderAdviceTest 5 0 0 0 100% 0.073 s
AppPropertiesTest 5 0 0 0 100% 0.005 s

com.group7.backend.dto.response

- Class Tests Errors Failures Skipped Success Rate Time
TimelineItemTypeTest 3 0 0 0 100% 0.002 s
UserSummaryTest 3 0 0 0 100% 0.033 s

com.group7.backend.entity

- Class Tests Errors Failures Skipped Success Rate Time
MentorshipTest 5 0 0 0 100% 0.001 s
TaggedTermTest 4 0 0 0 100% 0.002 s
EntityPrePersistTest 10 0 0 0 100% 0.003 s
ReportStatusMachineTest 15 0 0 0 100% 0.005 s

com.group7.backend.validation

- Class Tests Errors Failures Skipped Success Rate Time
UriValidatorTest 7 0 0 0 100% 0 s
PasswordValidatorTest 8 0 0 0 100% 0 s

com.group7.backend.scheduler

- Class Tests Errors Failures Skipped Success Rate Time
MatchNotificationSchedulerTest 7 0 0 0 100% 0.162 s
BanExpirySchedulerTest 3 0 0 0 100% 0.083 s
MentorshipAutoCompletionSchedulerTest 2 0 0 0 100% 0.106 s
FeedSoftDeleteCleanupSchedulerTest 5 0 0 0 100% 0.163 s
AttachmentOrphanCleanupSchedulerTest 6 0 0 0 100% 0.095 s
MeetingSchedulerTest 4 0 0 0 100% 0.344 s

com.group7.backend.service.ranking.feed.signals

- Class Tests Errors Failures Skipped Success Rate Time
AuthorAffinitySignalTest 8 0 0 0 100% 0.002 s
SemanticMatchSignalTest 7 0 0 0 100% 0.001 s
EngagementSignalTest 6 0 0 0 100% 0.001 s
TimeDecaySignalTest 8 0 0 0 100% 0.001 s

com.group7.backend.controller

- Class Tests Errors Failures Skipped Success Rate Time
FeedMediaDownloadControllerTest$ResolveMediaType 6 0 0 0 100% 0.003 s
AttachmentDownloadControllerTest 5 0 0 0 100% 0.095 s
AdminDirectInboxControllerTest 6 0 0 0 100% 1.759 s
StatsControllerTest 5 0 0 0 100% 0.438 s
FollowControllerTest 14 0 0 0 100% 0.279 s
UserDeviceControllerTest 5 0 0 0 100% 0.467 s
MentorPairMessageControllerTest 12 0 0 0 100% 0.380 s
AdminUserListControllerTest 9 0 0 0 100% 4.326 s
AdminMessagingControllerTest 10 0 0 0 100% 0.366 s
FeedInteractionControllerTest 7 0 0 0 100% 0.458 s
AdminUserDetailControllerTest 3 0 0 0 100% 0.009 s
AdminDirectMessageControllerTest 6 0 0 0 100% 0.626 s
MentorshipRequestControllerTest 10 0 0 0 100% 0.792 s
FeedReadStateControllerTest 5 0 0 0 100% 0.463 s
AdminReportControllerTest 11 0 0 0 100% 0.377 s
AttachmentDownloadControllerTest$ResolveMediaType 4 0 0 0 100% 0.002 s
FeedMediaDownloadControllerTest 5 0 0 0 100% 0.009 s
UserSearchControllerTest 20 0 0 0 100% 4.723 s
FeedPostControllerTest 22 0 0 0 100% 3.269 s
MenteeAvailabilityControllerTest 5 0 0 0 100% 0.477 s
FollowRecommendationControllerTest 6 0 0 0 100% 0.514 s
AuthControllerTest 18 0 0 0 100% 0.630 s
ProfileControllerTest 34 0 0 0 100% 0.049 s
MentorPairInboxControllerTest 6 0 0 0 100% 0.504 s
AvailabilityControllerTest 24 0 0 0 100% 0.465 s
MatchingControllerTest 20 0 0 0 100% 0.478 s
ReportControllerTest 10 0 0 0 100% 0.493 s
UserNotificationPreferencesControllerTest 3 0 0 0 100% 0.426 s
MentorshipControllerTest 37 0 0 0 100% 0.575 s
PhotoUploadControllerTest 6 0 0 0 100% 0.010 s

com.group7.backend.service.bandit

- Class Tests Errors Failures Skipped Success Rate Time
ThompsonSamplingServiceTest 9 0 0 0 100% 1.484 s

com.group7.backend.service.ranking.signals

- Class Tests Errors Failures Skipped Success Rate Time
MajorSignalsTest 11 0 0 0 100% 0.002 s
SharedInterestsSignalTest 7 0 0 0 100% 0 s
AvailabilitySignalTest 8 0 0 0 100% 0 s
LocationProximitySignalTest 17 0 0 0 100% 0.001 s
SemanticMatchSignalTest 8 0 0 0 100% 0.002 s
SharedSkillsSignalTest 6 0 0 0 100% 0.001 s

com.group7.backend.config.websocket

- Class Tests Errors Failures Skipped Success Rate Time
JwtChannelInterceptorSubscribeTest 11 0 0 0 100% 0.237 s

com.group7.backend.config.jsonld.feed

- Class Tests Errors Failures Skipped Success Rate Time
OrderedCollectionPageJsonLdAdviceTest 8 0 0 0 100% 0.003 s
FeedPostJsonLdMappingTest 13 0 0 0 100% 0.003 s
FeedCommentJsonLdMappingTest 6 0 0 0 100% 0.001 s
FeedPostListItemJsonLdMappingTest 6 0 0 0 100% 0.002 s

com.group7.backend.service.embedding

- Class Tests Errors Failures Skipped Success Rate Time
FeedPostEmbeddingTextTest 9 0 0 0 100% 0.002 s
SemanticSimilarityServiceTest 16 0 0 0 100% 0.006 s
MentorProfileTextTest 6 0 0 0 100% 0.001 s
EmbeddingHealthIndicatorTest 2 0 0 0 100% 0 s
MentorPopulationStatsTest 7 0 0 0 100% 0.004 s

com.group7.backend.service.graph

- Class Tests Errors Failures Skipped Success Rate Time
FollowGraphResyncJobTest 9 0 0 0 100% 0.184 s
FollowGraphWriterTest 10 0 0 0 100% 0.098 s
FailedGraphSyncWriterTest 5 0 0 0 100% 0.002 s
FollowGraphBootstrapTest 4 0 0 0 100% 0.094 s
FollowGraphSyncListenerTest 6 0 0 0 100% 0.003 s

com.group7.backend.service

- Class Tests Errors Failures Skipped Success Rate Time
FeedInteractionServiceCommentLikeTest 9 0 0 0 100% 0.540 s
HashtagNormalizerTest 18 0 0 0 100% 0.002 s
MentorshipProgressServiceTest 19 0 0 0 100% 0.263 s
FeedTrendingServiceTest 6 0 0 0 100% 0.086 s
TaskServiceTest 21 0 0 0 100% 0.010 s
AttachmentStorageServiceTest 41 0 0 0 100% 0.047 s
FeedReadServiceTest 16 0 0 0 100% 0.242 s
BanServiceTest 12 0 0 0 100% 0.005 s
FeedInteractionServiceTest 31 0 0 0 100% 0.024 s
AvailabilityOverrideServiceTest 10 0 0 0 100% 0.004 s
MilestoneServiceTest 15 0 0 0 100% 0.093 s
MentorshipCleanupServiceTest 6 0 0 0 100% 0.169 s
ConversationServiceTest 25 0 0 0 100% 0.174 s
FcmPushDeliveryServiceTest 4 0 0 0 100% 0.462 s
FeedPostMapperTest 9 0 0 0 100% 0.094 s
NotificationServiceTest 4 0 0 0 100% 0.096 s
CalendarExportServiceTest 9 0 0 0 100% 0.314 s
FileStorageServiceTest 20 0 0 0 100% 0.011 s
AvailabilityServiceTest 13 0 0 0 100% 0.005 s
MentorRatingServiceTest 15 0 0 0 100% 0.083 s
FeedPostServiceHistoryTest 13 0 0 0 100% 0.004 s
MenteeAvailabilityServiceTest 5 0 0 0 100% 0.092 s
MentorshipRequestServiceTest 18 0 0 0 100% 0.184 s
JwtServiceTest 11 0 0 0 100% 0.005 s
UserDeviceServiceTest 7 0 0 0 100% 0.002 s
MeetingServiceTest 14 0 0 0 100% 0.118 s
ReportMapperTest 7 0 0 0 100% 0.002 s
FollowRecommendationServiceTest 14 0 0 0 100% 0.260 s
MentorPairInboxServiceTest 9 0 0 0 100% 0.003 s
UserServiceTest 10 0 0 0 100% 0.169 s
MentorshipPreconditionsTest 7 0 0 0 100% 0.001 s
AdminDirectInboxServiceTest 5 0 0 0 100% 0.014 s
ReportServiceTest 23 0 0 0 100% 0.198 s
SearchNormaliserTest 19 0 0 0 100% 0.001 s
FeedPostServiceRestoreTest 7 0 0 0 100% 0.255 s
TaxonomyServiceTest 10 0 0 0 100% 0.019 s
MatchNotificationProcessorTest 9 0 0 0 100% 0.130 s
FeedPostServiceTest 19 0 0 0 100% 0.010 s
FeedPostEventPublisherTest 1 0 0 0 100% 0 s
MatchingServiceTest 46 0 0 0 100% 0.024 s
MessageServiceTest 16 0 0 0 100% 0.348 s
MentorshipCooldownPolicyTest 5 0 0 0 100% 0.001 s
UserNotificationPreferencesServiceTest 3 0 0 0 100% 0.095 s
AdminUserQueryServiceTest 17 0 0 0 100% 0.006 s
StatsServiceTest 5 0 0 0 100% 0.004 s
AuthServiceClockTest 1 0 0 0 100% 0.261 s
AuthServiceTest 24 0 0 0 100% 0.011 s
MentorshipTimelineServiceTest 23 0 0 0 100% 0.196 s
MentorshipServiceTest 42 0 0 0 100% 0.108 s
FollowServiceTest 18 0 0 0 100% 0.005 s
MentorshipAutoCompletionServiceTest 6 0 0 0 100% 0.188 s
ConversationCreatorTest 3 0 0 0 100% 0.002 s
SpamDetectionServiceTest 11 0 0 0 100% 0.466 s
FeedReadStateServiceTest 7 0 0 0 100% 0.087 s
AttachmentUrlBuilderTest 2 0 0 0 100% 0 s

com.group7.backend.config.jsonld

- Class Tests Errors Failures Skipped Success Rate Time
NoteMappingTest 12 0 0 0 100% 0.002 s

com.group7.backend.service.ranking.coldstart

- Class Tests Errors Failures Skipped Success Rate Time
PopularityByMajorCacheTest 7 0 0 0 100% 0.094 s

com.group7.backend.util

- Class Tests Errors Failures Skipped Success Rate Time
HaversineDistanceTest 10 0 0 0 100% 0.006 s

com.group7.backend.service.ranking.graph

- Class Tests Errors Failures Skipped Success Rate Time
FollowGraphProjectionServiceFailurePathTest 2 0 0 0 100% 0.196 s
PersonalizedPageRankIntegrationTest 4 0 0 0 100% 14.79 s
PersonalizedPageRankServiceTest 7 0 0 0 100% 0.194 s
FollowGraphProjectionServiceTest 4 0 0 0 100% 15.17 s

com.group7.backend.config.ratelimit

- Class Tests Errors Failures Skipped Success Rate Time
BucketCacheTest 5 0 0 0 100% 0.003 s
ClientIpResolverTest 12 0 0 0 100% 0.002 s
RateLimitPropertiesTest 8 0 0 0 100% 0.009 s
ClockTimeMeterTest 2 0 0 0 100% 0 s
RateLimitFilterTest 13 0 0 0 100% 0.019 s

com.group7.backend.integration

- Class Tests Errors Failures Skipped Success Rate Time
ReminderNotificationIntegrationTest 3 0 0 0 100% 2.516 s
ProfileVisibilityIntegrationTest 11 0 0 0 100% 4.325 s
EndToEndWorkflowTest 4 0 0 0 100% 1.814 s
AdminAuthorizationIntegrationTest 7 0 0 0 100% 1.433 s
AdminBanAndMessagingIntegrationTest 12 0 0 0 100% 3.108 s
FeedPostHistoryIntegrationTest 11 0 0 0 100% 2.371 s
AuthIntegrationTest 20 0 0 0 100% 2.298 s
FeedReadIntegrationTest 33 0 0 0 100% 12.27 s
AvailabilityIcalIntegrationTest 8 0 0 0 100% 2.410 s
MessagingJsonLdContentNegotiationTest 2 0 0 0 100% 0.746 s
FeedCommentLikeIntegrationTest 8 0 0 0 100% 2.244 s
FeedRealtimeIntegrationTest 16 0 0 0 100% 39.91 s
AdvancedForYouFeedIntegrationTest 2 0 0 0 100% 1.692 s
MentorshipLifecycleIntegrationTest 13 0 0 0 100% 5.724 s
AvailabilityIntegrationTest 8 0 0 0 100% 1.571 s
MentorRatingReadIntegrationTest 10 0 0 0 100% 5.454 s
TestSupportControllerTriggerTest 3 0 0 0 100% 0.956 s
SearchPerformanceTest 4 0 0 0 100% 2.039 s
MentorPairInboxIntegrationTest 7 0 0 0 100% 5.501 s
MentorshipRequestIntegrationTest 8 0 0 0 100% 2.799 s
BanIntegrationTest 6 0 0 0 100% 4.502 s
FeedTrendingIntegrationTest 7 0 0 0 100% 2.154 s
FeedCommentLikePerformanceTest 1 0 0 0 100% 1.275 s
FollowRecommendationManualScenarioTest 3 0 0 0 100% 2.598 s
MenteeAvailabilityIntegrationTest 2 0 0 0 100% 0.353 s
ProfileTaxonomyIntegrationTest 9 0 0 0 100% 1.936 s
MatchNotificationIntegrationTest 5 0 0 0 100% 3.451 s
FeedMediaIntegrationTest 12 0 0 0 100% 2.590 s
ProfileIntegrationTest 60 0 0 0 100% 11.53 s
FeedJsonLdIntegrationTest 4 0 0 0 100% 0.772 s
MatchingIntegrationTest 16 0 0 0 100% 7.146 s
StatsIntegrationTest 4 0 0 0 100% 1.086 s
MessagingWebSocketIntegrationTest 3 0 0 0 100% 6.330 s
FeedPostIntegrationTest 10 0 0 0 100% 2.399 s
UserSearchIntegrationTest 12 0 0 0 100% 5.237 s
ReportingIntegrationTest 5 0 0 0 100% 2.031 s
MentorPairMessagingIntegrationTest 11 0 0 0 100% 4.304 s
NotificationIntegrationTest 3 0 0 0 100% 1.643 s
RateLimitIntegrationTest 6 0 0 0 100% 1.279 s
TestSupportControllerSecurityTest 6 0 0 0 100% 1.199 s
MentorshipAcceptRaceConditionTest 40 0 0 0 100% 22.51 s
MentorshipIntegrationTest 33 0 0 0 100% 14.50 s
AdvancedMatchingIntegrationTest 6 0 0 0 100% 5.974 s
SpamBotDetectionIntegrationTest 7 0 0 0 100% 8.826 s
MentorshipHistoryFilterIntegrationTest 8 0 0 0 100% 3.171 s
FollowIntegrationTest 14 0 0 0 100% 13.05 s
PhotoUploadIntegrationTest 5 0 0 0 100% 1.025 s
KeywordMuteIntegrationTest 7 0 0 0 100% 1.402 s
FollowRecommendationAdvancedIntegrationTest 4 0 0 0 100% 2.931 s
FeedInteractionIntegrationTest 31 0 0 0 100% 20.93 s
PushNotificationIntegrationTest 5 0 0 0 100% 3.194 s
JsonLdContentNegotiationTest 10 0 0 0 100% 2.307 s
MentorshipCancellationIntegrationTest 9 0 0 0 100% 5.245 s
FeedSoftDeleteCleanupIntegrationTest 4 0 0 0 100% 1.456 s
MessagingIntegrationTest 7 0 0 0 100% 2.925 s
FeedPostRestoreIntegrationTest 7 0 0 0 100% 1.408 s

com.group7.backend.service.explanation

- Class Tests Errors Failures Skipped Success Rate Time
MatchExplanationServiceTest 25 0 0 0 100% 0.107 s
ChatHealthIndicatorTest 2 0 0 0 100% 0.001 s

com.group7.backend.event

- Class Tests Errors Failures Skipped Success Rate Time
MessageBroadcastListenerTest 2 0 0 0 100% 0.001 s
FeedFanoutListenerTest 7 0 0 0 100% 0.102 s
ReportFanoutListenerTest 4 0 0 0 100% 0 s
NotificationEventListenerClockTest 1 0 0 0 100% 0 s

Test Cases

[Summary] [Package List] [Test Cases]

ReminderNotificationIntegrationTest

processReminders_sendsTaskDeadlineReminder_andDedups 0.720 s
processReminders_skipsIfTaskReminderDisabled 0.664 s
processReminders_sendsTaskDeadlineReminder_forRevisionRequestedTask 0.202 s

AdminBootstrapPropertiesTest

blankPassword_failsValidation 0.007 s
blankFirstName_failsValidation 0 s
blankLastName_failsValidation 0 s
valid_props_passValidation 0 s
nullEmail_failsValidation 0.001 s
blankEmail_failsValidation 0 s
weakPassword_failsValidPasswordRule 0 s
malformedEmail_failsValidation 0 s
shortPassword_failsValidation 0.001 s

MentorScoringPipelineTest

singleMentor_withCoordinates_getsSlotNearestFactor 0.189 s
slot5_outlierStrategy_picksMentorFarthestFromPopulationCentroid 0.001 s
slot5_omitted_whenAllRemainingBelowMinScore 0.001 s
slots2to4_areTop3ByScore_excludingSlot1Winner 0 s
distanceAttached_whenBothSidesHaveCoordinates 0 s
slot5_outlierStrategy_skipsEmptyEmbeddingsEvenIfScoreAboveFloor 0.001 s
maxDistanceKmFilter_dropsFarMentors_butKeepsUnknownDistance 0 s
mentorsBeyondSlot5_keepRelevanceOrder 0 s
slot1_omitted_whenNoMentorHasCoordinates 0.001 s
slot5_skipsEmptyProfileMentors_evenIfTheyAreMaximallyDifferent 0.001 s
slot1_isClosestMentor_evenIfLowerScored 0 s
distanceNull_whenEitherSideLacksCoordinates 0.001 s
emptyInput_returnsEmptyList 0 s
slot5_picksMostDifferentEmbedding_amongAboveMinScore 0 s
slot1_respectsMaxDistanceKmFilter 0 s
singleMentor_noCoordinates_returnedWithoutSlotOrDiverseFactors 0.001 s
noLocationData_stillFillsFourTopSlotsPlusOneDiverse 0 s

FeedInteractionServiceCommentLikeTest

addComment_doesNotIssuePerRowLikeQueries_onFreshComment 0.532 s
listComments_batchLoadsCountsAndViewerLikedExactlyOnce_perPage 0.002 s
toggleCommentLike_404_whenCommentMissing 0.001 s
listComments_emptyPage_skipsAllBatchSQL 0 s
toggleCommentLike_404_whenCommentSoftDeleted 0.001 s
toggleCommentLike_secondCall_deletes_doesNOTpublishEngagement_andReportsLikedFalse 0.001 s
listComments_anonymousViewer_skipsLikedLookup 0 s
toggleCommentLike_404_whenParentPostSoftDeleted 0.001 s
toggleCommentLike_firstCall_inserts_publishesEngagement_andReportsLikedTrue 0.001 s

ProfileVisibilityIntegrationTest

migratedRowsDefaultToVisible_existingMentorReturned200 0.395 s
privateMentee_notInListEndpoints 0.560 s
admin_seesAllProfilesIncludingPrivate 0.556 s
mentor_viewsMentee_masksLastNameAndPhoto 0.376 s
otherMentee_viewsPrivateMentor_returns403 0.350 s
selfViewById_privateProfile_allowed 0.185 s
privateMentor_notInListEndpoints 0.531 s
mentee_viewsMentor_unmasked 0.385 s
mentorPatch_setProfileVisibilityFalse_thenSelfStillVisible_othersBlocked 0.379 s
otherMentor_viewsPrivateMentor_returns403 0.409 s
selfView_privateProfile_allowed 0.191 s

SecurityConfigCspTest

prodCspValues_doNotContainUnsafeEvalOrLocalhost 0.071 s

EndToEndWorkflowTest

fullMentorshipLifecycle 0.558 s
rejectionPathSendsNotification 0.468 s
meetingOutsideAvailabilityReturnsWarning 0.416 s
cancellationPathTriggersBanWhenThresholdExceeded 0.716 s

ColdStartPopularitySignalTest

coldStart_noPopularityNoInterestOverlap_returnsNone 0 s
notColdStart_returnsNone_regardlessOfPopularity 0 s
menteeWithNullInterests_returnsEmptyLabels 0.004 s
nullViewerInterestLabels_skipsInterestHalf 0 s
nullLabelInCandidateList_isSkipped 0 s
interestFactors_areCappedAtTwo 0 s
nullCountInPopularityMap_doesNotCrash 0 s
menteeCandidate_usesInterestsCorrectly 0 s
zeroBlendedScore_returnsNone 0.001 s
coldStart_belowTop_popularityLogScaled 0 s
adminCandidate_returnsNone_noInterestNoPopularity 0 s
contractMetadata_isExposed 0 s
nullPopularityMap_treatedAsAbsent 0 s
coldStart_notInPopularityMap_butSharedInterest_stillContributes 0 s
coldStart_topPopular_andFullInterestOverlap_blendsTo_pop60_int40 0 s
coldStart_popularityOnly_noInterestData_returnsBlendedPopularity 0 s

UriValidatorTest

iscedFValidatorRequiresFourDigits 0 s
wikidataValidatorRejectsHttpsAndPropertyForms 0 s
escoOrWikidataRejectsIscedF 0 s
escoValidatorRejectsHttpsAndOtherSchemes 0 s
escoValidatorAcceptsCanonicalAndNull 0 s
wikidataValidatorAcceptsAnyQId 0 s
escoOrWikidataAcceptsBoth 0 s

JwtAuthenticationFilterTest

tokenMissingUserId_doesNotPopulateContext_andCallsChain 0.087 s
tokenMissingRole_doesNotPopulateContext_andCallsChain 0.002 s
validToken_populatesSecurityContext 0.002 s
noBearerHeader_doesNotPopulateContext 0.001 s
tokenWithBlankRole_doesNotPopulateContext 0.001 s

FeedMediaDownloadControllerTest$ResolveMediaType

uppercaseExtensionResolves 0 s
filenameWithTrailingDotFallsBackToOctetStream 0.001 s
webpExtensionMapsToImageWebp 0 s
unknownExtensionFallsBackToOctetStream 0.001 s
jpegExtensionMapsToImageJpeg 0 s
filenameWithoutDotFallsBackToOctetStream 0.001 s

HashtagNormalizerTest

surroundingWhitespace_isTrimmed 0 s
overCap_throwsIllegalArgumentException 0 s
nullInput_returnsEmpty 0 s
simpleTags_lowercased_andOrderPreserved 0 s
tagOverMaxLength_isDropped 0 s
emptyInput_returnsEmpty 0 s
nullEntries_areSilentlyDropped 0 s
mixedCaseUnicode_isLowercased_andDeduped 0 s
multiWordEntries_areDropped 0 s
tagAtMaxLength_isAccepted 0 s
cap_isAppliedAfterNormalisation_notBefore 0 s
duplicateAfterNormalisation_isDeduped_firstWins 0 s
emptyAndWhitespaceEntries_areDropped 0 s
atMostMaxHashtags_isAccepted 0.001 s
turkishCharacters_arePreserved 0 s
multipleLeadingHashes_areAllStripped 0 s
specialCharacterEntries_areDropped 0 s
leadingHash_isStripped 0 s

UserRepositoryFollowCandidatesTest

banned_user_reappears_afterBanLifted 0.024 s
banned_user_reappears_afterBanExpired 0.007 s
banned_user_excluded_whileActiveBan 0.008 s
admin_is_not_filteredByProfileVisibility_clause 0.010 s
admin_excluded_fromCandidateWindow 0.007 s
mentee_with_profileVisibilityFalse_excluded 0.009 s

PersonalizedPageRankSignalTest

normalScore_normalizedByMaxInBatch 0.002 s
nullPprMap_returnsUnavailableFactor 0 s
zeroScore_returnsNone 0 s
emptyPprMap_returnsUnavailableFactor 0 s
topCandidate_normalizesToOne 0 s
contractMetadata_isExposed 0 s
candidateNotInMap_returnsNone 0 s

MatchNotificationSchedulerTest

notifyMentees_swallowsPerUserExceptionsAndContinues 0.159 s
notifyChangedMatches_swallowsEligibilityQueryFailure 0 s
notifyChangedMatches_runsMenteeBatchAndCompletesEvenWithZeroPublishes 0 s
logStartupConfig_doesNotThrowWithProvidedConfig 0.001 s
notifyMentees_iteratesAllEligibleIds 0 s
notifyMentees_logsIllegalStateAtErrorButContinues 0.001 s
notifyMentees_emptyEligibilityListIsNoOp 0 s

BanExpirySchedulerTest

sweepExpired_oneFailureDoesNotBlockOtherBans 0.081 s
sweepExpired_doesNothingWhenNoExpiredBans 0.001 s
sweepExpired_publishesAndMarksEachExpiredBan 0 s

MmrRerankerTest

diversitySignalLiftsDistantLowerRelevanceItem 0 s
rerank_preservesValuesAndRelevanceScores 0 s
lambdaClampedAboveOne_behavesLikeOne 0 s
nullInput_returnsEmpty 0 s
lambdaOne_isPureRelevance_orderMatchesRawScore 0 s
identicalEmbeddings_pureRelevanceOrderEvenWithLowLambda 0 s
lambdaClampedBelowZero_behavesLikeZero 0 s
targetSizeLargerThanInput_returnsAllAvailable 0.001 s
emptyInput_returnsEmpty 0 s
zeroTargetSize_returnsEmpty 0 s

MentorshipProgressServiceTest

daysRemaining_countsWholeDaysUntilFutureEndDate 0.254 s
lastActivity_takesSubmittedWhenOnlyOne 0 s
ratio_bothPresentUsesEqualWeight 0.002 s
lastActivity_takesReviewedWhenOnlyOne 0 s
lastActivity_isNullWhenAllNull 0.001 s
sessionsAttended_reflectsCompletedMeetingCount 0.001 s
ratio_isZeroWhenNoTasksAndNoMilestones 0 s
daysRemaining_isClampedToZeroWhenEndDateInPast 0.001 s
getProgress_returnsForMentee 0 s
getProgress_returnsForMentor 0 s
ratio_neverNaNOrInfinityForLargeCounts 0.001 s
ratio_tasksOnlyUsesTaskRatio 0 s
lastActivity_takesLatestAcrossAllThree 0.001 s
getProgress_propagatesResourceNotFoundFromFinder 0 s
lastActivity_milestoneWinsWhenLatest 0.001 s
daysRemaining_isZeroWhenEndDateNull 0 s
ratio_milestonesOnlyUsesMilestoneRatio 0 s
lastActivity_takesMilestoneWhenOnlyOne 0 s
lastActivity_handlesEqualTimestamps 0 s

AdminAuthorizationIntegrationTest

registerEndpointCannotCreateAdmin 0.104 s
getUsersDoesNotIncludeAdmin 0.477 s
getUserByIdRejectsAdminTarget 0.298 s
unauthenticatedCannotAccessAdminEndpoint 0.011 s
menteeCannotAccessAdminEndpoint 0.171 s
adminCanLoginAndAccessAdminEndpoint 0.182 s
mentorCannotAccessAdminEndpoint 0.182 s

MessageBroadcastListenerTest

broadcastsMessageToTopicForConversation 0 s
doesNotBroadcastWhenMessageVanished 0.001 s

FeedTrendingServiceTest

listTrendingHashtags_clampsLimitBelow1 0.085 s
listTrendingHashtags_computesScoreFromTupleSignals 0 s
listTrendingHashtags_clampsNegativeLimitTo1 0 s
refreshTrendingView_delegatesToRepository 0 s
listTrendingHashtags_clampsLimitAbove50 0 s
listTrendingHashtags_passesLimitThroughWhenInRange 0 s

AdminBanAndMessagingIntegrationTest

adminDirect_selfDmReturns400 0.200 s
admin_canBanUser_andBannedUserGetsBannedUntilOnLogin 0.389 s
broadcast_promotedAdminPicksUpFutureBroadcasts 0.259 s
banRequest_rejectsNonPositiveDuration 0.273 s
unban_returns404_whenNoActiveBan 0.247 s
nonAdmin_cannotCallDirectMessageEndpoint 0.249 s
admin_canDmAnyUser_withoutMentorship 0.260 s
adminDirect_isIdempotentAcrossSends 0.260 s
nonAdmin_cannotBroadcast 0.167 s
nonAdmin_cannotCallBanOrUnbanEndpoints 0.175 s
admin_unbanUser_restoresLogin 0.328 s
admin_broadcast_createsSingleton_andIncludesAllAdmins 0.269 s

FeedPostHistoryIntegrationTest

nonAuthorNonAdmin_getsForbidden 0.352 s
noopPatch_doesNotProduceHistoryRow 0.177 s
twoEdits_yieldTwoHistoryRowsNewestFirst_capturingPriorState 0.204 s
admin_canReadHistoryOfAnyPost 0.334 s
limitZero_returns400 0.178 s
author_canReadHistory 0.194 s
jsonbColumn_roundTripsListOfStrings_preservingOrder 0.197 s
bothFieldsNullPatch_doesNotProduceHistoryRow 0.187 s
missingPost_returns404 0.169 s
limitOver50_returns400 0.180 s
historyVisible_evenAfterSoftDelete 0.191 s

AttachmentDownloadControllerTest

download_returnsFile_whenRequesterIsParticipant 0.090 s
download_throwsNotFound_whenAttachmentRowMissing 0.001 s
download_throwsNotFound_whenRequesterIsNotParticipant 0 s
download_throwsNotFound_whenStoredFilenameEscapesUploadDir 0.001 s
download_throwsNotFound_whenFileMissingFromDisk 0.001 s

AdminDirectInboxControllerTest

listInbox_asAdmin_returnsOwnAdminDirectThreads 0.008 s
listInbox_asMentee_returns200WithPagedBody 0.001 s
listInbox_clampsOversizedPageSize 0.001 s
listInbox_unauthenticated_returns403 0.001 s
listInbox_asMentor_returns200 0.001 s
listInbox_paginationParamsHonored 0.001 s

AuthIntegrationTest

forgotPasswordWithRegisteredEmailReturns200 0.132 s
passwordIsStoredHashed 0.087 s
oldPasswordFailsAfterReset 0.246 s
registerDuplicateEmailFails 0.089 s
verifyEmailAndLoginSucceeds 0.165 s
resetPasswordFullFlow 0.254 s
loginWithNonexistentEmailFails 0.014 s
registerWithWeakPasswordReturns400 0.004 s
protectedEndpointReturns403WithoutToken 0.003 s
forgotPasswordWithUnknownEmailReturns200 0.004 s
loginAfterRegisterReturnsToken 0.171 s
loginBeforeVerificationFails 0.150 s
loginWithWrongPasswordFails 0.161 s
resetPasswordWithUsedTokenFails 0.182 s
protectedEndpointWorksWithValidToken 0.181 s
resendVerificationSendsNewToken 0.095 s
loginMentorReturnsCorrectRole 0.170 s
registerMenteeEndToEnd 0.087 s
verifyEmailWithInvalidTokenFails 0.010 s
registerMentorEndToEnd 0.081 s

TimeConfigTest

clockBeanIsUtc 0.004 s

HaversineDistanceTest

rejectsOutOfRangeLatitude 0.001 s
antipodalPoints_returnPiTimesEarthRadius 0.001 s
oneDegreeOfLatitudeAtEquator_isAboutOneEleventhDegreeKm 0 s
istanbulToAnkara_isAboutThreeFiftyKm 0 s
rejectsNanLongitude 0.001 s
isSymmetric 0 s
identicalPoints_returnZero 0 s
rejectsNanLatitude 0.001 s
rejectsOutOfRangeLongitude 0 s
poles_distanceIsHalfEarthCircumference 0 s

AdvancedFollowRankerTest

signalReturningNull_isSkippedSilently 0 s
disabledSignal_isSkipped 0 s
singleSignal_weightedSumScaledTo100 0 s
zeroWeightSignal_addsFactorsButNoScore 0 s
signalThrowing_doesNotAbortAggregation_emitsErrorFactor 0.001 s
signalWithNullFactors_doesNotAddNothing 0 s
signalReturningNegativeScore_isClamped 0 s
scoreClampedToOne_evenIfWeightsAndScoresSumPastOne 0 s
signalReturningOutOfRangeScore_isClamped 0 s
everySignalThrowing_yieldsZeroScore_andAllErrorFactors_noException 0.001 s
multipleSignals_factorsConcatenatedInOrder 0 s
emptySignalList_returnsZeroWithNoFactors 0 s

TaskServiceTest

fetchAttachments_OtherUser_Forbidden 0.002 s
reviewTask_AlreadyReviewed_Conflict 0 s
getTask_FlagsOverdue 0.001 s
createTask_Success 0 s
createTask_NullGoal_GoalRequired 0 s
createTask_PastDueDate_BadRequest 0.001 s
submitTask_Success 0 s
createTask_MenteeForbidden 0 s
createTask_InactiveAndNullGoal_StatusErrorWins 0.001 s
deleteTask_Success 0 s
reviewTask_InvalidStatus_BadRequest 0 s
deleteTask_AlreadySubmitted_Conflict 0 s
createTask_NonMentorAndNullGoal_ForbiddenWins 0.001 s
deleteTask_MenteeForbidden 0 s
createTask_EndedMentorship_Conflict 0 s
submitTask_MentorForbidden 0.001 s
listTasks_NonParticipantForbidden 0 s
reviewTask_Success_Completed 0.001 s
createTask_BlankGoal_GoalRequired 0 s
getTask_NotOverdueIfSubmitted 0 s
reviewTask_AlreadyCompleted_Conflict 0.001 s

FeedReadIntegrationTest

followingFeed_silentShares_doNotSurface 0.695 s
search_keywordWithLikeMetacharacters_doesNotActAsWildcard 0.314 s
followingFeed_whenViewerFollowsNobody_returnsEmpty 0.391 s
search_emptyFilters_returns400 0.193 s
search_keywordMute_isCaseInsensitive 0.419 s
authorPostsFeed_returnsOnlyThatAuthorsPosts_chronologically 0.678 s
allReadEndpoints_unauthenticated_return403 0.027 s
search_invalidHashtag_returnsEmpty 0.344 s
followingFeed_samePostFromBothBranches_appearsTwice 0.640 s
authorPostsFeed_whenAuthorHasNoPosts_returnsEmpty 0.416 s
search_withSinceAfterUntil_returns400 0.216 s
search_byLang_filtersOnLangColumn 0.205 s
search_dropsPostsContainingMutedKeyword 0.447 s
forYouFeed_whenNoCandidates_returnsEmpty 0.179 s
search_combinedKeywordAndHashtag_returnsIntersection 0.217 s
forYouFeed_excludesViewerOwnPosts 0.378 s
followingFeed_quoteShare_surfacesCommentary 0.550 s
forYouFeed_surfacesLikeAndVisibleCommentCounts 0.648 s
search_pageSizeClamp_limitsToMax100 0.224 s
authorPostsFeed_excludesSoftDeletedPosts 0.369 s
search_withInvalidLangPattern_returns400 0.177 s
search_excludesSoftDeletedPosts 0.204 s
forYouFeed_rankingFavoursInterestOverlap 0.387 s
followingFeed_surfacesLikeAndVisibleCommentCounts 0.374 s
search_withAllFiltersMissing_returns400 0.175 s
search_byDateRange_returnsOnlyPostsInsideWindow 0.191 s
xTotalCountHeader_presentOnEachPagedFeedEndpoint 0.395 s
followingFeed_paginationStability_acrossRepostTies 0.791 s
followingFeed_onlyShowsFollowedAuthors_chronologically 0.614 s
searchFeed_surfacesLikeAndVisibleCommentCounts 0.398 s
search_byHashtag_returnsTaggedPosts 0.237 s
followingFeed_surfacesReposts_attributedToSharer 0.549 s
search_byKeyword_returnsMatchingBodies 0.209 s

AuthorAffinitySignalTest

followedAndEngaged_bothFactorsAndScoreCombined 0 s
notFollowedPartialEngagement_proportional 0 s
followedAndOverSaturated_clampsToOne 0.001 s
nullAuthorId_returnsNone 0 s
notFollowedFullEngagement_saturatesToOne 0 s
selfAuthorExcluded_returnsNoneNoFactor 0 s
followedNoEngagement_baseScoreAndFollowBoostFactor 0 s
killSwitchOff_isEnabledFalse 0.001 s

AvailabilityIcalIntegrationTest

icalExportReturns404ForUnknownMentor 0.028 s
menteeAddingOverrideReturns403 0.164 s
icalExportIsAnonymousAndParsesCleanly 1.087 s
mentorCannotDeleteAnotherMentorsOverride 0.380 s
overrideCrudRoundTrip_addListDelete 0.181 s
icalExportForEmptyMentorIsValidVCalendarWithNoEvents 0.180 s
addOverrideReturns409OnSameKindOverlap 0.197 s
addOverrideAllowsCrossKindOverlap 0.187 s

MessagingJsonLdContentNegotiationTest

plainJsonAcceptStillReturnsFlatMessageResponse 0.370 s
sendingAMessageReturnsActivityStreamsCreateOnLdJsonAccept 0.373 s

FeedCommentLikeIntegrationTest

hardDeletingComment_cascadesToFeedPostCommentLikes 0.290 s
likeOnMissingComment_returns404 0.212 s
likeOnSoftDeletedComment_returns404 0.238 s
firstLike_returns200_withViewerHasLikedTrue_andCount1 0.237 s
secondLike_togglesOff_withViewerHasLikedFalse_andCount0 0.234 s
listComments_perCommentLikedFlagReflectsViewer 0.416 s
anonymousLike_returns403 0.199 s
twoViewersLikeSameComment_likeCountIs2_andEachViewerSeesOwnFlag 0.411 s

JwtChannelInterceptorSubscribeTest

nonStompMessagePassesThrough 0.224 s
subscribeRejectedWhenDestinationIdIsMalformed 0.002 s
subscribeFeedRejectedWhenUserSubscribesToOthersTopic 0.001 s
subscribeFeedPassesWhenUserSubscribesToOwnTopic 0 s
subscribeRejectedWhenPrincipalIsMissing 0 s
subscribeFeedRejectedWhenDestinationIdIsMalformed 0.001 s
subscribePassesWhenPrincipalIsParticipant 0.002 s
connectRejectedWhenTokenInvalid 0.002 s
subscribeRejectedWhenPrincipalIsNotParticipant 0.001 s
subscribePassesThroughWhenDestinationIsNull 0 s
subscribePassesThroughWhenDestinationIsOutsideManagedPrefix 0 s

StatsControllerTest

mentorStatsReturns200WithBody 0.003 s
menteeStatsReturns200WithBody 0.001 s
mentorStatsRequiresAuthentication 0 s
menteeStatsRequiresAuthentication 0.001 s
mentorStatsReturns200ForMenteeRoleToo 0 s

AttachmentStorageServiceTest

resolveUploadTargetRejectsFilenameThatEscapesUploadDir 0.004 s
rejectsFileShorterThanMagicWindow(String, String)[1] 0.003 s
rejectsFileShorterThanMagicWindow(String, String)[2] 0.001 s
rejectsFileShorterThanMagicWindow(String, String)[3] 0.001 s
rejectsFileShorterThanMagicWindow(String, String)[4] 0 s
rejectsFileShorterThanMagicWindow(String, String)[5] 0.001 s
rejectsFileShorterThanMagicWindow(String, String)[6] 0 s
storesValidUpload(String, String, byte[], String)[1] 0.001 s
storesValidUpload(String, String, byte[], String)[2] 0.001 s
storesValidUpload(String, String, byte[], String)[3] 0.001 s
storesValidUpload(String, String, byte[], String)[4] 0.001 s
storesValidUpload(String, String, byte[], String)[5] 0.001 s
storesValidUpload(String, String, byte[], String)[6] 0 s
rejectsWebpWithEachIndividualLetterMismatch(int, byte[])[1] 0 s
rejectsWebpWithEachIndividualLetterMismatch(int, byte[])[2] 0.001 s
rejectsWebpWithEachIndividualLetterMismatch(int, byte[])[3] 0 s
rejectsWebpWithEachIndividualLetterMismatch(int, byte[])[4] 0.001 s
rejectsOversizedFile 0 s
rollbackHookDeletesFileWhenSurroundingTransactionAborts 0.001 s
rejectsTextPlainContainingDelByte 0.001 s
storesValidPdf_andPersistsAttachmentRow 0 s
rejectsEmptyFile 0.001 s
rollbackHookIsNoOpWhenSurroundingTransactionCommits 0 s
idsAreUniquePerUpload 0.001 s
rejectsContentTypeMagicMismatch 0.001 s
rejectsDisallowedContentType 0 s
rejectsBinaryUploadedAsTextPlain 0 s
permitsUploadWhenUnderQuota 0 s
acceptsTextPlainWithTabCrAndUtf8HighBytes 0.001 s
rejectsUploadWhenPerUserHourlyQuotaIsExceeded 0 s
exposesUploadPath 0.001 s
rejectsBadMagic(String, String, byte[])[1] 0.001 s
rejectsBadMagic(String, String, byte[])[2] 0 s
rejectsBadMagic(String, String, byte[])[3] 0.001 s
rejectsBadMagic(String, String, byte[])[4] 0 s
rejectsBadMagic(String, String, byte[])[5] 0.001 s
rejectsBadMagic(String, String, byte[])[6] 0 s
rejectsBadMagic(String, String, byte[])[7] 0.001 s
rollbackHookSurvivesFileAlreadyDeleted 0 s
rejectsNullFile 0.001 s
rejectsFileWithNullContentType 0 s

MajorSignalsTest

exact_killSwitch_off 0 s
code_returnsCorrectIdentifiers 0 s
field_nullEitherSide_returnsNone 0.001 s
exact_mismatch_returnsNone 0 s
exact_match_caseInsensitive_emitsFactor 0 s
field_nullSignalsRecord_disabled 0 s
field_match_caseInsensitive_emitsFactor 0 s
exact_nullEitherSide_returnsNone 0 s
field_killSwitch_off 0 s
exact_nullSignalsRecord_disabled 0 s
field_mismatch_returnsNone 0 s

FeedRealtimeIntegrationTest

engagementPush_skippedOnBookmark 3.697 s
followerReceivesEngagementPush_onCommentLike 2.664 s
followerReceivesFeedSharePushPayload_onBareRepost 2.660 s
engagementPush_carriesAuthoritativeCounts 3.032 s
engagementPush_skippedOnEditComment 3.601 s
followerReceivesEngagementPush_onComment 2.581 s
followerReceivesFeedPostPushPayload_withinNfrBudget 2.386 s
followerReceivesEngagementPush_onRepost 2.561 s
followerReceivesEngagementPush_onLike 2.584 s
followerReceivesEngagementPush_onUnlike 2.811 s
markReadAndUnreadCount_endToEndShape 0.399 s
subscribingToAnotherUsersFeedTopicIsRejected 0.365 s
authorAlsoReceivesEngagementPush_onOwnPostLiked 2.629 s
followerReceivesEngagementPush_onCommentDelete 2.753 s
followerReceivesEngagementPush_onShare 2.581 s
followerReceivesFeedSharePushPayload_onQuoteShareWithCommentary 2.584 s

FollowGraphRepositoryIntegrationTest

detachDeleteUser_removesUserAndAllIncidentEdges 1.592 s
countAllFollows_returnsZero_onEmptyGraph 0.034 s
deleteFollow_removesOnlyTheTargetedEdge 0.249 s
mergeFollow_isIdempotent 0.052 s
mergeFollow_isDirectional 0.042 s
deleteFollow_isSilent_whenEdgeDoesNotExist 0.023 s
deleteAllFollowEdges_clearsRelationshipsButKeepsNodes 0.124 s
mergeFollow_createsEdgeBetweenTwoUsers 0.021 s
mergeUser_isIdempotent 0.022 s
detachDeleteUser_isSilent_whenUserDoesNotExist 0.032 s

FeedReadServiceTest

search_lowercasesAndEscapesKeyword_beforeRepoCall 0.157 s
search_throws400_whenUntilFurtherThan1DayInFuture 0.001 s
followingFeed_populatesFromProjection_originalPostBranch 0.078 s
followingFeed_repostBranch_threadsShareMetadataThroughDto 0.001 s
followingFeed_emptyPage_shortCircuits 0 s
search_returnsEmpty_whenHashtagFailsNormalisation 0.001 s
forYouFeed_rankedByScore_descending 0.001 s
search_passesValidWindowToRepository 0 s
search_passesNormalisedHashtagToRepository 0 s
search_throws400_whenSinceFurtherThan10YearsInPast 0.001 s
search_throws400_whenSinceNotStrictlyBeforeUntil 0 s
search_throws400_whenEveryFilterIsNull 0.001 s
postsByAuthor_delegatesToRepoAndMapper 0 s
search_throws400_whenStringFiltersBlank_andTemporalAndLangNull 0.001 s
forYouFeed_emptyCandidates_returnsEmptyPageWithoutRanking 0 s
search_passesLangFilterToRepository 0 s

FollowControllerTest

follow_self_returns400_withProjectStandardErrorBody 0.004 s
listFollowers_missingTarget_returns404 0.001 s
follow_missingTarget_returns404 0.001 s
unfollow_returns204_evenWhenEdgeMissing 0.001 s
follow_unauthenticated_returns403 0.001 s
listFollowers_privacyGate_returns403 0.001 s
listFollowing_returnsPagedBodyShape 0.002 s
unfollow_unauthenticated_returns403 0.001 s
listFollowers_clampsExcessiveSize 0 s
follow_duplicate_returns200 0.001 s
followEndpointRegex_doesNotMatchMeInUrlSegment 0.001 s
listFollowers_returnsPagedBodyShape 0 s
follow_freshInsert_returns201 0.001 s
listFollowing_unauthenticated_returns401 0.001 s

BanServiceTest

recordCancellation_atThreshold_createsFirstBan_24h 0.001 s
recordCancellation_largeOrdinal_capsAtMaxBanHours 0 s
recordCancellation_secondBan_doublesDuration 0.001 s
imposeAdminBan_stampsSourceAdmin 0 s
isBannedReturnsTrueWhenActiveBanExists 0 s
liftBan_unknownBan_throws404 0.001 s
isBannedReturnsFalseWhenNoActiveBan 0 s
liftBan_alreadyLifted_isNoOp 0 s
liftBan_setsLiftedFieldsAndPublishesNotification 0.001 s
imposeSystemBan_stampsSourceSystemSpam 0 s
recordCancellation_belowThreshold_doesNotCreateBan 0 s
recordCancellation_unknownMentee_throws404 0.001 s

FeedInteractionServiceTest

editComment_throws404_whenCommentMissing 0.001 s
deleteComment_throws403_whenRequesterIsNotAuthor 0 s
toggleLike_throws404_whenPostMissingOrSoftDeleted 0.001 s
addComment_throws404_whenPostMissing 0 s
recordShare_notifiesNonSelfAuthor 0.002 s
deleteComment_setsDeletedAt_andSaves 0.004 s
toggleLike_secondCall_deletesAndSkipsNotification 0.001 s
addComment_throws400_onNullBody 0.001 s
editComment_throws404_whenSoftDeleted 0 s
editComment_throws403_whenRequesterIsNotAuthor 0.001 s
toggleLike_firstCall_insertsAndNotifiesNonSelfAuthor 0 s
getComment_throws404_whenParentPostSoftDeleted 0.001 s
deleteComment_throws404_whenCommentMissing 0 s
editComment_throws400_onBlankBody 0.001 s
interactionState_nullViewer_skipsViewerProbes 0 s
addComment_selfComment_skipsNotification 0 s
getComment_throws404_whenCommentMissingOrSoftDeleted 0.001 s
getComment_returnsDto_whenBothVisible 0 s
batchCounts_emptyInput_returnsEmptyMapWithoutQuerying 0 s
toggleBookmark_secondCall_deletes 0.001 s
toggleBookmark_throws404_whenPostMissing 0 s
addComment_savesAndNotifiesNonSelfAuthor 0.001 s
toggleBookmark_firstCall_inserts 0 s
toggleLike_selfLike_skipsNotificationButStillInserts 0.001 s
recordShare_throws404_whenPostMissing 0 s
interactionState_withViewer_consultsAllRepositories 0.001 s
deleteComment_isIdempotent_whenAlreadySoftDeleted 0 s
editComment_updatesBodyAndUpdatedAt 0.001 s
addComment_throws400_onBlankBody 0.002 s
batchCounts_emitsZerosForPostsWithNoLikesOrComments 0 s
recordShare_selfShare_skipsNotification 0.001 s

OrderedCollectionPageJsonLdAdviceTest

wraps_lastPage_emitsPrevAndFirstButNotNext 0.001 s
wraps_middlePage_emitsAllFourPagingLinks 0 s
wraps_pinsContentTypeToTheNegotiatedAsJsonType 0.001 s
passesThrough_pageBody_whenAcceptIsPlainJson 0 s
stripsInnerContextFromEachItem 0 s
wraps_emptyPageIntoOrderedCollectionPage_withZeroTotalItems 0.001 s
wraps_firstPageOfMany_emitsNextAndLastButNotPrev 0 s
wraps_singlePageResult_emitsNeitherPrevNorNext 0 s

AdvancedForYouFeedIntegrationTest

advancedRankerEnabled_singleCandidate_doesNotErrorOnPipeline 0.417 s
advancedRankerEnabled_responseCarriesFactorsField 0.367 s

MentorshipLifecycleIntegrationTest

extendMentorshipRejectsInvalidMonths 0.450 s
ratingScoreMustBeWithinOneToFive 0.422 s
rateMentorAfterCompletionAndProfileShowsAggregate 0.405 s
autoCompleteFlipsExpiredMentorshipToCompleted 0.372 s
extendMentorshipByMenteeReturns403 0.391 s
endMentorshipByMenteeReturns403 0.353 s
cancelByMentorReturns403 0.360 s
rateMentorWhileActiveReturns409 0.374 s
cancelByMenteeIncrementsCancelCount 0.356 s
rateMentorByMentorReturns403 0.349 s
profileWithoutRatingsShowsNullAndZero 0.344 s
extendMentorshipByMentorPushesEndDate 0.360 s
endMentorshipByMentorSetsCompletedAndNotifiesMentee 0.348 s

AvailabilityOverrideServiceTest

add_allowsAdjacentRanges 0.001 s
add_rejectsSameKindOverlap 0.001 s
add_allowsCrossKindOverlap_thePointOfTheModel 0 s
remove_throws404_whenOverrideMissing 0 s
list_throws404_whenMentorMissing 0 s
remove_deletesOwnOverride 0 s
list_returnsPagedResponses 0 s
add_persistsOverride_whenNoSameKindOverlap 0.001 s
add_throws404_whenMentorMissing 0 s
remove_throws403_whenOverrideBelongsToDifferentMentor 0 s

FeedFanoutListenerTest

onFeedPostCreated_singleFollower_singleBroadcast 0.099 s
onFeedPostCreated_continuesFanout_whenBrokerThrowsForOneRecipient 0.001 s
onFeedPostCreated_destinationsAllUseFeedPrefix 0 s
onFeedPostCreated_isNoOp_whenAuthorHasNoFollowers 0.001 s
onFeedPostCreated_buildsPayloadFromEventFields 0 s
onFeedPostCreated_broadcastsToEveryFollower_whenAuthorHasFollowers 0 s
onFeedPostCreated_doesNotPropagate_whenFollowerLookupThrows 0 s

AvailabilityIntegrationTest

overlappingSlotRejected 0.194 s
mentorCanAddAndRetrieveSlots 0.167 s
menteeCanViewMentorAvailability 0.316 s
mentorNotFoundReturns404 0.168 s
bulkUpdateReplacesExisting 0.174 s
menteeCannotModifyAvailability 0.169 s
adjacentSlotsAllowed 0.180 s
mentorCanDeleteOwnSlot 0.197 s

MentorRatingReadIntegrationTest

mentorRatings_unauthenticated_returns403 0.513 s
mentorshipRating_mentorReadsRatingTheyReceived_returns200 0.522 s
mentorRatings_returnsPagedListSortedNewestFirst 0.596 s
mentorRatings_includesRatingsWithoutComment 0.512 s
mentorshipRating_unauthenticated_returns403 0.501 s
mentorshipRating_nonParticipant_returns404 0.531 s
mentorshipRating_noRatingExistsYet_returns404 0.533 s
mentorshipRating_menteeReadsOwnRating_returns200 0.551 s
mentorRatings_paginationWorks_size1Page0AndPage1 0.559 s
mentorRatings_emptyForUserWithNoRatings 0.629 s

PopularityByMajorCacheTest

firstCall_invokesRepo_andMapsRowsByUserId 0.091 s
nullMajor_returnsEmptyMap_andSkipsRepo 0.001 s
blankMajor_returnsEmptyMap_andSkipsRepo 0 s
emptyRepoResult_isCached_too 0.001 s
differentMajors_areCachedIndependently 0 s
invalidateAll_refreshesOnNextCall 0 s
secondCallForSameMajor_hitsCache_oneRepoInvocationOverall 0 s

SemanticMatchSignalTest

negativeCosineClampedToZero 0 s
postEmbeddingMissing_fallsBackToJaccard 0 s
lowCosine_returnsScoreWithoutFactor 0 s
viewerHasNoInterests_returnsNoneNoFactor 0 s
embedderUnavailable_fallsBackToJaccardAndEmitsSemanticUnavailable 0 s
highCosine_emitsFormattedFactor 0 s
killSwitchOff_isEnabledFalse 0 s

FeedPostEmbeddingTextTest

viewerInterests_alphabeticalSpaceJoined 0 s
postWithBodyAndHashtags_concatenatesBothInAlphabeticalTagOrder 0 s
postWithNothing_returnsEmptyString 0 s
nullPost_returnsEmptyString 0 s
postWithBodyAndNoTags_returnsBodyOnly 0 s
postWithWhitespaceBody_skipsBlankBodySegment 0 s
postWithEmptyBody_returnsHashtagsOnly 0 s
viewerInterestsWithBlankEntries_skipsBlanks 0 s
viewerInterestsEmpty_returnsEmptyString 0.001 s

MilestoneServiceTest

updateActionItem_NonParticipantForbidden 0.087 s
updateActionItem_Text_MentorSuccess 0 s
updateActionItem_Toggle_MenteeSuccess 0.001 s
createMilestone_NonParticipantForbidden 0 s
createMilestone_InactiveMentorship_Conflict 0 s
createMilestone_MenteeForbidden 0.001 s
createMilestone_Success 0 s
createMilestone_MentorshipNotFound 0 s
updateActionItem_InactiveMentorship_Conflict 0.001 s
createMilestone_InactiveAndNullGoal_StatusErrorWins 0 s
updateActionItem_Text_MenteeForbidden 0 s
createMilestone_TargetDateOutsideMentorship_BadRequest 0 s
createMilestone_NullGoal_GoalRequired 0 s
createMilestone_NonMentorAndNullGoal_ForbiddenWins 0 s
createMilestone_BlankGoal_GoalRequired 0 s

MentorshipTest

hasSharedGoalIsFalseWhenNull 0 s
hasSharedGoalIsFalseWhenWhitespaceOnly 0 s
hasSharedGoalIsFalseWhenEmpty 0 s
hasSharedGoalIsTrueWhenSingleChar 0 s
hasSharedGoalIsTrueForTypicalSentence 0 s

MentorshipCleanupServiceTest

deletesMeetingsInBatch 0.167 s
cleansUpAllChildTypesInOneCall 0.001 s
deletesConversationWhenPresent 0 s
deletesMilestonesAndTheirReminders 0 s
deletesTasksAndTheirReminders 0.001 s
skipsReminderDeleteWhenNoChildren 0 s

ConversationServiceTest

findAdminBroadcastForReader_callerMissing_runsFullSync 0.163 s
findOrCreate_authorizesMentee_evenIfRequestIsForMentor 0.001 s
mentorPair_delegatesToCreator_withCanonicalOrder 0.001 s
findAdminDirectByPair_nullSide_returnsEmpty 0 s
mentorPair_throws400_whenOtherIsAnAdmin 0 s
findOrCreate_recoversFromConcurrentCreate_viaUniqueConstraintRetry 0.001 s
findAdminDirectByPair_normalisesPairOrderingBeforeLookup 0 s
findOrCreate_delegatesToCreator_whenMissing 0 s
mentorPair_recoversFromConcurrentCreate_viaUniqueConstraintRetry 0.001 s
findAdminBroadcastForReader_noSingleton_returnsEmpty_withoutCreating 0.001 s
findAdminBroadcastForReader_callerAlreadyParticipant_skipsSync 0 s
findOrCreate_returnsExistingConversation_whenAlreadyPresent 0 s
mentorPair_throws400_whenRequesterIsNotAMentor 0.001 s
findOrCreate_returnsExisting_evenWhenMentorshipNotActive 0 s
mentorPair_canonicalisesArgumentOrder_onCreatePath 0.001 s
findAdminDirectByPair_selfPair_returnsEmpty 0 s
mentorPair_recoveryWithoutRow_throwsIllegalState 0.001 s
mentorPair_throws404_whenRequesterNotFound 0.001 s
mentorPair_throws404_whenOtherNotFound 0 s
findOrCreate_throwsNotFound_whenMentorshipNotActiveAndNoConversation 0.001 s
mentorPair_throws400_whenSelfPair 0 s
mentorPair_throws400_whenOtherIsNotAMentor 0 s
findOrCreate_throwsNotFound_whenMentorshipMissing 0 s
mentorPair_returnsExistingConversation_whenAlreadyPresent 0.001 s
findOrCreate_throwsForbidden_forNonParticipant 0 s

TestSupportControllerTriggerTest

triggerReminderScheduler_recordsTaskReminderState 0.057 s
triggerMeetingAutoDecline_flipsPendingPastDeadlineToExpired 0.022 s
triggerMentorshipAutoCompletion_completesExpiredActiveMentorship 0.022 s

FcmPushDeliveryServiceTest

sendsToAllRegisteredDevices 0.367 s
swallowsSdkExceptions 0.094 s
prunesUnregisteredTokens 0.001 s
skipsDispatchWhenNoDevices 0 s

FollowGraphProjectionServiceFailurePathTest

initial_throwingDriver_keepsReadyFalse 0.194 s
rebuildProjection_throwingDriver_keepsReadyFalse_andDoesNotPropagate 0.002 s

SearchPerformanceTest

getCandidateMentees_completesWithinQueryBudget 0.213 s
getTopMentors_completesWithinQueryBudget 0.941 s
getTopMentors_keywordFilter_completesWithinQueryBudget 0.753 s
getTopMentors_emptyResult_doesNotIncurExtraQueries 0.126 s

UserDeviceControllerTest

registerRejectsUnauthenticated 0.002 s
registerReturns201WithBody 0.002 s
unregisterReturns204 0 s
registerRejectsOversizedTokenWith400 0.002 s
registerRejectsBlankTokenWith400 0.001 s

FeedPostMapperTest

toResponses_nullInput_returnsEmptyList 0.091 s
toResponses_emptyInput_returnsEmptyList_withoutDbCall 0 s
toResponse_setsIsAuthorFalse_whenViewerIsDifferent 0.001 s
toResponse_setsIsEditedTrue_whenUpdatedAtAfterCreatedAt 0 s
toResponse_authorFirstNameNull_whenUserNotFound 0 s
toResponse_setsIsAuthorTrue_whenViewerIsAuthor 0 s
toResponses_listPath_batchesAuthorLookup 0.001 s
toResponse_setsIsAuthorFalse_whenViewerIsNull 0 s
toResponse_alphabeticalHashtagOrder_regardlessOfInsertionOrder 0 s

MentorPairInboxIntegrationTest

receiverViewsInboxBeforeReading_unreadMatchesMessageCount 0.723 s
markReadByReceiver_unreadDropsToZero 0.554 s
fivePairConversations_paginateCleanly 1.456 s
senderViewsOwnInbox_unreadIsZero 0.449 s
menteeCallingInbox_returns403 0.207 s
multiplePeers_orderedByMostRecentActivity 0.578 s
mentorWithNoPairConversations_seesEmptyInbox 0.249 s

MentorshipRequestIntegrationTest

mentorCanListReceivedRequests 0.534 s
menteeCanListSentRequests 0.512 s
menteeWithActiveMentorReturns409 0.378 s
mentorCannotAccessSentEndpoint 0.168 s
duplicatePendingRequestReturns409 0.343 s
fullCapacityMentorReturns409 0.348 s
menteeCannotAccessReceivedEndpoint 0.172 s
menteeCanCreateRequest 0.337 s

NotificationServiceTest

markAsReadUpdatesUnreadNotification 0.095 s
markAllAsReadReturnsUpdatedCount 0 s
markAsReadThrowsWhenNotificationNotFound 0.001 s
getNotificationsReturnsMappedResults 0 s

CalendarExportServiceTest

exportThrows404WhenMentorMissing 0.244 s
availableOverride_emitsVEventWithoutRruleAndTransparent 0.020 s
emptyMentor_emitsValidVCalendarWithNoEvents 0.012 s
uidsAreStableAcrossExports 0.003 s
recurringSlot_emitsVEventWithRruleWeeklyAndTransparent 0.010 s
mentorWithMissingName_fallsBackToGenericLabel 0.007 s
mixedSlotsAndOverrides_emitOneVEventEach 0.007 s
unavailableOverride_emitsVEventWithOpaqueAndUnavailableSummary 0.008 s
calendarHeaderCarriesProductIdVersionAndCalscale 0.001 s

MentorPairMessageControllerTest

send_emptyContent_returns400 0.004 s
list_asMentor_returns200 0.002 s
list_asMentee_returns403 0.001 s
send_asMentor_returns201 0.001 s
markRead_asMentor_returns204 0.001 s
send_unauthenticated_returns403 0.001 s
send_unknownTarget_returns404 0.001 s
send_oversizedContent_returns400 0.001 s
send_asMentee_returns403 0.001 s
markRead_asMentee_returns403 0.001 s
send_menteeTarget_returns400 0.001 s
send_selfPair_returns400 0.001 s

FileStorageServiceTest

storeFile_generatesUniqueFilenames 0.001 s
storeFile_textFile_throws 0 s
deleteFile_nonExistentFile_doesNotThrow 0.001 s
storeFile_ignoresOriginalFilename 0 s
deleteFile_externalUrl_doesNothing 0.001 s
storeFile_validWebp_returnsUrlWithWebpExtension 0 s
storeFile_validJpeg_returnsUrlAndCreatesFile 0.001 s
deleteFile_existingFile_removesIt 0.001 s
deleteFile_pathTraversalAttempt_doesNothing 0 s
storeFile_validPng_returnsUrlWithPngExtension 0.001 s
storeFile_exceedsMaxSize_throws 0 s
storeFile_validGif_returnsUrlWithGifExtension 0.001 s
deleteFile_nullUrl_doesNotThrow 0 s
storeFile_tooSmallToValidate_throws 0.001 s
storeFile_nullFile_throws 0 s
storeFile_disallowedContentType_throws 0.001 s
storeFile_spoofedContentType_pngClaimedAsJpeg_throws 0 s
storeFile_riffAviClaimedAsWebp_throws 0.001 s
storeFile_emptyFile_throws 0 s
storeFile_spoofedContentType_jpegWithWrongBytes_throws 0.001 s

BanIntegrationTest

thirdCancellation_imposesFirstBan_andBlocksNextCreate 1.109 s
mentee_cancelRequestNotOwned_returns409 0.549 s
admin_canListAndLiftBan_andLiftSendsNotification 0.450 s
mentee_cancelOwnPendingRequest_returns204_andRecordsViolation 0.384 s
mentee_cannotAccessAdminBanEndpoints 0.329 s
banExpiryScheduler_firesNotificationOnceForExpiredBan 0.475 s

FeedTrendingIntegrationTest

trendingList_limitZero_returns400 0.192 s
trendingList_unauthenticated_returns403 0.026 s
trendingList_emptyWhenNoTagHasTwoDistinctPosts 0.205 s
trendingList_returnsTagsRankedByScore_filteringSingleAuthorTagsOut 0.572 s
trendingList_clampsLimitAbove50_returns400 0.172 s
v45MaterializedViewAndIndexes_existAfterMigration 0.029 s
refreshConcurrently_succeedsRepeatedly_withoutLockingReaders 0.025 s

MenteeRepositorySearchTest

requesterMentorId_filtersByOverlap 0.099 s
keywordMatches_interestsElementCollection 0.025 s
interestsFilter_orAcrossValues 0.022 s
emptyResult_returnsEmptyPage 0.014 s
sqlInjectionAttempt_treatedAsLiteralSubstring 0.018 s
requireUnattachedFalse_includesAttachedMentees 0.016 s
requireUnattachedTrue_excludesAttachedMentees 0.016 s
keywordMatches_skillsElementCollection 0.015 s
wildcardEscape_treatedAsLiteral 0.014 s
keywordMatches_goalsAndMajor 0.016 s

SemanticSimilarityServiceTest

embed_coldCache_callsModelAndCachesResult 0.001 s
cosine_identicalVectors_isOne 0 s
cosine_zeroNorm_returnsZero 0.001 s
invalidateAll_clearsCache 0 s
embed_returnsEmptyForNullInput 0 s
cacheKey_includesModelName_soUpgradeRepartitionsCleanly 0.001 s
embed_noModelBean_returnsEmptyAndDoesNotThrow 0 s
embed_warmCache_skipsModelCallAndBumpsHitCounter 0 s
embed_returnsEmptyForBlankInput 0 s
nullCacheConfig_fallsBackToDefaults 0.001 s
cosine_lengthMismatch_returnsZero 0 s
embed_modelThrows_returnsEmptyAndBumpsFailureCounter 0.001 s
cosine_oppositeVectors_isMinusOne 0 s
cosine_orthogonalVectors_isZero 0 s
cosine_nullOrEmpty_returnsZero 0 s
embed_differentInputs_keyedSeparately 0.001 s

TaggedTermTest

noArgsConstructorYieldsNullsForHibernate 0 s
differentLabelsAreNotEqualEvenWithSameUri 0 s
differentUrisYieldDifferentEntries 0 s
equalsAndHashCodeUseBothLabelAndUri 0 s

AdminUserListControllerTest

listUsers_asAdmin_returnsPagedBody 0.009 s
listUsers_clampsSizeOver100 0.002 s
listUsers_unauthenticated_returns403 0.001 s
listUsers_keywordFilter_passesQDownstream 0.001 s
listUsers_invalidRoleEnum_returns400 0.008 s
listUsers_filterByRole_mentor 0.002 s
listUsers_nonAdmin_returns403 0.001 s
listUsers_filterByBanStatus_active 0.001 s
listUsers_combinedFilters_allPassedThrough 0.001 s

FeedCommentLikePerformanceTest

listComments_isBoundedByConstantQueryCount_regardlessOfCommentCount 0.186 s

FeedPostRepositoryTest

persistAndRetrieve_postWithHashtags_roundtrips 0.050 s
countUnreadFollowingPostsCapped_excludesSoftDeletedPosts 0.041 s
countUnreadFollowingPostsCapped_capsAtCapPlusOne_shortCircuitingTheScan 0.050 s
hashtagOrder_isAlphabeticalOnRead 0.029 s
findByIdAndDeletedAtIsNull_returnsEmpty_forNonexistentId 0.012 s
findByIdAndDeletedAtIsNull_hidesSoftDeletedPost 0.024 s
bodyNonBlankCheck_rejectsWhitespaceOnlyBody 0.007 s
compositePk_rejectsDuplicateTagOnSamePost 0.020 s
bodyLengthCheck_rejectsBodyOver2000Chars 0.006 s
orphanRemoval_removesTagFromCollection_deletesRow 0.016 s
countUnreadFollowingPostsCapped_excludesViewersOwnPosts_byJoiningThroughFollows 0.011 s
version_bumpsOnSave 0.009 s
version_concurrentUpdate_raisesOptimisticLockingFailureException 0.015 s
countUnreadFollowingPostsCapped_countsOnlyPostsByFolloweesNewerThanSince 0.016 s
hashtagLengthCheck_rejectsTagOver50Chars 0.007 s
cascade_deletingUser_reapsPostsAndHashtags 0.014 s
countUnreadFollowingPostsCapped_returnsZero_whenViewerHasNoFollows 0.009 s

AdminMessagingControllerTest

markBroadcastRead_asAdmin_returns204 0.003 s
listBroadcast_unauthenticated_returns403 0 s
broadcast_asAdmin_returns201 0.002 s
markBroadcastRead_asMentee_returns403 0.001 s
listBroadcast_noBroadcastEverSent_returnsEmptyPageWithoutSideEffect 0.002 s
listBroadcast_asAdmin_returns200WithPagedMessages 0.001 s
markBroadcastRead_noBroadcastEverSent_returns204NoOp 0.001 s
direct_asAdmin_returns201 0.001 s
listBroadcast_asMentor_returns403 0.001 s
direct_asMentee_returns403 0.001 s

FollowRecommendationManualScenarioTest

richScenario_topCandidateMatchesExpectations_andFactorsAreReadable 0.083 s
coldStartScenario_zeroFollowees_returnsMeaningfulRanking 0.021 s
mmr_doesNotDropItems_whenCandidatesExceedOutputK 0.052 s

FeedInteractionControllerTest

getComment_unauthenticated_returns403 0.001 s
getComment_parentPostSoftDeleted_returns404 0.002 s
getComment_nonNumericId_returns404FromRouteRegex 0.001 s
getInteractions_emitsNoCacheControl 0.001 s
getComment_softDeletedComment_returns404 0.001 s
getInteractions_softDeletedPost_returns404 0 s
getComment_happyPath_returnsComment 0.002 s

FollowGraphResyncJobTest

runResync_triggersFullRebuild_whenDriftExceedsThreshold 0.181 s
runResync_replaysUnfollowedEvents_viaDeleteFollow 0.001 s
driftExceedsThreshold_anyDeltaOnSmallGraph 0 s
drainFailedQueue_continuesAfterFailedRow 0.001 s
runResync_replaysUserDeletedEvents_viaDetachDelete 0 s
runResync_skipsRebuild_whenNeo4jCountQueryFails 0 s
runResync_replaysQueuedFollowedEvents_thenMarksResynced 0.001 s
runResync_doesNothing_whenCountsMatchAndQueueEmpty 0 s
driftExceedsThreshold_onePercentToleranceOnLargeGraph 0 s

MenteeAvailabilityIntegrationTest

menteeCanAddAndRetrieveOwnSlots 0.180 s
mentorCannotModifyMenteeAvailability 0.168 s

DirectInteractionSignalTest

nullInteractionSet_returnsNone 0 s
candidateInSet_returnsFullScore_andFactor 0 s
candidateNotInSet_returnsNone_noFactor 0 s
contractMetadata_isExposed 0 s
emptyInteractionSet_returnsNone 0 s

AdminBootstrapperTest

contextLoadCreatesAdminAndRerunIsIdempotent 0.151 s

MentorRepositorySearchTest

nullColumns_doNotMatchKeyword 0.014 s
wildcardPercent_escapedAsLiteral 0.013 s
combinedFilters_appliedAsAndAcrossCategories_includingNewFilters 0.018 s
availabilityDays_singleDayMatchesMentorWithThatSlot 0.013 s
emptyElementCollection_doesNotMatchInterestFilter 0.011 s
keywordMatches_field 0.014 s
keywordMatches_interestsElementCollection 0.013 s
interestsFilter_orAcrossValues 0.014 s
pagination_orderByIdDescIsDeterministic 0.014 s
keywordMatches_mentoringGoals 0.012 s
availabilityDays_multiDayUsesOrSemantics 0.015 s
emptyResult_returnsEmptyPage 0.010 s
requesterMenteeId_crossDayDoesNotOverlap 0.014 s
sqlInjectionAttempt_treatedAsLiteralSubstring 0.012 s
availabilityDays_nullReturnsAll 0.013 s
keywordIsCaseInsensitive 0.011 s
requireCapacityTrue_excludesFullMentor 0.010 s
duplicateInterestValues_idempotent 0.010 s
keywordMatches_preferredMenteeSkillsElementCollection 0.012 s
combinedFilters_appliedAsAndAcrossCategories 0.013 s
wildcardUnderscore_escapedAsLiteral 0.011 s
availabilityDays_noMatchingDayExcludes 0.010 s
majorFilter_matchesPreferredMenteeMajorOrField 0.011 s
keywordMatches_expertise 0.011 s
capacityBoundary_oneLessThanMaxIsIncluded 0.010 s
mentorshipDuration_nullReturnsAll 0.011 s
mentorshipDuration_inListMatches 0.011 s
requesterMenteeId_filtersByOverlap 0.012 s
requireCapacityFalse_includesFullMentor 0.011 s
pagination_returnsRequestedSliceWithCorrectTotal 0.017 s
requesterMenteeId_excludesNonOverlapping 0.012 s
skillsFilter_orAcrossValues 0.012 s

FailedGraphSyncSchemaTest

followedRow_rejectedWhenFolloweeIsNull 0.275 s
userDeletedRow_rejectedWhenFolloweeIsPresent 0.006 s
userDeletedRow_persistsWithNullFollowee 0.016 s
deleteResyncedOlderThan_deletesOnlyAgedResynced_keepsPending 0.089 s
unfollowedRow_persistsWithBothEndpoints 0.005 s
findAllUnsynced_returnsOnlyRowsWithNullResyncedAt 0.010 s
followedRow_persistsWithBothEndpoints 0.005 s

BucketCacheTest

concurrentGetOrCreateReturnsSingleInstance 0.002 s
differentKeysGetIndependentBuckets 0 s
differentRulesGetIndependentBuckets 0.001 s
returnsSameBucketForSameKey 0 s
bucketRefillsWhenClockAdvances 0 s

AdvancedMentorRankerTest

disabledSignal_isSkipped 0.078 s
negativeNormalizedScore_clampedToZero 0 s
zeroWeightSignal_runsComputeAndPreservesInformationalFactors 0 s
noSignals_returnsZeroScoreAndEmptyFactors 0 s
overOneNormalizedScore_clampedToOne 0 s
perfectMatch_scoresOneHundred 0 s
weightedSumExceedingOne_clampedAtHundred 0.001 s
negativeWeightSignal_runsComputeButContributesZero 0 s
factorOrdering_followsSignalRegistrationOrder 0 s
enabledSignals_aggregateAndScaleToHundred 0 s

MentorProfileTextTest

mentor_emptyWhenAllFieldsBlank 0 s
mentee_emitsAllSectionsWhenPresent 0 s
mentor_emitsAllSectionsWhenPresent 0.001 s
mentor_skipsBlankAndNullFields 0 s
mentee_emptyWhenAllFieldsBlank 0 s
mentee_skipsBlankAndNullFields 0 s

AdminUserDetailControllerTest

getUserDetail_missingUser_returns404 0.002 s
getUserDetail_asAdmin_returns200WithFlatJsonShape 0.002 s
getUserDetail_nonAdmin_returns403 0.002 s

AdminDirectMessageControllerTest

list_noConversationForPair_returns404 0.005 s
markAllRead_noConversationForPair_returns404 0.002 s
list_asAdminSender_returns200 0.001 s
list_asMenteeRecipient_returns200 0.001 s
markAllRead_asMenteeRecipient_returns204 0.001 s
list_unauthenticated_returns403 0.001 s

ProfileTaxonomyIntegrationTest

mentorExpertiseRejectsHttpsVariant 0.203 s
taxonomyEndpointsRequireAuthentication 0.028 s
mentorProfileWithMalformedUriReturns400 0.170 s
mentorJsonLdEmitsAtIdForTaggedEntriesAndPlainStringForUntagged 0.203 s
mentorProfileWithLabelsAndUrisRoundTripsBothHalves 0.212 s
mentorProfileWithMismatchedParallelLengthsReturns400 0.177 s
mentorProfileLegacyPayloadStillRoundTripsWithNullUriSiblings 0.490 s
taxonomyFieldsEndpointReturnsIscedFUrisForBundledCatalogue 0.224 s
mentorInterestsAcceptEscoOrWikidataButRejectIscedF 0.219 s

ThompsonSamplingServiceTest

firstEngagement_createsRowAtAlphaTwo 0.037 s
sampleBetaUniformForPrior 0.013 s
duplicateNormalizedTags_doNotRaiseOnConflictRowTwice 0.010 s
multiTagEngagement_oneRoundTrip_creates_oneRowPerNormalizedTag 0.009 s
emptyHashtags_doesNothing 0.008 s
secondEngagement_incrementsAlphaToThree 0.007 s
nullViewer_doesNothingAndSampleReturnsUniform 0.005 s
samplePosteriorNoRow_returnsBeta11Sample_doesNotInsert 0.062 s
sampleBetaConcentratesAsAlphaGrows 0.004 s

MatchNotificationIntegrationTest

run_skipsMenteeWithActiveMentor 0.561 s
firstRun_publishesAndUpsertsForEligibleMentee 0.360 s
secondRun_skipsWhenTopMatchUnchanged 0.893 s
run_publishesAgainWhenTopMatchChanges 0.585 s
firstNotificationFiresWhenStateRowReferencesDeletedCounterpart 0.207 s

LastFeedReadAtRepositoryTest

cascadeOnUserDelete_dropsTheCursor 0.018 s
findById_returnsEmpty_whenCursorWasNeverSet 0.007 s
markRead_insertsRow_whenCursorIsAbsent 0.012 s
markRead_updatesRow_whenCursorIsPresent 0.020 s
markRead_throwsForUnknownUserId_dueToForeignKey 0.008 s
markRead_isIdempotentWithRespectToRowCount 0.010 s

FeedPostJsonLdMappingTest

apply_emitsAttributedToWithPersonIri 0 s
apply_omitsContentMapAndInLanguage_whenLangAbsent 0 s
apply_emitsInteractionStatistic_withAllFourCounters 0 s
apply_emitsContextSchemaOrgAndActivityStreams_inThatOrder 0 s
apply_omitsUpdated_whenPostNotEdited 0.001 s
apply_emitsContentMapAndInLanguage_whenLangPresent 0 s
apply_headline_truncatesAtWordBoundary_whenContentExceeds200Chars 0.001 s
apply_emitsBothTypesAndCanonicalIri 0 s
apply_emitsSchemaOrgArticleTerms_alongsideAS2Aliases 0 s
apply_emitsUpdated_whenPostEdited 0 s
apply_emitsHashtagsAsAS2Hashtag_withBareStringName 0 s
supports_acceptsFeedPostResponse_andNothingElse 0 s
apply_emitsAttachments_whenPostHasMedia 0.001 s

TimelineItemTypeTest

milestoneHasPriorityZero 0.001 s
meetingHasPriorityOne 0 s
taskHasPriorityTwo 0 s

AvailabilityServiceTest

addSlotRejectsOverlapWithExisting 0.002 s
removeSlotSuccess 0 s
bulkUpdateAllowsDifferentDays 0.001 s
bulkUpdateAllowsAdjacentSlots 0 s
addSlotAllowsAdjacentToExisting 0 s
bulkUpdateRejectsOverlapsWithinSet 0.001 s
getSlotsReturnsSorted 0 s
addSlotMentorNotFound 0 s
bulkUpdateEmptyListClearsAll 0 s
getSlotsMentorNotFound 0.001 s
bulkUpdateReplacesAll 0 s
removeSlotNotFound 0 s
addSlotSuccess 0 s

MentorshipRequestControllerTest

getReceivedRequestsReturns200ForMentor 0.006 s
createRequestReturns403WithoutToken 0.001 s
getReceivedRequestsReturns403ForMenteeRole 0.002 s
createRequestReturns400WhenMentorIdMissing 0.004 s
createRequestReturns404WhenMentorNotFound 0.001 s
getSentRequestsReturns200ForMentee 0.002 s
getSentRequestsReturns403ForMentorRole 0.001 s
createRequestReturns409ForDuplicateRequest 0.001 s
createRequestReturns201ForMentee 0.002 s
createRequestReturns403ForMentorRole 0.001 s

MentorRatingServiceTest

getMentorshipRating_throws404_whenNoRatingExistsYet 0.079 s
getMentorRatings_passesPageableThroughToRepository 0 s
getMentorshipRating_alsoReturnsRatingForMentor 0 s
aggregateForMentor_returnsZerosWhenNone 0 s
createRating_rejectsActiveMentorship 0 s
createRating_rejectsMentorActor 0.001 s
createRating_persistsAndReturns 0 s
createRating_rejectsDuplicate_existsByCheck 0 s
aggregateForMentor_returnsAggregate 0.001 s
createRating_alsoAllowedAfterCancelled 0 s
createRating_rejectsDuplicate_raceLost 0 s
aggregateForMentor_handlesNullFromRepository 0 s
getMentorshipRating_returnsRatingForMentee 0.001 s
getMentorshipRating_throws404_whenCallerIsNotParticipant 0 s
createRating_rejectsNonParticipant 0 s

PageTotalCountHeaderAdviceTest

beforeBodyWrite_doesNotSetHeaderForNonPageBody 0.071 s
order_isAheadOfJsonLdAdvice 0 s
supports_returnsTrueUnconditionally 0 s
beforeBodyWrite_setsHeaderForPageBody 0 s
beforeBodyWrite_handlesEmptyPage 0.001 s

SharedInterestsSignalTest

noOverlap_returnsNone 0 s
overlap_scoresJaccardAndEmitsFactors 0 s
emptyEitherSide_returnsNone 0 s
factorListCappedAtThree 0 s
nullSignalsRecord_reportsDisabled 0 s
nullEntriesInListsAreSkippedNotCrashes 0 s
killSwitchOff_reportsDisabled 0 s

ViewerInteractionRepositoryTest

softDeletedParentPost_hidesBothLikeAndComment 0.032 s
softDeletedComment_isExcluded_butLiveLikeStillCounts 0.020 s
commenting_onAPost_surfacesItsAuthor 0.014 s
activityBeforeSinceWindow_isExcluded 0.013 s
likePlusComment_onSameAuthor_dedupes 0.017 s
activityByAnotherViewer_isExcluded 0.015 s
liking_aPost_surfacesItsAuthor 0.011 s

EmbeddingHealthIndicatorTest

noModel_outOfService 0 s
modelPresent_up_andDoesNotCallTheModel 0 s

ReportRepositoryTest

targetIdHasNoForeignKey_targetDeletionLeavesReportInPlace 0.013 s
persistAndRetrieve_roundTripsAllColumns 0.006 s
findForAdminQueue_filtersByStatus 0.008 s
findByReporterIdOrderByCreatedAtDesc_filtersToTheReporterOnly 0.011 s
reviewConsistencyCheck_rejectsOpenWithReviewer 0.006 s
descriptionLengthCheck_rejectsOversizeDescription 0.006 s
findForAdminQueue_returnsAll_whenNoFiltersApplied 0.006 s
noSelfReportCheck_rejectsUserReportingThemselves 0.005 s
findForAdminQueue_filtersByTargetType 0.008 s
cascadeOnReporterDelete_dropsTheReport 0.010 s
partialUniqueIndex_allowsFreshReportAfterPriorReportIsResolved 0.006 s
findAllAdminIds_returnsOnlyAdmins 0.010 s
partialUniqueIndex_blocksDuplicateActiveReportFromSameReporter 0.006 s

EngagementSignalTest

postWithZeroEngagement_scoresZeroNoFactor 0 s
scoreClampedToOne 0.001 s
zeroWindowMaxLog_noNaN_returnsNone 0 s
postAtWindowMax_scoresOneAndEmitsPopular 0 s
postBelowMedian_noPopularFactor 0 s
killSwitchOff_isEnabledFalse 0 s

ClientIpResolverTest

differentIpv6SlashSixtyFourPrefixesProduceDifferentKeys 0 s
normalizesIpv6ToSlashSixtyFour 0 s
readsTrustedXffEntryFromRightForSingleProxyHop 0 s
returnsUnknownWhenNoAddressAvailable 0 s
fallsBackToRemoteAddrWhenXffMissing 0 s
trimsXffWhitespace 0 s
clampsTrustedProxiesCountBelowOne 0 s
fallsBackToRemoteAddrWhenXffShorterThanTrustDepth 0 s
fallsBackToRemoteAddrWhenXffBlank 0 s
readsTrustedXffEntryAcrossMultipleProxyHops 0 s
usesRemoteAddrWhenForwardingDisabled 0 s
singleEntryXffWithDefaultTrustDepthReturnsThatEntry 0 s

FeedMediaIntegrationTest

duplicateAttachmentIdInRequest_rejectedAt400 0.233 s
fourImagePost_preservesOrder 0.250 s
softDeletePost_preservesAttachmentJunction 0.207 s
orphanCleanup_skipsFeedReferencedAttachments 0.240 s
singleImagePost_create_download_succeeds 0.198 s
fiveAttachments_rejectedAt400 0.176 s
chatOnlyAttachment_404OnFeedMediaPath 0.192 s
anonymousFeedMediaDownload_isRejectedBySecurity 0.021 s
attachmentAlreadyOnAnotherPost_rejectedAt409 0.265 s
nonUploaderAttachment_rejectedAt403 0.385 s
patchAttachmentIds_replacesSet 0.233 s
nonImageAttachment_rejectedAt400 0.179 s

FeedPostServiceHistoryTest

getPostHistory_clampsLimitAbove50 0.001 s
update_hashtagsChange_savesSnapshotWithPreviousHashtags 0 s
update_noOpHashtags_doesNotSaveSnapshot 0.001 s
getPostHistory_throws403_whenActorAccountMissing 0 s
getPostHistory_throws404_whenPostMissing 0 s
getPostHistory_clampsLimitBelow1 0 s
getPostHistory_adminCanReadAnyPost 0.001 s
update_noOpBody_doesNotSaveSnapshot 0 s
update_bodyAndHashtagsChange_savesExactlyOneSnapshot 0 s
update_bothFieldsNull_doesNotSaveSnapshot 0 s
getPostHistory_throws403_whenNonAuthorNonAdmin 0.001 s
getPostHistory_authorCanRead_evenWhenPostSoftDeleted 0 s
update_bodyChanges_savesSnapshotWithPreviousBodyAndHashtags 0 s

RateLimitPropertiesTest

nullKeyStrategyFailsValidation 0.007 s
validRulesPassValidation 0 s
zeroCapacityFailsValidation 0.001 s
nullRefillFailsValidation 0 s
emptyRulesIsValid 0 s
nullMethodFailsValidation 0.001 s
blankPatternFailsValidation 0 s
setRulesWithNullDefaultsToEmptyMap 0 s

DiversityFloorEnforcerTest

emptyPageOrPool_returnedUnchanged 0 s
zeroTopHashtagsCount_noOp 0.001 s
factorsAreImmutable 0 s
postWithNoHashtagsTreatedAsOutsider 0 s
pageAlreadyContainsOutsider_noSwap 0 s
allInTopHashtags_noOutsiderInPool_returnsOriginal 0.001 s
pageMonopolizedByTopHashtags_swapsInOutsider 0.001 s

ProfileIntegrationTest

updateProfile_skillsList_persistsForMentee 0.188 s
updateProfile_firstNameExactly100Chars_passes 0.168 s
getOwnProfile_responseDoesNotIncludePasswordHash 0.170 s
getProfileById_noToken_returns403 0.008 s
updateMenteeFields_commonFieldsUnchanged 0.170 s
getAllMentors_doesNotExposePasswordHash 0.173 s
getProfileById_mentorViewsMentor_returns200 0.331 s
updateMentor_menteeFieldsIgnored 0.176 s
updateProfile_zeroMentorshipDuration_returns400 0.165 s
updateMentorProfile_setCapacityToZero_works 0.173 s
updateProfile_setLocation_persistsCityAndCoordinates 0.182 s
getOwnProfile_mentor_doesNotExposeMenteeFields 0.177 s
getAllMentees_doesNotExposePasswordHash 0.334 s
updateMentee_mentorFieldsIgnored 0.173 s
updateProfile_bioTooLong_returns400 0.164 s
updateProfile_firstNameExactly1Char_passes 0.164 s
updateMenteeProfile_allMenteeFields_updatesCorrectly 0.184 s
updateProfile_longitudeOutOfRange_returns400 0.175 s
updateProfile_multipleValidationErrors_returnsAll 0.166 s
multipleSequentialUpdates_eachPersistsCorrectly 0.174 s
profileResponse_includesCorrectRole 0.335 s
getAllUsers_doesNotExposePasswordHash 0.258 s
getProfileById_mentorViewsMentee_returns200 0.323 s
updateProfile_blankFirstName_returns400 0.164 s
updateProfile_commonFields_updatesCorrectly 0.169 s
getOwnProfile_noToken_returns403 0.009 s
updateProfile_unicodeCharacters_persistCorrectly 0.174 s
updateProfile_unknownFieldsIgnored_emailNotChanged 0.190 s
getOwnProfile_mentor_returnsAllMentorFields 0.162 s
getProfileById_menteeViewsMentor_returns200 0.317 s
partialUpdate_preservesExistingFields 0.182 s
updateProfile_interestsList_persistsAndReturns 0.169 s
updateProfile_latitudeOutOfRange_returns400 0.157 s
updateProfile_bioExactly1000Chars_passes 0.162 s
updateProfile_setCityOnlyWithoutCoordinates_persists 0.163 s
partialUpdate_commonAndRoleFields_together 0.169 s
updateProfile_firstNameTooLong_returns400 0.168 s
getOwnProfile_mentee_doesNotExposeMentorFields 0.175 s
updateProfile_negativeMenteeCapacity_returns400 0.192 s
getProfileById_returnsUpdatedData 0.395 s
updateProfile_locationNotSet_returnsNullFields 0.201 s
partialUpdate_emptyBody_doesNotChangeAnything 0.169 s
updateMentorProfile_allMentorFields_updatesCorrectly 0.178 s
updateProfile_locationNullsDoNotClearExistingValues 0.174 s
updateProfile_preferredMenteeSkills_persistsForMentor 0.182 s
updateProfile_blankLastName_returns400 0.184 s
getOwnProfile_mentee_returnsAllMenteeFields 0.173 s
getProfileById_nonexistentUser_returns404 0.171 s
updateProfile_emptyInterestsList_clearsList 0.185 s
getProfileById_responseDoesNotIncludePasswordHash 0.340 s
getOwnProfile_deletedUser_returns404 0.195 s
getProfileById_menteeViewsMentee_returns403 0.330 s
updateProfile_replaceInterestsList_replacesCompletely 0.176 s
updateProfile_cannotSetCurrentMenteeCount 0.182 s
updateProfile_cannotSetCancelCount 0.175 s
updateProfile_cityTooLong_returns400 0.164 s
getProfileById_menteeViewsOwnProfile_returns200 0.173 s
updateMenteeProfile_affiliationOver200Chars_rejectedAt400 0.164 s
updateMenteeProfile_affiliationOnly_persistsAndSurfacesOnPublicProfile 0.181 s
getProfileById_viewsOwnProfile_returns200 0.169 s

MatchExplanationServiceTest

chatThrows_leavesProseNullAndBumpsFailureCounter 0.100 s
emptyExplanationRecord_safeAndDisabled 0 s
sanitiseFreeText_collapsesMultipleSpaces 0 s
sanitiseFreeText_hardCutsWhenLastSpaceIsTooEarly 0 s
differentFactorsForSameMentor_busts_cache 0.001 s
chatReturnsNullResponse_proseNullAndCountsAsFailure 0.001 s
jsonWithoutExplanationsArray_yieldsNoProse 0 s
nullPageOrMenteeNoop 0 s
sanitiseFreeText_underCapIsUnchanged 0 s
constructor_acceptsNullPropsForDefensiveBoot 0 s
missingExplanationForOneMentor_leavesThatProseNullOnly 0 s
sanitiseFreeText_hardCutsWhenNoSpaceInBack_half 0 s
successPath_attachesProseAndCachesForNextCall 0 s
sanitiseFreeText_stripsControlCharactersToSpaces 0 s
disabled_doesNothing 0.001 s
shutdown_terminatesExecutorCleanly 0 s
sanitiseFreeText_truncatesAtWordBoundaryWhenSpaceAvailable 0 s
chatReturnsBlankContent_proseNull 0 s
noChatModelBean_leavesProseNull 0 s
sanitiseFreeText_nullReturnsEmpty 0 s
prose_validation_rejectsTagsAndOverLongOutput 0 s
jsonWithMalformedEntries_skipsBadOnesButKeepsValid 0 s
dailyCapExceeded_skipsLlmCallAndIncrementsCapCounter 0 s
signalsHash_isStableAndOrderIndependent 0 s
malformedJsonResponse_leavesProseNullWithoutThrow 0.001 s

FollowGraphWriterTest

mergeFollow_mergesBothUsers_thenEdge 0.096 s
replay_userDeleted_detachDeletesFollower 0 s
apply_userDeleted_dispatchesDetachDelete 0 s
personalizedPageRank_delegatesWithSameArgs 0.001 s
replay_followed_mergesBothUsers_thenEdge 0 s
deleteAllFollowEdges_delegates 0 s
countAllFollows_returnsRepoCount 0 s
apply_unfollowed_mergesBothUsers_thenDeletesEdge 0.001 s
apply_followed_mergesBothUsers_thenEdge 0 s
replay_unfollowed_mergesBothUsers_thenDeletesEdge 0 s

FeedReadStateControllerTest

markRead_returns403_whenAnonymous 0.002 s
unreadCount_returns200_withCountAndCappedAtMaxFalse 0.003 s
unreadCount_returns403_whenAnonymous 0 s
markRead_returns204_andDelegatesToServiceWithViewerId 0 s
unreadCount_returns200_withCappedAtMaxTrue_whenServiceReportsCapped 0.001 s

AdminReportControllerTest

queue_returns200_filteredByStatus 0.004 s
queue_returns403_forNonAdmin 0.002 s
queue_returns200_unfiltered 0.001 s
transition_returns200_andPassesAdminIdFromJwt 0.003 s
detail_returns403_forNonAdmin 0.001 s
detail_returns200_withTargetSummary 0.001 s
queue_returns200_filteredByTargetType 0.001 s
queue_returns403_forAnonymous 0 s
transition_returns403_forNonAdmin 0.001 s
detail_returns404_whenMissing 0.001 s
transition_returns400_onInvalidTransition 0 s

AppPropertiesTest

blankBaseUrl_failsValidation 0.001 s
validHttpUrl_passesValidation 0 s
nullBaseUrl_failsValidation 0.001 s
garbageString_failsValidation 0 s
validHttpsUrl_passesValidation 0.001 s

MenteeAvailabilityServiceTest

bulkUpdateRejectsOverlapsWithinSet 0.090 s
getSlotsReturnsSorted 0 s
bulkUpdateReplacesAll 0 s
removeSlotNotFound 0.001 s
addSlotSuccess 0 s

PasswordValidatorTest

sevenCharsWithAllCriteria 0 s
tooShort 0 s
validPassword 0 s
noLowercase 0 s
nullPassword 0 s
exactlyEightChars 0 s
noUppercase 0 s
noDigit 0 s

AttachmentDownloadControllerTest$ResolveMediaType

filenameWithTrailingDotFallsBackToOctetStream 0.001 s
uppercaseExtensionResolvesNormally 0 s
unknownExtensionFallsBackToOctetStream 0.001 s
filenameWithoutDotFallsBackToOctetStream 0 s

ReportFanoutListenerTest

onReportSubmitted_swallowsRuntimeFailures_doesNotPropagate 0 s
onReportSubmitted_fallsBackToGenericName_whenEventCarriesNullReporterName 0 s
onReportSubmitted_emitsNoNotifications_whenNoAdminsExist 0 s
onReportSubmitted_publishesOneNotificationPerAdmin 0 s

MentorshipRequestServiceTest

createRequestConcurrentDuplicateCaughtByDb 0.175 s
cancelOwnPendingRequest_throwsWhenCallerIsNotOwner 0 s
createRequest_throwsUserBannedException_whenMenteeIsBanned 0.001 s
createRequestSuccess 0 s
getSentRequestsMenteeNotFound 0.001 s
getReceivedRequestsMentorNotFound 0 s
createRequestSavesCorrectEntity 0.001 s
cancelOwnPendingRequest_throwsWhenStatusIsNotPending 0 s
getReceivedRequestsSuccess 0 s
getSentRequestsSuccess 0.001 s
createRequestWithoutMessage 0 s
createRequestDuplicatePending 0.001 s
createRequestMenteeNotFound 0 s
cancelOwnPendingRequest_happyPath_flipsStatusAndRecordsViolation 0 s
createRequestMentorNotFound 0.001 s
createRequestMentorAtCapacity 0.001 s
createRequestMenteeHasActiveMentor 0.001 s
cancelOwnPendingRequest_throwsWhenRequestMissing 0.001 s

GoalRequiredHandlerTest

mentorshipIdIsLongNotString 0 s
codeIsStableMachineReadable 0 s
returns409WithStructuredBody 0 s

JwtServiceTest

generateAndExtractEmail 0.001 s
generateAndExtractUserId 0.001 s
tokenWithoutUserIdClaim_isInvalid 0 s
tokenWithoutRoleClaim_isInvalid 0 s
menteeRole 0.001 s
tokenWithoutSubject_isInvalid 0 s
tokenWithBlankRole_isInvalid 0.001 s
tamperedTokenIsInvalid 0 s
tokenIsValid 0 s
generateAndExtractRole 0 s
expiredTokenIsInvalid 0.001 s

FeedJsonLdIntegrationTest

followingFeed_withActivityJson_emitsOrderedCollectionPageEnvelope 0.195 s
detail_withApplicationActivityJson_isHandledAsAS2Synonym 0.193 s
detail_withApplicationLdJson_emitsAS2NoteAndPinsContentType 0.189 s
detail_withApplicationJson_keepsExistingShape 0.189 s

FollowRepositoryTest

deleteById_isSilentOnMissingEdge 0.011 s
cascade_removesIncomingAndOutgoingFollowsWhenUserDeleted 0.012 s
findByIdFollowerId_paginatesFollowingList 0.013 s
findFollowerIdsByFolloweeId_returnsEmptySet_forUserWithNoFollowers 0.005 s
selfFollow_isRejectedByDbCheckConstraint 0.008 s
findByIdFolloweeId_paginatesNewestFirstWithStableTiebreaker 0.011 s
upsertFollow_returnsOneOnNewInsert 0.046 s
findFollowerIdsByFolloweeId_returnsExactlyTheFollowersOfTheFolloweee 0.014 s
countsAreDirectionAware 0.014 s
deleteById_removesExistingEdge 0.013 s
upsertFollow_setsCreatedAtFromDbDefault 0.009 s
upsertFollow_returnsZeroOnDuplicate_andDoesNotThrow 0.009 s

MatchingIntegrationTest

candidateMenteesKeywordFilter 0.393 s
availabilityOverlapAffectsRanking 1.053 s
menteeRoleBlockedFromCandidateMenteesEndpoint 0.178 s
fullCapacityMentorBlockedFromCandidateMentees 0.179 s
paginationReturnsRequestedPageSize 1.231 s
candidateMenteesKeywordFilterCaseInsensitive 0.388 s
candidateMenteesExcludesActiveMentored 0.430 s
candidateMenteesExcludesNonMatchingMentees 0.527 s
fullCapacityMentorExcluded 0.352 s
mentorGetsCandidateMenteeList 0.362 s
menteeGetsRankedMentorList 0.522 s
candidateMenteesResponseContainsExpectedFields 0.379 s
activeMentorBlocksMenteeRequest 0.344 s
mentorRoleBlockedFromEndpoint 0.178 s
keywordFilterReturnsOnlyMatchingMentors 0.438 s
candidateMenteesCapacityErrorResponseFormat 0.184 s

SemanticAffinitySignalTest

positiveSimilarity_emitsScoreFactor_withRoundedValue 0.087 s
zeroSimilarity_returnsNone 0 s
viewerEmbeddingMissing_returnsSemanticUnavailable_andSkipsEmbedCall 0 s
candidateEmbeddingEmpty_returnsSemanticUnavailable 0 s
candidateProfileBlank_returnsNone_andSkipsEmbedCall 0 s
candidateProfileText_mentor_concatenatesAllFields 0 s
perfectMatch_emitsFullScore 0 s
candidateProfileText_skipsBlankFields 0 s
viewerEmbeddingEmpty_returnsSemanticUnavailable 0 s
contractMetadata_isExposed 0 s
candidateProfileText_mentee_concatenatesAllFields 0 s
candidateProfileText_admin_returnsEmpty 0 s

ClockTimeMeterTest

isWallClockBased 0 s
readsTimeFromInjectedClock 0 s

UserDeviceServiceTest

unregisterDeletesOwnedToken 0 s
unregisterIsNoOpWhenTokenMissing 0 s
registerInsertsNewTokenWhenAbsent 0.001 s
registerThrowsWhenUserMissing 0 s
unregisterIgnoresTokenOwnedByDifferentUser 0 s
registerEvictsOldestWhenAtCap 0 s
registerExistingTokenRefreshesLastSeenAt 0.001 s

FeedMediaDownloadControllerTest

download_throwsNotFound_whenAttachmentRowMissing 0.001 s
download_throwsNotFound_whenStoredFilenameEscapesUploadDir 0.001 s
download_throwsNotFound_whenFileMissingFromDisk 0.001 s
download_throwsNotFound_whenAttachmentIsChatOnly 0.001 s
download_returnsImage_whenAttachmentIsFeedReferenced 0.002 s

FailedGraphSyncWriterTest

markResynced_setsResyncedAtFromClock_andSaves 0 s
enqueue_withNullFailure_setsUnknownReason 0.001 s
enqueue_withFailure_setsToStringAsReason 0 s
enqueue_truncatesLongReason_atMaxReasonLen 0 s
enqueue_userDeletedEvent_propagatesNullFollowee 0 s

ForYouScoringPipelineTest

diversityFloor_swapsInOutsider_whenAllPlacedShareTopHashtag 0.171 s
scoresAndOrdersByFreshness_pageZero 0.002 s
pageOne_skipsDiversityFloorAndBandit 0 s
banditOn_pageZero_assignsBanditExplorationFactor 0 s
emptyCandidates_returnsEmpty 0.001 s
banditOff_byDefault_noBanditFactor 0 s

MeetingServiceTest

createMeetings_recurringGeneratesUntilMentorshipEnd 0.112 s
approveReschedule_updatesMeetingAndPublishes 0.001 s
cancelMeeting_rejectsCompletedMeetings 0 s
createMeetings_outsideAvailabilityAddsWarning 0 s
createMeetings_BlankGoal_GoalRequired 0.001 s
requestReschedule_createsPendingRequestAndNotifies 0 s
createMeetings_NonMentorAndNullGoal_ForbiddenWins 0 s
createMeetings_NullGoal_GoalRequired 0.001 s
createMeetings_InactiveAndNullGoal_StatusErrorWins 0.001 s
createMeetings_createsSingleMeetingAndNotifies 0 s
confirmMeeting_setsStatusAndPublishes 0.001 s
createMeetings_rejectsEndAfterMentorshipEnd 0 s
cancelMeeting_rejectsNonMentor 0.001 s
requestReschedule_rejectsOutsideMentorship 0 s

EngagementStatsRepositoryTest

softDeletedComments_areExcluded 0.050 s
candidatesOutsideIdList_areExcluded 0.015 s
lastActive_isMaxAcrossAllSources 0.014 s
candidatesWithNoActivity_areAbsentFromResult 0.012 s
softDeletedPosts_areExcluded 0.010 s
eventsBeforeSinceWindow_areExcluded 0.018 s
perAuthor_aggregatesAllThreeSources 0.029 s

ReportMapperTest

toResponseSingle_includesTargetSummary_forMentorshipTarget 0 s
toResponseSingle_includesTargetSummary_forUserTarget 0 s
toResponses_returnsFallbackStrings_forMissingTargets 0.001 s
toResponseSingle_includesTargetSummary_forPostTarget_truncatesOverLimitBody 0 s
toResponses_skipsMentorshipAndPostBatches_whenSummaryNotIncluded 0 s
toResponses_handlesEmptyPage_withoutAnyRepositoryCalls 0.001 s
toResponses_isN1Free_acrossPolymorphicTargets 0 s

FollowRecommendationServiceTest

interestsCaseInsensitive_lowercasedBeforeRanking 0.254 s
secondHopCount_creditsCandidatesFollowedByMyFollows 0.001 s
viewerMissing_throws404 0 s
noCandidates_returnsEmptyPage 0.001 s
pageSlicingReturnsRequestedSlice 0 s
pageBeyondTotalReturnsEmpty 0.001 s
followeeFetchUsesMaxViewerFolloweesPageSize 0 s
menteeViewerRoleDiscriminator_returnsMENTEE 0 s
candidateQueryUsesRankingWindow 0.001 s
emptyInterests_stillReturnsCandidates_orderedByIdDesc 0 s
responseShapeMirrorsUserSummary 0 s
secondHopExcludesAlreadyFollowedAndViewerSelf 0.001 s
emptyFolloweeSet_skipsSecondHopQuery 0 s
candidatesAreSortedByScoreDescThenIdDesc 0.001 s

MentorPairInboxServiceTest

multipleConversations_preservesPageOrder 0.001 s
singleConversation_mapsAllFieldsCorrectly 0.001 s
racedPeerDeletion_dropsConversationFromResult 0 s
pageBeyondLast_preservesTotalElements 0 s
unreadCount_zeroWhenAllRead 0.001 s
emptyInbox_returnsEmptyPageWithoutBatchLoads 0 s
latestMessage_isPickedFromBatchedResult 0 s
unreadCount_takesValueFromBatchMap 0 s
conversationWithNoMessages_rendersNullsAndZeroUnread 0 s

UserServiceTest

getProfileById_menteeViewsPrivateMentor_returns403 0.164 s
getProfileById_mentorViewsPrivateMentee_returns403 0.001 s
getProfileById_thirdPartyAdminLookup_stillReturns403 0 s
getOwnUserProfile_admin_returnsAdminResponseWithRoleADMIN 0.001 s
getProfileById_mentorViewsVisibleMentee_masksLastNameAndPhoto 0 s
getProfileById_menteeViewsOtherMentee_403_visibilityIrrelevant 0 s
getProfileById_self_evenIfPrivate_returns200 0 s
getProfileById_mentorViewsMentee_maskFlagOff_noMasking 0 s
getProfileById_adminViewsPrivateMentor_returns200AndUnmasked 0.001 s
getProfileById_mentorViewsPrivateMentor_returns403 0 s

NotificationEventListenerClockTest

matchFoundDedup_queriesRepoWithFixedClockMinus24h 0 s

UserSummaryTest

from_admin_setsRoleADMIN_evenThoughServiceFiltersThemFirst 0.025 s
from_mentor_setsRoleMENTOR 0.001 s
from_mentee_setsRoleMENTEE 0 s

UserSearchControllerTest

searchPaginationParamsHonored 0.008 s
searchUnauthenticated_returns403 0.001 s
searchAsAdmin_searchingMentee_returns200 0.002 s
searchAsMentee_searchingMentor_returns200 0.003 s
searchAllParams_forwardedToService 0.003 s
searchAsMentor_searchingMentee_returns200 0.002 s
searchNegativePage_clampedToZero 0.001 s
searchKeywordTooShort_stillReaches200_serviceTreatsAsNoFilter 0.001 s
searchMentorshipDuration_forwardedAsSet 0.001 s
searchAsMentee_searchingMentee_returns403 0.002 s
searchMissingRole_returns400 0.001 s
searchHasAvailability_requesterMissingSlots_returns400 0.001 s
searchAsAdmin_hasAvailabilityTrue_returns400 0.001 s
search_privateMentor_absentFromResults 0.001 s
searchOversizedPage_clampedTo100 0 s
searchAsAdmin_searchingMentor_returns200 0 s
searchMultiValueInterests_forwardedAsList 0.001 s
searchMultiValueAvailabilityDays_forwardedAsSet 0.002 s
searchAsMentor_searchingMentor_returns403 0.001 s
searchInvalidRole_returns400 0.001 s

UserRepositoryAdminListTest

noFilters_returnsAllUsersIncludingAdmins 0.064 s
roleFilter_mentor_returnsOnlyMentors 0.020 s
combinedFilters_roleAndBanStatusAndKeyword 0.036 s
banStatusNone_includesLiftedAndExpiredAndUnbanned 0.020 s
pagination_secondPageReturnsRemainingUsers 0.021 s
keywordFilter_matchesFirstNameLastNameAndEmail 0.023 s
projection_populatesAllFields 0.013 s
roleFilter_admin_returnsOnlyAdmins 0.014 s
banStatusActive_excludesExpiredAndLifted_includesOnlyCurrentlyBanned 0.020 s
roleFilter_mentee_returnsOnlyMentees 0.014 s

StatsIntegrationTest

mentorStats_returnsAllZeroesForFreshUser 0.183 s
mentorStats_returnsAggregatedCountsForSeededState 0.512 s
menteeStats_returnsAggregatedCountsForSeededState 0.368 s
unauthenticatedRequestsAreRejected 0.019 s

MentorshipPreconditionsTest

requireSharedGoalDoesNothingWhenGoalContainsOnlyOneNonBlankChar 0 s
requireSharedGoalThrowsWhenGoalIsEmpty 0 s
requireSharedGoalThrowsWhenGoalIsNull 0 s
requireSharedGoalThrowsWhenGoalIsTabsAndNewlines 0 s
requireSharedGoalThrowsWhenGoalIsWhitespace 0 s
requireSharedGoalDoesNothingWhenGoalIsSet 0 s
goalRequiredExceptionCarriesMessageAndId 0 s

MessagingWebSocketIntegrationTest

participantSubscribesAndReceivesBroadcastFromRestSend 2.637 s
connectWithoutTokenIsRejected 0.039 s
nonParticipantSubscriptionDoesNotReceiveBroadcast 2.616 s

MentorshipAutoCompletionSchedulerTest

sweepLogsWhenRowsProcessed 0.105 s
sweepDelegatesToService 0.001 s

AdminDirectInboxServiceTest

singleConversation_peerIsAdmin_setsPeerIsAdminTrue 0.005 s
racedPeerDeletion_dropsConversationFromResult 0.001 s
unreadCount_zeroWhenAllRead 0.002 s
emptyInbox_returnsEmptyPageWithoutBatchLoads 0.001 s
adminViewer_seesMenteePeer_peerIsAdminFalse 0.004 s

FeedPostControllerTest

create_adminRequester_returns403 0.013 s
update_unauthenticated_returns403 0.001 s
update_happyPath_returns200 0.003 s
update_concurrentModification_returns409 0.002 s
getById_returns304WhenIfNoneMatchMatches 0.002 s
delete_happyPath_returns204 0.001 s
delete_missingPost_returns404 0.001 s
getById_softDeleted_returns404 0 s
getById_unauthenticated_returns403 0.001 s
create_oversizeBody_returns400 0.001 s
create_overHashtagCap_returns400 0.001 s
update_nonAuthor_returns403 0.001 s
getById_setsETagLastModifiedAndCacheControlHeaders 0.001 s
create_unauthenticated_returns403 0.001 s
update_softDeleted_returns404 0 s
getById_happyPath_returns200 0.001 s
delete_unauthenticated_returns403 0 s
delete_nonAuthor_returns403 0.001 s
getById_etagChangesAfterEdit 0.001 s
create_blankBody_returns400 0.001 s
getById_nonNumericPath_returns404FromRouteRegex 0.002 s
create_happyPath_returns201 0.001 s

FeedPostIntegrationTest

getById_withLdJsonAccept_returnsAS2NoteSocialMediaPosting 0.224 s
admin_cannotPost_returns403 0.169 s
overHashtagCap_returns400 0.177 s
fullLifecycle_create_read_update_delete 0.375 s
authorDelete_cascadesPosts_andHashtags 0.210 s
hashtagNormalisation_turkishMixedCase_AndMultiWordDropped 0.171 s
oversizeBody_returns400 0.179 s
mentorAndMentee_canBothPost 0.343 s
blankBody_returns400 0.188 s
nonAuthor_cannotEdit_or_delete 0.355 s

MenteeAvailabilityControllerTest

bulkUpdateReturns200 0.008 s
getOwnSlotsReturns403ForMentor 0.002 s
getOwnSlotsReturns200ForMentee 0.001 s
addSlotReturns409ForOverlap 0.001 s
removeSlotReturns404WhenMissing 0.001 s

RuleBasedMentorRankerTest

scoreMajorMatchesField 0 s
scoreMajorMatchesPreferredMenteeMajor 0 s
scoreSumsProfileAndAvailabilityComponents 0.001 s
availabilityScoreReturnsZeroWithoutSlots 0 s
availabilityScoreReturnsZeroForAdjacentNonOverlappingSlots 0 s
availabilityScoreUsesOverlapAndCapsAtTwelve 0 s
scoreOverlappingInterests 0 s
scoreNullFieldsDoNotCrash 0 s
scoreSkillMatch 0 s
availabilityScoreReturnsZeroWhenNoDayOfWeekOverlap 0 s
rankerIsStateless_consecutiveCallsReturnSameScore 0 s
scoreGoalsKeywordOverlap 0 s

UserSearchIntegrationTest

menteeSearchingMentee_returns403 0.192 s
advancedFilters_availabilityDaysAndMentorshipDuration_combineAsAnd 0.716 s
mentorSearchingMentor_returns403 0.188 s
mentorSearchingMentee_returns200 0.360 s
pagination_returnsConsistentSlices 0.875 s
combinedFilters_returnIntersection 0.552 s
hasAvailability_returnsOnlyOverlappingMentors 0.540 s
menteeSearchingMentor_returns200AndOnlyMentorRows 0.349 s
wildcardKeyword_escapedAsLiteral 0.524 s
hasAvailabilityWithNoOwnSlots_returns400 0.343 s
unauthenticated_returns403 0.015 s
shortKeyword_treatedAsNoFilter_returnsAll 0.574 s

ReportingIntegrationTest

duplicateActiveReport_returns409 0.418 s
fullLifecycle_submitTriageResolveResubmit 0.652 s
invalidTransition_returns400_andTerminalRejectsFurtherTransitions 0.486 s
nonAdmin_cannotAccessAdminQueue_403 0.236 s
selfReport_returns400 0.235 s

PersonalizedPageRankIntegrationTest

resultsOrderedByScoreDescending 2.724 s
aliceSeed_yieldsDaveTopThenEveThenBobCarol 0.154 s
seedsAreExcluded_evenIfPprWouldSurfaceThem 0.139 s
unknownSeed_yieldsEmptyResults 0.053 s

AvailabilitySignalTest

killSwitchOff 0 s
oneHourOverlap_normalisedAndFactorEmitted 0 s
differentDayOfWeek_noOverlap_returnsNone 0 s
emptySlotsEitherSide_returnsNone 0 s
twelveHoursPlus_saturatesAtOneWithFactor 0 s
code 0 s
nullSignalsRecord_disabledAndZeroWeight 0 s
adjacentNonOverlapping_returnsNone 0 s

RecentEngagementSignalTest

zeroCounts_returnsNone 0 s
nullLastActive_returnsNone 0 s
missingStats_returnsNone 0 s
activeTenDaysAgo_emitsActiveThisMonth_andDecayedScore 0 s
lastActiveInFuture_doesNotAmplifyDecay 0 s
activeOverAMonthAgo_emitsNoFactor_andLowScore 0 s
contractMetadata_isExposed 0 s
activeToday_emitsActiveThisWeekFactor_andHighScore 0 s
scoreSaturates_atOneForExtremeActivity 0 s
nullEngagementMap_returnsNone_defensively 0 s

ReportServiceTest

createReport_acceptsMentorshipReport_whenReporterIsParticipant 0.190 s
createReport_rejectsMissingMentorshipTarget_with404 0 s
createReport_carriesNullReporterName_whenReporterRowAlreadyGone 0.001 s
createReport_rejectsNonParticipantMentorshipReport_with400 0 s
updateStatus_setsReviewedAtAndReviewedById_onTransitionOutOfOpen 0.001 s
createReport_rethrowsNonIndexIntegrityViolation_unchanged 0.001 s
updateStatus_allowsUnderReviewToResolved 0 s
updateStatus_rejectsDismissedToAnything 0 s
createReport_translatesDataIntegrityViolation_to409DuplicateReportException 0.001 s
updateStatus_throws404_whenReportMissing 0 s
createReport_acceptsMentorshipReport_whenReporterIsTheMentee 0 s
updateStatus_rejectsUnderReviewToOpen 0.001 s
updateStatus_allowsOpenToResolved 0 s
updateStatus_rejectsResolvedToAnything 0 s
createReport_rejectsSelfReport_onUserTarget 0 s
updateStatus_allowsOpenToUnderReview 0.001 s
updateStatus_logLine_doesNotIncludeDescription 0 s
updateStatus_allowsUnderReviewToDismissed 0 s
createReport_persistsReport_andPublishesSingleSubmittedEvent 0.001 s
updateStatus_allowsOpenToDismissed 0 s
createReport_rejectsMissingPostTarget_with404 0 s
createReport_logLine_doesNotIncludeDescription 0 s
createReport_rejectsMissingUserTarget_with404 0.001 s

MentorPairMessagingIntegrationTest

pairConversation_doesNotRequireActiveMentorship 0.341 s
mentorPair_doesNotCollideWithExistingMentorshipConversation 0.343 s
historyReadsResolveSameConversation_inBothDirections 0.369 s
mentorPair_attachment_isUploadableBySenderAndDownloadableByPeer 0.520 s
firstMessageFromA_producesNewMessageNotificationForB 0.465 s
threeMentors_aBandACpairs_areDistinctConversations 0.548 s
markAllRead_byB_setsReadAtOnAsMessage 0.359 s
mentor_targetingSelf_returns400 0.173 s
mentor_targetingMentee_returns400 0.322 s
mentee_postingToMentorPairEndpoint_returns403 0.473 s
twoMentors_exchangeMessages_onMentorPairEndpoint 0.378 s

FollowRecommendationControllerTest

recommend_returnsPagedBodyShape 0.005 s
recommend_unauthenticated_returns403 0.001 s
recommend_routeDoesNotCollideWithFollowGraphRoutes 0.001 s
recommend_viewerNotFound_returns404 0.001 s
recommend_passesPageNumberThrough 0.001 s
recommend_clampsExcessiveSize 0.001 s

PersonalizedPageRankServiceTest

cypherFailure_isCaughtAndReturnsEmpty_andDoesNotPoisonCache 0.190 s
noFollowees_returnsEmptyMap_andSkipsCypher 0 s
firstCall_invokesCypher_subsequentCallHitsCache 0.001 s
projectionNotReady_returnsEmptyMap_andSkipsCypher 0 s
unfollowEvent_invalidatesViewerSpecificCache 0.002 s
userDeletedEvent_invalidatesEntireCache 0 s
followEvent_invalidatesViewerSpecificCache 0.001 s

NoteMappingTest

omitsActorNameWhenBothNamesMissing 0 s
buildsActorWithLastNameOnlyWhenFirstNameMissing 0 s
embedsAttachmentBlockWhenAttachmentSummaryPresent 0 s
supportsOnlyMessageResponse 0 s
omitsAttachmentBlockWhenDownloadUrlMissing 0 s
stripsTrailingSlashFromBaseUrl 0 s
omitsMediaTypeWhenAttachmentHasNoContentType 0 s
omitsActorIdWhenSenderIdMissing 0 s
emitsCreateActivityWithFullActorAndNote 0.001 s
buildsActorWithFirstNameOnlyWhenLastNameMissing 0 s
omitsTopLevelIdAndPublishedWhenMessageIdAndSentAtMissing 0 s
omitsBlankContent 0 s

NotificationIntegrationTest

publisherCreatesNewMessageAndMeetingReminderNotifications 0.185 s
matchingEndpointDoesNotCreateMatchFoundNotification_post273 0.964 s
acceptRequestCreatesNotificationAndReadEndpointsWork 0.489 s

AuthControllerTest

loginWithInvalidCredentialsThrows 0.004 s
registerReturns201 0.002 s
verifyEmailReturns200 0.001 s
resendVerificationReturns200 0.001 s
resendVerificationRateLimitedThrows 0 s
validateResetTokenReturns200 0 s
resetPasswordReturns200 0.002 s
registerWithWeakPasswordReturns400 0.001 s
forgotPasswordAlwaysReturns200 0.001 s
verifyEmailWithInvalidTokenThrows 0.001 s
registerWithBlankFirstNameReturns400 0 s
authEndpointsDoNotRequireAuthentication 0 s
registerWithInvalidEmailReturns400 0.001 s
resetPasswordWithInvalidTokenThrows 0.001 s
forgotPasswordWithUnknownEmailStillReturns200 0.001 s
registerWithDuplicateEmailThrows 0 s
validateResetTokenWithExpiredTokenThrows 0.001 s
loginReturns200WithToken 0.001 s

AdvancedForYouFeedRankerTest

noSignals_returnsZero 0.001 s
disabledSignal_contributesZeroAndEmitsNoFactor 0 s
signalScoreOutOfRange_isClampedToZeroOne 0 s
mistunedWeightsSumExceedingOne_clampToHundred 0 s
zeroWeightEnabledSignal_emitsFactorButDoesNotMoveScore 0 s
legacyFeedRankingContext_overload_buildsEmptyScoringContext 0.001 s
fourSignals_realisticWeights_aggregateAndConcatFactors 0 s
enabledSignalCodes_excludesDisabled 0 s
singleSignal_fullWeight_fullScore_scoresHundred 0 s

ProfileControllerTest

updateOwnProfile_negativeMenteeCapacity_returns400 0.006 s
getOwnProfile_mentee_returns200WithAllFields 0.002 s
getProfileById_noToken_returns403 0.001 s
getAllMentors_doesNotExposePasswordHash 0.001 s
updateOwnProfile_emptyBody_returns200 0.002 s
getAllMentees_doesNotExposePasswordHash 0.001 s
updateOwnProfile_multipleValidationErrors_returnsAll 0.002 s
getProfileById_mentorProfile_returnsAllMentorFields 0.001 s
updateOwnProfile_noToken_returns403 0.001 s
updateOwnProfile_firstNameExactly100Chars_passes 0.001 s
getAllUsers_doesNotExposePasswordHash 0.002 s
updateOwnProfile_nullFirstName_passesValidation 0.001 s
updateOwnProfile_blankFirstName_returns400 0.001 s
getOwnProfile_noToken_returns403 0.001 s
getProfileById_existingUser_returns200 0.001 s
updateOwnProfile_firstNameExactly1Char_passes 0.001 s
getOwnProfile_invalidToken_returns403 0 s
updateOwnProfile_firstNameTooLong_returns400 0.001 s
updateOwnProfile_zeroMentorshipDuration_returns400 0.001 s
updateOwnProfile_invalidToken_returns403 0.001 s
getOwnProfile_mentee_doesNotExposeMentorFields 0.001 s
updateOwnProfile_commonFields_returns200 0.001 s
updateOwnProfile_blankLastName_returns400 0.001 s
updateOwnProfile_menteeFields_returns200 0.003 s
updateOwnProfile_mentorFields_returns200 0.001 s
getProfileById_menteeViewsMentee_returns403 0.001 s
getProfileById_doesNotExposePasswordHash 0 s
updateOwnProfile_bioExactly1000Chars_passes 0.001 s
getOwnProfile_mentor_returns200WithAllFields 0.001 s
getOwnProfile_mentor_doesNotExposePasswordHash 0.001 s
getOwnProfile_admin_returns200WithRoleADMIN 0.001 s
updateOwnProfile_unknownFieldsIgnored 0 s
updateOwnProfile_bioTooLong_returns400 0.001 s
getProfileById_notFound_returns404 0 s

FeedEngagementBanditListenerTest

emptyHashtags_stillForwardsAndBanditDecides 0.161 s
banditException_isCaughtNotPropagated 0.004 s
nullEvent_noop 0.001 s
nullViewerId_noop 0 s
event_forwardsViewerAndHashtagsToBandit 0.001 s

MentorPopulationStatsTest

refresh_skipsEmptyEmbeddings 0 s
refresh_allEmpty_keepsPreviousCentroid 0.002 s
setCentroidForTest_overridesValueDirectly 0 s
refresh_computesMeanOfNonEmptyEmbeddings 0 s
refresh_repositoryThrows_doesNotPropagate 0 s
centroid_emptyBeforeFirstRefresh 0.001 s
refresh_emptyMentorPool_keepsCentroidEmpty 0 s

RateLimitFilterTest

clockAdvanceRefillsBucket 0.012 s
unmatchedPathForwardsAndAddsNoHeaders 0.001 s
userKeyedRuleFallsBackToIpWhenUnauthenticated 0.001 s
disabledFilterIsSkipped 0 s
shouldNotFilterWhitelistsUploadedPhotos 0 s
shouldNotFilterWhitelistsCorsPreflight 0.001 s
overCapacityReturns429WithRetryAfter 0.001 s
shouldNotFilterWhitelistsActuator 0.001 s
wrongMethodIsNotLimited 0 s
userKeyedRuleUsesAuthenticationPrincipal 0.001 s
differentIpsHaveIndependentBuckets 0 s
underCapacityForwardsAndDecrementsRemaining 0 s
urlEncodedPathIsLimitedByDecodedPattern 0 s

RateLimitIntegrationTest

underCapacityReturnsHandlerStatusWithRateLimitHeaders 0.051 s
actuatorHealthIsNotLimited 0.019 s
exceedingCapacityReturns429WithRetryAfter 0.010 s
userKeyedRulesGiveEachAuthenticatedUserAnIndependentBucket 0.024 s
corsPreflightIsNotLimited 0.018 s
bucketRefillsAfterClockAdvance 0.022 s

SearchNormaliserTest

list_emptyReturnsNull 0 s
scalar_lowercasesAndTrims 0 s
keyword_emptyReturnsNull 0 s
keyword_escapeOrderIsBarFirst 0 s
scalar_nullReturnsNull 0 s
keyword_threeCharsReturnsLowercasedWildcard 0 s
keyword_isLocaleIndependent_underTurkishDefault 0.001 s
scalar_blankReturnsNull 0 s
list_lowercasesSurvivors 0 s
list_filtersNullsAndLowercases 0 s
keyword_underscoreIsEscaped 0 s
keyword_tooShortReturnsNull 0 s
list_allNullsReturnNull 0 s
scalar_isLocaleIndependent_underTurkishDefault 0 s
list_nullReturnsNull 0 s
keyword_nullReturnsNull 0 s
keyword_whitespaceReturnsNull 0 s
keyword_percentIsEscaped 0 s
list_isLocaleIndependent_underTurkishDefault 0 s

FeedPostServiceRestoreTest

restorePost_throws410_whenWindowHasExpired 0.252 s
restorePost_clearsDeletedAt_andBumpsUpdatedAt_whenAuthorWithinWindow 0.001 s
restorePost_succeedsAtExactWindowBoundary_minusOneSecond 0.001 s
restorePost_throws404_whenPostMissing 0 s
restorePost_throws403_whenActorIsNotAuthor 0 s
restoreWindowDaysClampedTo1_whenConfigured0 0.001 s
restorePost_throws409_whenPostIsLive 0 s

TaxonomyServiceTest

searchFieldsMatchesIscedFLabelSubstring 0.004 s
searchSkillsParsesEscoEmbeddedResults 0.005 s
searchSkillsReturnsEmptyOnBlankQueryWithoutHittingUpstream 0.001 s
searchSkillsMapsUpstreamFailureToTaxonomyUpstreamException 0.003 s
searchFieldsRespectsLimit 0.001 s
searchHobbiesMapsUpstreamFailureToTaxonomyUpstreamException 0.001 s
searchFieldsReturnsEmptyOnBlankQuery 0 s
searchFieldsMatchesIscedFFourDigitCode 0 s
searchSkillsCachesByQueryAndLang 0.001 s
searchHobbiesParsesWikidataConceptUri 0.002 s

MatchNotificationProcessorTest

processMentee_setsSentAtFromInjectedClock 0.127 s
processMentee_skips_whenTopMatchHasNullId 0 s
processMentee_skips_whenMenteeRaceDeleted 0.001 s
processMentee_publishesAndUpserts_whenStateRowAbsent 0 s
processMentee_skips_whenTopMatchUnchanged 0 s
processMentee_skips_whenMenteeRaceAcquiredActiveMentor 0 s
processMentee_skips_whenRankReturnsEmpty 0.001 s
processMentee_preservesEntityIdentityWhenUpdatingExistingStateRow 0 s
processMentee_publishesAndUpserts_whenTopMatchDiffers 0 s

ChatHealthIndicatorTest

noModel_outOfService 0 s
modelPresent_up_andDoesNotCallTheModel 0 s

TestSupportControllerSecurityTest

triggerReminderSchedulerEndpointReturns404WhenTestEndpointsDisabled 0.009 s
seedUserEndpointReturns404WhenTestEndpointsDisabled 0.003 s
triggerMentorshipAutoCompletionEndpointReturns404WhenTestEndpointsDisabled 0.002 s
triggerMeetingAutoDeclineEndpointReturns404WhenTestEndpointsDisabled 0.001 s
resetEndpointReturns404WhenTestEndpointsDisabled 0.003 s
verificationTokenEndpointReturns404WhenTestEndpointsDisabled 0.002 s

LocationProximitySignalTest

killSwitchOff 0 s
onlyMentorMissingLongitude_treatedAsAbsent 0 s
coordinatesAndSameCity_emitsBothFactorsAndAddsBonus 0 s
onlyMenteeMissingLongitude_treatedAsAbsent 0 s
coordinates_far_scoreNearZero 0 s
code 0 s
cityFallback_capsAtOne 0 s
blankCityStrings_treatedAsAbsent 0 s
coordinates_nearby_scoreNearOneAndKmFactor 0 s
invalidStoredCoordinates_degradesToLocationUnset 0 s
nullSignalsRecord_disabledAndZeroWeight 0 s
bothLocationsAbsent_emitsLocationUnset 0 s
cityMatchWithoutCoordinates_scoresBonusAndEmitsCityMatch 0 s
onlyMenteeBNullInSameCityCheck_returnsFalse 0 s
nullProximityProperties_fallsBackToZeroBonusAndDefaultDecay 0 s
differentCitiesWithoutCoordinates_locationUnset 0 s
onlyOneSideHasCoordinates_emitsLocationUnsetWhenNoCity 0 s

MentorshipAcceptRaceConditionTest

race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[1] 0.081 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[2] 0.034 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[3] 0.022 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[4] 0.022 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[5] 0.034 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[6] 0.020 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[7] 0.020 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[8] 0.018 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[9] 0.018 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[10] 0.020 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[11] 0.020 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[12] 0.020 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[13] 0.020 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[14] 0.021 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[15] 0.020 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[16] 0.015 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[17] 0.015 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[18] 0.015 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[19] 0.022 s
race1_capacityNotExceeded_whenTwoAcceptsHitSameMentor()[20] 0.018 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[1] 1.026 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[2] 1.051 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[3] 1.056 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[4] 1.049 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[5] 1.060 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[6] 1.035 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[7] 1.050 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[8] 1.039 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[9] 1.036 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[10] 1.040 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[11] 1.050 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[12] 1.043 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[13] 1.024 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[14] 1.034 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[15] 1.045 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[16] 1.050 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[17] 1.073 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[18] 1.075 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[19] 1.084 s
race2_menteeNeverHasMultipleActiveMentors_whenTwoAcceptsHitSameMentee()[20] 1.069 s

FollowGraphProjectionServiceTest

rebuildProjection_emptyGraph_keepsReadyFalse 0.170 s
rebuildProjection_populatedGraph_flipsReadyTrue 1.143 s
rebuildProjection_isIdempotent 0.194 s
initial_delegatesToRebuild_flipsReadyTrue 0.098 s

MentorshipIntegrationTest

getTimeline_returns404ForNonParticipant 0.525 s
getTimeline_actionItemCountersReflectCompletion 0.422 s
getProgress_returns404ForUnknownId 0.186 s
putGoal_rejectsWhitespaceOnly 0.357 s
getMentorship_returnsGoalDefinedFalseInitially 0.355 s
getProgress_emptyMentorshipReturnsZeros 0.361 s
getProgress_reflectsTaskAndMilestoneCounts 0.387 s
getProgress_lastActivityReflectsSubmission 0.376 s
capacityEnforcedOnAccept 0.339 s
invalidDurationRejected 0.332 s
getMentorship_returnsGoalDefinedTrueAfterPut 0.355 s
listActiveMentorshipsAfterAccept 0.351 s
postMilestone_returns409GoalRequiredWhenGoalNotSet 0.357 s
setSharedGoalAfterAccept 0.354 s
getMentorship_returns404ForNonParticipant 0.507 s
getTimeline_returnsAllThreeDomainsInChronologicalOrder 0.394 s
getProgress_returns404ForNonParticipant 0.497 s
getTimeline_n1SafeIsConstantBetweenN1AndN3 2.812 s
putGoal_rejectsOver500Chars 0.402 s
getTimeline_emptyMentorshipReturnsEmptyItems 0.354 s
getTimeline_windowOutsideProgramReturnsEmptyItemsButPopulatedMetadata 0.328 s
postMeeting_returns409GoalRequiredWhenGoalNotSet 0.349 s
getMentorship_returns404ForUnknownId 0.169 s
menteeCannotAcceptRequest 0.336 s
acceptRequestCancelsOtherPendingRequests 0.507 s
postMilestone_succeedsAfterGoalSet 0.349 s
postTask_returns409GoalRequiredWhenGoalNotSet 0.339 s
getTimeline_returns400ForFromAfterTo 0.330 s
getTimeline_returns400ForWindowOver24Months 0.339 s
getTimeline_tiebreakerMilestoneBeforeMeetingBeforeTask 0.374 s
acceptRequestCreatesActiveMentorship 0.336 s
rejectRequestSuccess 0.347 s
postTask_succeedsAfterGoalSet 0.360 s

EntityPrePersistTest

attachmentOnCreate_preservesPreSetValues 0.001 s
conversationOnCreate_preservesPreSetCreatedAt 0 s
conversationParticipantOnCreate_assignsJoinedAtAndCompositeIdFromRefs 0 s
conversationParticipantOnCreate_skipsIdInferenceWhenUserMissing 0 s
messageOnCreate_preservesPreSetSentAt 0 s
conversationParticipantOnCreate_skipsIdInferenceWhenConversationMissing 0 s
messageOnCreate_assignsSentAtWhenAbsent 0 s
attachmentOnCreate_assignsIdAndCreatedAtWhenAbsent 0 s
conversationParticipantOnCreate_preservesPreSetIdAndJoinedAt 0 s
conversationOnCreate_assignsCreatedAtWhenAbsent 0 s

FeedPostServiceTest

update_replacesHashtagsWhenSupplied_andBumpsUpdatedAt 0.001 s
create_rejectsBlankBody_with400 0 s
create_persists_andDelegatesToMapper 0.001 s
create_doesNotPublish_whenSaveFails 0 s
update_throws404_whenPostMissing 0.001 s
delete_throws403_whenRequesterIsNotAuthor 0 s
delete_idempotent_onAlreadySoftDeleted 0 s
create_rejectsAdminRequester_with403 0 s
create_publishesFeedPostCreatedEvent_afterSave_via_publisherFacade 0.001 s
update_blankBodyWhenSupplied_throws400 0 s
update_throws403_whenRequesterIsNotAuthor 0 s
delete_softDeletes_whenAuthor 0 s
create_rejectsNullBody_with400 0.001 s
getById_throws404_whenPostMissingOrDeleted 0.001 s
update_nullFields_doNotTouchExisting 0 s
getById_returnsDto_whenPostVisible 0.001 s
update_throws404_whenPostSoftDeleted 0 s
create_rejectsMissingAuthor_with404 0.001 s
delete_throws404_whenPostMissing 0 s

AdvancedMatchingIntegrationTest

mentorWithControlCharsInProfile_sanitisedBeforeReachingLLM 0.294 s
chatTimeout_responseStillReturnsButWithoutProse 3.304 s
maxDistanceKmFilter_dropsFarMentors_butKeepsUnknownDistance 0.493 s
advancedRankerWinsAsPrimaryBean 0.017 s
embeddingModelDown_degradesGracefullyWithSemanticUnavailableFactor 0.258 s
endToEnd_advancedFactorsAndProseAndCuratedSlots 0.441 s

MentorPairInboxControllerTest

listInbox_clampsNegativeInputs 0.004 s
listInbox_asMentee_returns403 0.001 s
listInbox_asMentor_returns200WithPagedBody 0.001 s
listInbox_clampsOversizedPageSize 0.001 s
listInbox_unauthenticated_returns403 0.001 s
listInbox_paginationParamsHonored 0.001 s

FeedCommentJsonLdMappingTest

apply_emitsNoteWithInReplyToParentPost 0 s
apply_omitsUpdated_whenCommentNotEdited 0 s
apply_emitsUpdated_whenCommentEdited 0 s
supports_acceptsFeedCommentResponse 0 s
apply_emitsAttributedToPersonActor 0 s
apply_softDeletedComment_omitsContentEntirely 0 s

AvailabilityControllerTest

addOverrideReturns400WhenEndNotAfterStart 0.006 s
removeOverrideReturns403ForOtherMentor 0.002 s
getSlotsReturns404ForUnknownMentor 0.001 s
addSlotReturns400WhenDayMissing 0.002 s
bulkUpdateReturns409ForOverlap 0.004 s
getSlotsReturns200ForMentee 0.002 s
getSlotsReturns200ForMentor 0.001 s
addOverrideReturns403ForMentee 0.001 s
addOverrideReturns201ForMentor 0.001 s
exportIcalReturns200ForAnonymousCaller 0.001 s
removeOverrideReturns204ForOwner 0.001 s
addSlotReturns403ForMentee 0.001 s
getSlotsRejectsUnauthenticatedRequests 0.001 s
removeSlotReturns404WhenNotFound 0.001 s
addSlotReturns400ForEndBeforeStart 0.001 s
bulkUpdateReturns403ForMentee 0.001 s
addSlotReturns201ForMentor 0.001 s
addOverrideReturns409WhenSameKindOverlap 0.001 s
removeSlotReturns204ForMentor 0.001 s
bulkUpdateReturns200ForMentor 0.001 s
getSlotsReturns200ForUnrelatedMentor 0 s
removeSlotReturns403ForMentee 0.001 s
exportIcalReturns404WhenMentorMissing 0.002 s
listOverridesReturns200WithPagedBody 0.002 s

FeedPostEventPublisherTest

publishCreated_emitsEventWithAllFourFieldsFromEntityAndAuthor 0 s

MatchingControllerTest

getCandidateMenteesResponseExcludesPrivateFields 0.004 s
getCandidateMenteesCapacityErrorResponseFormat 0.002 s
getTopMentorsForwardsAvailabilityDays 0.001 s
getTopMentorsForwardsMentorshipDuration 0.001 s
getCandidateMenteesReturnsEmptyPageWhenNoCandidates 0.001 s
getCandidateMenteesReturns403WithoutToken 0.001 s
getTopMentorsReturns401WithoutToken 0 s
getTopMentorsForwardsMinMatchScore 0.001 s
getTopMentorsWithKeywordReturns200 0.001 s
getCandidateMenteesReturns404WhenMentorNotFound 0.001 s
getTopMentorsReturns403ForMentorRole 0.001 s
getTopMentorsForwardsMaxDistanceKmParam 0.001 s
getCandidateMenteesReturns200ForMentor 0 s
getTopMentors_privateMentorAbsent_serviceReturnsEmptyPage 0.001 s
getCandidateMenteesWithKeywordReturns200 0.001 s
getTopMentorsReturns403WhenAlreadyHasMentor 0.001 s
getTopMentorsReturns200ForMentee 0.001 s
getCandidateMenteesReturns403WhenAtCapacity 0.001 s
getCandidateMenteesReturnsMultipleCandidates 0 s
getCandidateMenteesReturns403ForMenteeRole 0.001 s

FeedPostListItemJsonLdMappingTest

apply_surfacesLiveLikeAndCommentCounts_inInteractionStatistic 0.001 s
apply_emitsBareHashtagNames_perAS2Spec 0 s
apply_emitsContentMapAndInLanguage_whenLangPresent 0 s
apply_zeroDefaultsShareAndBookmarkCounters_documentedContract 0 s
supports_acceptsFeedPostListItem 0 s
apply_emitsBothTypesAndCanonicalIri 0 s

MatchingServiceTest

wildcardEscape_keywordContainingPercent_isLiteralised 0.002 s
rankMentorsFor_throwsIllegalStateException_whenMenteeHasActiveMentor 0 s
getTopMentors_returnsRankedListWithoutSideEffects 0.001 s
matchesMentorPreferences_returnsFalseWhenNothingOverlaps 0 s
getCandidateMentees_returnsCandidateListWithoutSideEffects 0.002 s
resultsOrderedByScoreDescending 0 s
shortKeyword_skipsKeywordFilter 0 s
candidateMenteesExactCapacityBlocksRequest 0 s
paginationReturnsRequestedPageSize 0.001 s
matchesMentorPreferences_matchesViaInterestOverlap 0 s
availabilityDays_passedThroughToRepository 0.001 s
getTopMentorsList_returnsEmptyListWhenNoCandidates 0 s
paginationWithIntegerOverflowOffset_returnsEmptyPage 0.001 s
nullKeyword_skipsKeywordFilter 0 s
matchesMentorPreferences_matchesViaField 0.001 s
matchesMentorPreferences_matchesViaSkill 0 s
availabilityDays_emptySetCoercedToNullBeforeRepository 0 s
findCandidateMenteesFor_throwsIllegalStateException_whenMentorIsNull 0 s
keywordFilter_passesNormalisedKeywordToRepo 0 s
candidateMenteesMentorNotFoundThrows 0.001 s
candidateMenteesResponseContainsCorrectFields 0 s
matchesMentorPreferences_isCaseInsensitive 0 s
paginationBeyondTotalReturnsEmptyPage 0 s
menteeNotFoundThrows 0 s
minMatchScore_nullPreservesAllCandidates 0.001 s
rankMentors_batchFetchesSlotsExactlyOnce 0 s
blankKeyword_skipsKeywordFilter 0.001 s
paginationReturnsSecondPage 0.001 s
rankMentorsFor_returnsRankedListForEligibleMentee 0 s
getTopMentorsList_returnsAllRanked_capPreserved 0.001 s
minMatchScore_excludesBelowThresholdAndAdjustsTotal 0.001 s
candidateMenteesPagination_returnsRequestedSlice 0 s
candidateMentees_doesNotInvokeRanker 0.001 s
findCandidateMenteesFor_throwsIllegalStateException_whenMentorAtFullCapacity 0 s
rankMentorsFor_throwsIllegalStateException_whenMenteeIsNull 0 s
rankMentors_emptyResult_skipsSlotFetches 0 s
candidateMenteesFullCapacityBlocksRequest 0 s
matchesMentorPreferences_handlesAllNullFields 0.001 s
searchByFilters_invokedWithRequireCapacityTrue 0 s
activeMentorBlocksRequest 0.001 s
availabilityCanBreakTieBetweenMentors 0 s
matchesMentorPreferences_matchesViaPreferredMajor 0.001 s
candidateMentees_keywordIsNormalisedAndPushed 0 s
getTopMentorsList_returnsRankedListWithoutSideEffects 0.001 s
findCandidateMenteesFor_returnsCandidatesForEligibleMentor 0 s
candidateMentees_invokesMenteeSearchWithRequireUnattachedTrue 0 s

EngagementStatsServiceTest

rowsAreMappedByAuthorId 0.088 s
timestampColumn_isNormalizedToOffsetDateTime 0 s
unexpectedColumnType_throwsExplicitly 0 s
nullIds_returnsEmptyMap_andSkipsRepoCall 0 s
nullLastActive_passesThrough 0 s
instantColumn_isNormalizedToOffsetDateTime 0 s
emptyIds_returnsEmptyMap_andSkipsRepoCall 0.001 s

ReportControllerTest

submit_returns403_whenAnonymous 0.001 s
myReports_returns403_whenAnonymous 0.001 s
submit_returns409_onDuplicateActiveReport 0.004 s
myReports_returns200_withPagedShape 0.004 s
submit_returns400_onSelfReport 0.002 s
submit_returns201_andPassesReporterIdFromJwt 0.002 s
submit_returns400_onOversizedDescription 0.001 s
submit_returns400_onBlankDescription 0.001 s
myReports_clampsPageSizeAt100 0.001 s
submit_returns404_onMissingTarget 0.001 s

MessageServiceTest

markAllRead_byMentee_updatesMentorMessages 0.335 s
list_byParticipant_returnsMappedPage 0.001 s
send_onMentorshipScopedConversationWithoutMentorshipRow_throwsConflict 0.001 s
send_onMentorPairConversation_isAlwaysSendableRegardlessOfMentorshipStatus 0.001 s
send_inAdminBroadcast_fansOutToAllOtherParticipants_andEventCarriesNullRecipient 0.001 s
send_byMentee_routesToMentorAsRecipient 0.002 s
send_byNonParticipant_throwsForbidden 0 s
send_withAttachmentIdOwnedBySender_persistsFkAndExposesSummary 0.001 s
send_withForeignUploader_throwsForbidden 0.001 s
send_byMentor_persistsAndEmitsEventAndNotifiesMentee 0 s
list_byNonParticipant_throwsForbidden 0 s
markAllRead_byNonParticipant_throwsForbidden 0 s
send_onInactiveMentorship_throwsConflict 0.001 s
send_withUnknownAttachmentId_throwsNotFound 0 s
send_onMissingConversation_throwsNotFound 0.001 s
send_whenSenderRowMissing_throwsNotFound 0 s

UserNotificationPreferencesControllerTest

getRejectsUnauthenticated 0.001 s
patchAppliesPartialUpdate 0.003 s
getReturns200WithDefaults 0.001 s

MentorshipCooldownPolicyTest

blocksWhenLastTerminationIsInsideCooldown 0 s
allowsWhenCooldownHasJustElapsed 0 s
allowsWhenPairHasNoPriorTermination 0 s
allowsAfterClockAdvancesPastCooldown 0.001 s
blocksAtBoundaryMinusOneSecond 0 s

FollowGraphBootstrapTest

skips_whenNeo4jAlreadyHasData 0.092 s
seedsNeo4j_whenPostgresHasFollowsAndNeo4jIsEmpty 0.001 s
skipsAndLogs_whenNeo4jUnreachable 0 s
skips_whenPostgresIsEmpty 0.001 s

UserNotificationPreferencesServiceTest

updateAppliesPartialPatch 0.094 s
getReturnsExistingRow 0 s
getLazilyCreatesRowWhenAbsent 0 s

AdminUserQueryServiceTest

getUserDetail_returnsSuspectedBotMetadata 0 s
listUsers_keywordEscapesWildcards 0.003 s
listUsers_keywordBlank_normalisesToNull 0.001 s
listUsers_passesNowFromInjectedClock 0 s
getUserDetail_banHistoryMappedThroughBanService 0 s
getUserDetail_admin_returnsAdminShapedProfile 0 s
getUserDetail_missing_throwsResourceNotFound 0 s
listUsers_banStatusActive_setsBanActiveTrue 0.001 s
listUsers_banStatusNone_setsBanActiveFalse 0 s
listUsers_noFilters_allRepoFlagsNull 0 s
getUserDetail_mentor_returnsMentorShapedProfile 0 s
listUsers_keywordShorterThan3Chars_normalisesToNull 0 s
listUsers_roleAdmin_setsOnlyAdminFlag 0 s
listUsers_roleMentee_setsOnlyMenteeFlag 0.001 s
getUserDetail_mentee_returnsMenteeShapedProfile 0 s
listUsers_roleMentor_setsOnlyMentorFlag 0 s
listUsers_keywordLowercasedAndWrappedWithWildcards 0 s

SpamBotDetectionIntegrationTest

humanFlow_succeeds_andNoFlag 1.859 s
formTokenMissing_returnsGeneric400 0.039 s
accumulatedSignalsBeforeRegister_triggerAutoBanAfterRegister 1.850 s
honeypotPopulated_returnsGeneric400_andRecordsSignal_andNoUserCreated 0.017 s
clearBotFlag_isIdempotent_whenNoActiveBan 2.000 s
timingTooFast_returnsGeneric400_andRecordsSignal 0.019 s
admin_clearBotFlag_clearsFlagAndLiftsAutoBan 1.991 s

SemanticMatchSignalTest

lowCosineBelowThreshold_scoresButEmitsNoFactor 0 s
killSwitchOff 0 s
embeddingUnavailable_mentorSide_returnsSemanticUnavailable 0 s
negativeCosine_clampedToZero 0 s
embeddingUnavailable_menteeSide_returnsSemanticUnavailable 0.001 s
code 0 s
nullSignalsRecord_disabledAndZeroWeight 0 s
highCosine_emitsFactorAndScore 0.001 s

MentorshipHistoryFilterIntegrationTest

statusAll_caseInsensitive_alsoWorks 0.347 s
statusCancelled_returnsOnlyCancelled 0.345 s
noStatusParam_returnsActiveOnlyAsListUnchanged 0.384 s
statusInvalidString_returns400 0.341 s
statusCompleted_returnsOnlyCompleted 0.328 s
nonParticipantUser_seesEmptyResult_notForbidden 0.642 s
statusAll_paginationWorks_size2Page0AndPage1 0.366 s
statusAll_returnsAllThreeSortedActiveFirstThenByEndDateDesc 0.412 s

FollowIntegrationTest

concurrency_samePairContention_allReturn200_exactlyOneRow 0.436 s
menteeViewingAnotherMenteesFollowers_returns403 0.326 s
followLifecycle_201_then_200_then_204_thenListsReflectState 0.357 s
concurrency_50DistinctFollowers_allReturn201 8.135 s
followersList_carriesXTotalCountHeader 0.410 s
userDelete_cascadesBothDirections_viaRawJdbc 0.626 s
followNonExistentUser_returns404_notFkViolation500 0.177 s
selfFollow_returns400_withProjectStandardErrorBody 0.210 s
menteeViewingOwnFollowers_isAllowed 0.182 s
isFollowingFlag_falseBeforeFollow_trueAfter_falseAfterUnfollow 0.368 s
isFollowingFlag_isAlwaysFalseOnOwnProfile_evenWithLargeFollowingList 0.337 s
ownProfile_meEndpoint_carriesCounts 0.357 s
profileDetail_followerAndFollowingCountsReflectGraph 0.392 s
follow_publishesNewFollowerNotification_andSkipsOnIdempotentReFollow 0.727 s

SharedSkillsSignalTest

noOverlap_returnsNone 0.001 s
nullEntriesAreSkipped 0 s
emptyEitherSide_returnsNone 0 s
nullRecords_safeDefaults 0 s
disabledSignal 0 s
overlap_emitsCappedFactorsPreservingMenteeCase 0 s

PhotoUploadIntegrationTest

servePhoto_pathTraversal_returns4xx 0.008 s
uploadPhoto_noFile_returns4xx 0.002 s
deletePhoto_noAuth_returns403 0.003 s
servePhoto_nonExistent_returns404 0.005 s
uploadPhoto_noAuth_returns403 0.002 s

KeywordMuteIntegrationTest

create_returns409_onDuplicate 0.192 s
list_returnsEmpty_whenUserHasNoMutes 0.169 s
create_returns400_onBlankKeyword 0.169 s
create_returns201_andEchoesNormalisedKeyword 0.174 s
create_returns400_onIllegalCharacters 0.174 s
delete_removesMute_andReturns204 0.179 s
delete_returns404_whenMuteBelongsToAnotherUser 0.340 s

FollowRecommendationAdvancedIntegrationTest

advancedRankerBean_isInjectedWhenFlagFlipped 0.023 s
recommend_emitsSharedInterestFactor_whenCandidateMatchesViewerInterests 0.046 s
recommend_coldStartViewer_stillReturnsCandidates 0.029 s
recommend_excludesAlreadyFollowedCandidates 0.020 s

FeedInteractionIntegrationTest

likeToggle_idempotent_andReflectsState 0.390 s
repost_validation_oversizeBody_returns400 0.322 s
getPostById_carriesViewerHasLikedAndBookmarked_afterToggles 0.369 s
bookmarksList_listItemsCarryViewerFlags_forViewer 0.441 s
repost_quote_persistsCommentary_andNotifiesAuthor 0.475 s
repost_idempotencyKeyHeader_acceptedAndIgnored 0.566 s
share_appendOnly_countsAccumulate 0.422 s
addComment_publishesFeedCommentNotification_toPostAuthor 0.619 s
getInteractions_returnsAllCounts_andViewerFlags 0.617 s
repost_emptyJsonBody_isAcceptedAsBareRepost 0.542 s
postDelete_cascadesAllInteractionTables 0.371 s
repost_idempotencyWindow_secondCallCollapses 0.340 s
concurrent50Likes_finalCountIs50 8.862 s
commentPermalink_softDeletedComment_returns404 0.290 s
listBookmarks_surfacesLikeAndVisibleCommentCounts 0.396 s
repost_softDeletedPost_returns404 0.361 s
bookmarkToggle_andListBookmarks 0.364 s
commentValidation_blankBody_returns400 0.189 s
repost_silentShareUnchanged_doesNotWriteIsRepostFlag 0.336 s
getInteractions_softDeletedPost_returns404 0.171 s
repost_self_doesNotNotifyAuthor 0.497 s
commentPermalink_happyPath_returnsComment 0.384 s
toggleLike_publishesFeedLikeNotification_toPostAuthorOnly 0.637 s
repost_blankBody_isAcceptedAsBareRepost 0.396 s
allEndpoints_unauthenticated_return403 0.027 s
toggleLike_secondLikeAcrossPosts_collapsesUnder24hDedup 0.722 s
recordShare_publishesFeedShareNotification_toPostAuthor 0.623 s
commentLifecycle_create_list_edit_delete 0.394 s
likeOnDeletedPost_returns404 0.208 s
commentPermalink_parentPostSoftDeleted_returns404 0.182 s
repost_bare_createsRow_andNotifiesAuthor 0.398 s

RuleBasedFollowRankerTest

candidateWithNullInterests_doesNotCrash 0.001 s
manyInterestOverlaps_scoreReflectsAll_factorsCappedAtThree 0 s
noOverlap_scoresZeroAndNoFactors 0 s
unknownUserSubtype_isHandledAsZeroInterestContribution 0 s
multipleSecondHops_scoreScalesAndFactorReportsCount 0 s
singleInterestOverlap_addsWeightAndEmitsFactor 0 s
combinedSignals_sumIndependentContributions 0 s
singleSecondHop_addsWeightAndEmitsFactor 0 s
noSecondHopEdges_scoresZeroAndNoFactor 0 s
rankerIsStateless_consecutiveCallsReturnSameScore 0 s
menteeCandidate_alsoUsesInterests 0 s
interestOverlapIsCaseInsensitive 0 s

StatsServiceTest

mentorStats_returnsZerosForUserWithNoMentorActivity 0.001 s
menteeStats_passesUpcomingMeetingStatusSetAndNowToRepo 0 s
mentorStats_mapsEachFieldToTheRightRepoCall 0.001 s
menteeStats_mapsEachFieldToTheRightRepoCall 0.001 s
menteeStats_passesPendingTaskStatusSetToRepo 0 s

FeedSoftDeleteCleanupSchedulerTest

purge_doesNotLogWhenNothingDeleted 0.162 s
constructor_clampsRestoreWindowDaysToAtLeastOne_whenConfiguredNegative 0 s
constructor_clampsRestoreWindowDaysToAtLeastOne_whenConfiguredZero 0 s
purge_returnsCleanlyEvenWhenBothRepositoriesReturnZero 0.001 s
purge_callsBothRepositoriesWithCutoffOfNowMinusWindow 0 s

InterestOverlapFollowSignalTest

mentee_candidate_alsoMatches 0 s
noOverlap_returnsNone 0 s
emptyCandidateInterests_returnsNone 0 s
allCandidateLabelsMatch_scoresOne 0 s
scoreAlwaysWithinUnitInterval 0 s
admin_candidate_returnsNone 0 s
overlapAtFloorBoundary_scoresAgainstActualLabelCount 0 s
disabledSignal_reportsDisabled 0 s
emptyViewerInterests_returnsNone 0 s
displayFactors_cappedAtThree 0 s
singleOverlap_scoresAgainstLabelCountFloor 0 s
contractMetadata_isExposed 0 s
caseInsensitiveMatch 0 s

AuthServiceClockTest

verificationTokenExpiry_isExactlyTokenExpiryHoursAfterFixedClock 0.261 s

TimeDecaySignalTest

nullCreatedAt_returnsNone 0 s
postAtHalfLife_scoresHalf 0 s
postExactlyAtFreshBoundary_stillFresh 0 s
zeroHalfLife_degenerateGuard 0 s
freshlyCreated_scoresOneAndEmitsFreshFactor 0 s
postOlderThanFreshWindow_noFreshChip 0 s
postFromFuture_clampsToOneNotAbove 0 s
killSwitchOff_isEnabledFalse 0 s

AuthServiceTest

registerMentorSuccessfully 0.001 s
registerMenteeSuccessfully 0.001 s
loginWithNonexistentEmailThrows 0 s
resetPasswordSuccessfully 0.001 s
verifyEmailSuccessfully 0 s
resendVerificationRateLimitedThrows 0.001 s
loginWithUnverifiedEmailThrows 0 s
requestPasswordResetRateLimitedThrows 0 s
resetPasswordWithUsedTokenThrows 0.001 s
verifyEmailWithInvalidTokenThrows 0 s
loginSuccessfully 0.001 s
loginWithWrongPasswordThrows 0 s
verifyEmailWithExpiredTokenThrows 0 s
verifyEmailWithUsedTokenThrows 0.001 s
requestPasswordResetWithUnknownEmailDoesNotThrow 0.001 s
resetPasswordWithInvalidTokenThrows 0 s
resendVerificationForAlreadyVerifiedThrows 0 s
resetPasswordWithExpiredTokenThrows 0.001 s
registerWithDuplicateEmailThrows 0 s
loginMentorReturnsCorrectRole 0 s
registerHashesPassword 0.001 s
resendVerificationSuccessfully 0 s
requestPasswordResetSendsEmail 0.001 s
registerSendsVerificationEmail 0 s

SecondHopFollowSignalTest

hopsAtSaturation_scoreClampsToOne 0 s
disabledSignal_isExposedViaIsEnabled 0 s
singleHop_emitsPluralLabelButCorrectCount 0 s
zeroHops_returnsNone 0 s
hopsBelowSaturation_scoreLinear 0 s
hopsAboveSaturation_scoreClampsToOne 0 s
contractMetadata_isExposed 0 s
missingCandidateInMap_returnsNone 0 s

PopularityByMajorRepositoryTest

noMatchingUsers_returnsEmpty 0.021 s
otherUsersInSameMajor_appearWithZeroFollowers 0.010 s
userInOtherMajor_isExcluded 0.005 s
orderedByFollowerCountDesc_thenIdAsc 0.018 s
mentee_inMajor_surfaces 0.005 s
mentor_inMajor_surfaces 0.004 s
followerCount_isCountOfIncomingFollows 0.008 s

PushNotificationIntegrationTest

disabledCategorySkipsPushButPersistsInApp 0.869 s
transportFiresForArbitraryEnumValue 0.196 s
requestSubmittedFiresOnBothMentorAndMentee 0.579 s
deviceRegisterAndUnregisterRoundTrip 0.236 s
registeringSixthDeviceEvictsOldest 0.295 s

MentorshipTimelineServiceTest

validateWindow_throwsOnNullToWithNonNullFrom 0.092 s
timelineItem_compactConstructorRejectsNullOnAlwaysPresentFields 0 s
meetingItem_carriesCounters_hasNotesTrueWhenNotesPresent 0.001 s
getTimeline_emptyMentorshipReturnsEmptyItemsButPopulatedMetadata 0 s
getTimeline_propagatesResourceNotFoundFromFinder 0 s
getTimeline_defaultWindowUsesMentorshipDates 0.001 s
getTimeline_throwsWhenMentorshipHasNullProgramDates 0 s
items_sortedByOccursAtAscending 0.001 s
getTimeline_throwsWhenFromAfterTo 0 s
items_tiebreakerMilestoneBeforeMeetingBeforeTask 0.001 s
getTimeline_explicitToOverridesDefault 0.065 s
getTimeline_returnsForMentee 0.005 s
getTimeline_returnsForMentor 0.001 s
getTimeline_exactly24MonthWindowIsValid 0.007 s
getTimeline_explicitFromOverridesDefault 0.001 s
getTimeline_throwsWhenWindowIsOneDayPast24Months 0.003 s
items_tiebreakerByIdWithinSameType 0.005 s
taskItem_typeConditionalFieldsAreNull 0 s
meetingItem_hasNotesFalseWhenNotesNullOrBlank 0 s
meetingItem_zeroCountersWhenNoActionItems 0.001 s
getTimeline_zeroWidthWindowIsValid 0 s
milestoneItem_carriesCounters_hasNotesAlwaysNull 0 s
currentDate_isSourcedFromInjectedClock 0.001 s

MentorshipServiceTest

deleteMentorshipDataForPastMentorshipRunsCleanup 0.092 s
extendMentorshipRejectsInvalidMonths 0 s
getAuditTrailRejectsNonParticipant 0 s
cancelMentorshipRejectsAlreadyCancelled 0.001 s
acceptRequestSetsMenteeActiveMentorId 0 s
setSharedGoalSuccessAsMentee 0 s
acceptRequestNotFound 0 s
cancelMentorshipRejectsNonParticipant 0 s
getActiveMentorshipsSuccess 0.001 s
getMentorshipReturns404ForUnknownId 0 s
cancelMentorshipPreservesActiveMentorIdWhenItPointsElsewhere 0 s
rejectRequestNotFound 0 s
getAuditTrailReturnsParticipantView 0 s
acceptRequestWritesInitialAuditRow 0.001 s
setSharedGoalWrongUser 0 s
deleteMentorshipDataRejectsActiveMentorship 0.001 s
setSharedGoalSuccess 0 s
getMentorshipExposesGoalDefinedFalseForBlankGoal 0 s
acceptRequestSetsRequestStatusToAccepted 0 s
acceptRequestWrongMentor 0.001 s
acceptRequestIncrementsMentorMenteeCount 0 s
endMentorshipRejectsAlreadyTerminated 0 s
rejectRequestNotPending 0.001 s
extendMentorshipRejectsMenteeActor 0 s
extendMentorshipPushesEndDateAndAudits 0 s
acceptRequestCancelsOtherPendingRequests 0 s
setSharedGoalNotActive 0 s
endMentorshipByMentorSetsCompletedAndPreservesDataByDefault 0.001 s
acceptRequestNotPending 0 s
acceptRequestMenteeHasActiveMentor 0 s
extendMentorshipRejectsNotActive 0.001 s
acceptRequestMentorAtCapacity 0 s
endMentorshipRejectsMenteeActor 0 s
cancelMentorshipByMenteeMarksCancelledAndPreservesDataByDefault 0.001 s
acceptRequestCreatesActiveMentorship 0 s
getMentorshipReturnsResponseForMentee 0.001 s
getMentorshipReturnsResponseForMentor 0 s
rejectRequestSuccess 0 s
cancelMentorshipRejectsMentorActor 0 s
acceptRequestBlockedDuringCooldown 0.001 s
acceptRequestInvalidDuration 0 s
getMentorshipReturns404ForNonParticipant 0.001 s

ReportStatusMachineTest

canTransition_open_toResolved 0 s
canTransition_dismissedToAnything_isFalse 0 s
canTransition_resolvedToAnything_isFalse 0 s
canTransition_open_toDismissed 0 s
canTransition_open_toUnderReview 0 s
canTransition_sameState_isFalseForEveryStatus 0 s
legalNextStates_underReview_returnsOnlyTerminals 0 s
legalNextStates_terminalStates_returnEmpty 0 s
canTransition_underReview_toResolved 0 s
isTerminal_trueForResolvedAndDismissed 0.001 s
legalNextStates_returnsUnmodifiableSet 0.002 s
isTerminal_falseForOpenAndUnderReview 0 s
legalNextStates_open_returnsAllThreeNonOpenStates 0 s
canTransition_underReview_toOpen_isFalse 0 s
canTransition_underReview_toDismissed 0 s

FollowServiceTest

countFollowers_delegatesToCountByIdFolloweeId 0 s
follow_rejectsSelfFollow_withoutTouchingRepositories 0 s
listFollowers_returns403_whenTargetIsAdmin 0 s
unfollow_deletesAndPublishesEvent_whenEdgeExists 0.001 s
listFollowers_batchFetchesUsersWithSingleFindAllById 0 s
follow_returnsCreatedTrue_whenUpsertReturnsOne 0.001 s
follow_returnsCreatedFalse_whenUpsertReturnsZero 0 s
listFollowing_returns403_whenMenteeViewsAnotherMentee 0 s
listFollowers_returns403_whenMenteeViewsAnotherMentee 0 s
follow_publishesFollowedEvent_onFreshInsert 0.001 s
countFollowing_delegatesToCountByIdFollowerId 0 s
follow_doesNotPublishEvent_onDuplicateInsert 0 s
listFollowers_returns404_whenTargetMissing 0 s
listFollowers_allowsMenteeViewingOwnGraph 0 s
unfollow_isSilent_andDoesNotPublishEvent_whenEdgeMissing 0 s
listFollowers_filtersAdminEntriesFromContent 0 s
listFollowing_resolvesFolloweeIdsRatherThanFollowerIds 0 s
follow_returns404_whenFolloweeMissing 0 s

JsonLdContentNegotiationTest

wildcardAcceptHeader_returnsPlainJson 0.254 s
plainJsonRequest_returnsPlainJsonResponseUnchanged 0.177 s
ldJsonRequest_pageResponse_wrapsAsOrderedCollectionPage 0.499 s
ldJsonRequest_unmappedSingleBody_downgradesContentType 0.247 s
ldJsonRequest_emptyAvailabilityList_returnsEmptyGraph 0.186 s
ldJsonRequestWithCharset_returnsJsonLd 0.167 s
ldJsonRequest_wrapsAvailabilityListAsGraph 0.191 s
ldJsonRequest_fullyPopulatedMentor_emitsAllFields 0.199 s
ldJsonRequest_returnsPersonJsonLdForMentee 0.184 s
ldJsonRequest_returnsPersonJsonLdForMentor 0.175 s

MentorshipCancellationIntegrationTest

cancelWritesAuditTrail 0.531 s
cancelRejectsBlankReason 0.366 s
deleteMentorshipDataRejectsActiveMentorship 0.373 s
cancelMentorshipFlipsStatusAndPreservesChildrenByDefault 0.388 s
auditEndpointRejectsNonParticipant 0.546 s
deleteMentorshipDataRemovesChildrenForPastMentorship 0.546 s
cancelRejectsNonParticipant 0.572 s
cooldownBlocksImmediateRerequestAndExpiresWithTime 0.404 s
cancelRejectsAlreadyCancelled 0.456 s

MentorshipControllerTest

getMentorshipsByStatus_specificStatus_filtersAccordingly 0.005 s
getTimelineReturns400WhenFromAfterTo 0.002 s
acceptReturns409WhenNotPending 0.002 s
listActiveMentorshipsReturns200 0.001 s
getMentorshipsByStatus_negativePage_returns400 0.001 s
setSharedGoalReturns400ForNullField 0.001 s
deleteMentorshipDataReturns204ForParticipant 0 s
getTimelineReturns404ForNonParticipant 0.001 s
getMentorshipsByStatus_pageSizeOver100_returns400 0.001 s
getTimelineParsesIsoDateTimeWithZAndOffset 0.002 s
getMentorshipReturns404ForUnknownId 0.001 s
getProgressReturns404ForNonParticipant 0 s
setSharedGoalReturns404WhenNotFound 0.001 s
setSharedGoalReturns200 0.001 s
acceptReturns403ForMentee 0.001 s
getTimelineRejectsMalformedFrom 0.001 s
setSharedGoalReturns400ForWhitespaceOnly 0.001 s
acceptReturns200ForMentor 0.002 s
rejectReturns404WhenNotFound 0.001 s
rejectReturns403ForMentee 0.001 s
acceptReturns400WhenDurationMissing 0 s
setSharedGoalAcceptsExactly500Chars 0.001 s
rejectReturns200ForMentor 0.001 s
getMentorshipsByStatus_invalidStatusString_returns400 0.001 s
getProgressReturns200ForMentee 0.001 s
getProgressReturns200ForMentor 0.001 s
setSharedGoalReturns400ForOver500Chars 0 s
getProgressReturns404ForUnknownId 0.001 s
deleteMentorshipDataReturns409WhenActive 0.001 s
getTimelineReturns200ForMentee 0.001 s
getTimelineReturns200ForMentor 0.001 s
getMentorshipsByStatus_ALL_returnsPagedAcrossEveryState 0 s
getMentorshipReturns200ForMentee 0 s
getMentorshipReturns200ForMentor 0.001 s
getTimelineReturns404ForUnknownId 0.001 s
getMentorshipReturns404ForNonParticipant 0.001 s
listActiveMentorshipsAccessibleByMentee 0 s

MentorshipAutoCompletionServiceTest

autoCompleteExpired_oneFailureDoesNotBlockOthers 0.185 s
autoCompleteExpired_writesAuditRowAndNotifiesBoth 0 s
autoCompleteExpired_clearsActiveMentorIdAndDecrementsCount 0.001 s
autoCompleteExpired_skipsRowFlippedByConcurrentActor 0 s
autoCompleteExpired_processesAllExpiredRows 0.001 s
autoCompleteExpired_returnsZeroWhenNothingExpired 0 s

MatchNotificationEligibilityQueriesTest

lastMatchNotification_cascadesOnUserDelete 0.022 s
findUnattachedIds_isOrderedByIdAscending 0.014 s
lastMatchNotification_savesAndReloadsCleanly 0.012 s
findUnattachedIds_returnsEmptyListWhenNoMenteesExist 0.010 s
lastMatchNotification_userIdFkBlocksOrphanInsert 0.007 s
lastMatchNotification_acceptsStaleNotifiedMatchUserId 0.011 s
lastMatchNotification_versionIncrementsOnUpdate 0.017 s
findUnattachedIds_returnsOnlyMenteesWithoutActiveMentor 0.016 s

InterestOverlapFeedRankerTest

postFromFuture_timeDecayClampsToOne 0 s
scoreResult_isClampedToZeroHundredEvenWithMisconfiguredWeights 0 s
authorIsFollowed_followBoostFires 0 s
noViewerInterests_interestComponentIsZero 0 s
authorNotFollowed_followBoostIsZero 0 s
rankingOrder_combinesAllThreeSignals 0 s
emptyFollowGraph_followBoostIsZero 0 s
postOneHalfLifeOld_timeDecayIsHalf 0 s
postCreatedNow_timeDecayIsOne 0 s
halfTagsMatch_interestComponentIsHalf 0 s
zeroHalfLife_treatedAsImmediateExpiry 0 s
scoreResult_legacyRankerEmitsEmptyFactorList 0 s
postWithNoTags_interestComponentIsZero 0 s
allTagsMatch_interestComponentIsOne 0 s

ConversationCreatorTest

createForMentorshipInNewTx_savesConversationWithMentorshipAndTwoParticipants 0.001 s
createForMentorPairInNewTx_storesPairFieldsExactlyAsPassed 0 s
createForMentorPairInNewTx_savesConversationWithCanonicalPairAndTwoParticipants 0 s

FeedSoftDeleteCleanupIntegrationTest

purge_alsoReapsCommentsSoftDeletedIndependentlyOfTheirPost 0.123 s
purge_hardDeletesPostsBeyondWindow_andCascadesChildRows 0.119 s
purge_isNoOpWhenNothingExpired 0.115 s
v43PartialIndexes_existAfterMigration 0.029 s

SpamDetectionServiceTest

clearFlag_clearsAndLiftsSystemSpamBan 0.458 s
timingTooFast_throws_andRecordsSignal 0.003 s
disabled_isANoOp 0 s
honeypotPopulated_throws_andRecordsSignal_andSkipsTokenCheck 0 s
onRegistrationCommitted_belowThreshold_isANoOp 0 s
allChecksPassed_doesNotThrow_andDoesNotRecord 0.001 s
clearFlag_doesNotLiftUnrelatedAdminBan 0 s
formTokenInvalid_throws_andRecordsSignal 0.001 s
onRegistrationCommitted_aboveIpThreshold_flagsAndBans 0 s
clearFlag_isIdempotentWhenNoActiveSpamBan 0.001 s
emailBucketExhausted_throws_andRecordsSignal 0 s

FeedReadStateServiceTest

unreadCount_returnsZero_whenNothingUnread 0.085 s
markRead_delegatesToRepository 0 s
unreadCount_usesEpochUtc_whenCursorIsAbsent 0 s
unreadCount_returnsCap_whenExactlyAtCap_andDoesNotFlagCapped 0 s
unreadCount_returnsCap_andFlagsCapped_whenStrictlyOverCap 0.001 s
unreadCount_usesCursorTimestamp_whenCursorIsPresent 0 s
unreadCount_returnsRawCount_whenBelowCap 0 s

MessagingIntegrationTest

uploadAttachmentReturnsIdReachableFromSendMessage 0.436 s
senderCannotAttachAFileTheyDidNotUpload 0.388 s
mentorAndMenteeExchangeMessagesAndReadReceipts 0.420 s
rejectsAttachmentWithBadMagicBytes 0.253 s
sendingTriggersNewMessageNotificationForRecipient 0.491 s
nonParticipantCannotSendOrRead 0.568 s
blankContentFailsValidation 0.357 s

FollowGraphSyncListenerTest

userDeletedPersistentFailure_isQueueable 0.001 s
persistentFailure_delegatesEnqueueToWriter 0.001 s
unfollowedEvent_delegatesToGraphWriter 0 s
followedEvent_delegatesToGraphWriter 0 s
userDeletedEvent_delegatesToGraphWriter 0 s
transientFailure_thenSuccess_logsNothing 0.001 s

AttachmentOrphanCleanupSchedulerTest

mixedSweep_deletesUnreferencedAndKeepsRacedSideBySide 0.090 s
leavesFileOnDisk_whenConcurrentMessageReferencesAttachment 0.001 s
deletesOrphanRowsAndUnderlyingFiles 0.001 s
doesNothingWhenNoOrphans 0.001 s
refusesToDeleteFilesOutsideUploadDir 0.001 s
survivesMissingFileOnDisk 0 s

AttachmentUrlBuilderTest

buildsCanonicalDownloadUrl 0 s
stripsTrailingSlashFromBaseUrl 0 s

PhotoUploadControllerTest

deletePhoto_authenticated_returns200WithNullPhoto 0.001 s
deletePhoto_noAuth_returns403 0.001 s
uploadPhoto_validFile_returns200WithPhotoUrl 0.001 s
uploadPhoto_serviceThrowsIllegalArgument_returns400 0.001 s
patchProfile_profilePhotoFieldIgnored 0.001 s
uploadPhoto_noAuth_returns403 0 s

FeedPostRestoreIntegrationTest

restoreAfterWindow_returns410 0.180 s
restoreOnMissingPost_returns404 0.171 s
restoreByNonAuthor_returns403 0.330 s
restoreWithoutAuth_returns403 0.175 s
doubleRestore_secondCallReturns409 0.182 s
deleteThenRestore_makesPostVisibleAgain 0.188 s
restoreOnLivePost_returns409 0.176 s

MeetingSchedulerTest

run_expiresPendingMeetings 0.341 s
run_sendsRemindersAndRecordsState 0.001 s
run_skipsReminderWhenStateExists 0 s
run_completesPastMeetings 0.001 s