Context
Follow-up from PR #255: Like/Unlike System
Original Finding
The PopularityProjectorTest test helpers in projector_test_case.ex always assume users are public (always add to likes_people). The real PopularityProjector checks UserPrivacy and conditionally adds users.
This means the code path where is_user_public_with_repo? returns false (private user liking a podcast) is untested — likes_people should stay unchanged while likes count still increments.
Additionally, the test helpers duplicate projector logic, creating drift risk if the projector implementation changes.
Acceptance Criteria
Context
Follow-up from PR #255: Like/Unlike System
Original Finding
The
PopularityProjectorTesttest helpers inprojector_test_case.exalways assume users are public (always add tolikes_people). The realPopularityProjectorchecksUserPrivacyand conditionally adds users.This means the code path where
is_user_public_with_repo?returnsfalse(private user liking a podcast) is untested —likes_peopleshould stay unchanged whilelikescount still increments.Additionally, the test helpers duplicate projector logic, creating drift risk if the projector implementation changes.
Acceptance Criteria
likes_people)