fix(content-preference): 조회 선호도 오버라이드 파라미터를 제거해 저장값만 사용한다

This commit is contained in:
2026-03-28 00:51:19 +09:00
parent ae68886bdb
commit ff47a7686a
23 changed files with 183 additions and 353 deletions

View File

@@ -54,11 +54,7 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
assertEquals(null, preferenceRepository.findByMemberId(member.id!!))
val resolved = service.resolveForQuery(
member = member,
isAdultContentVisible = true,
contentType = ContentType.MALE
)
val resolved = service.resolveForQuery(member = member)
val stored = service.getStoredPreference(member)
assertNotNull(preferenceRepository.findByMemberId(member.id!!))
@@ -81,11 +77,7 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
assertEquals(null, preferenceRepository.findByMemberId(member.id!!))
val resolved = service.resolveForQuery(
member = reloadedMember,
isAdultContentVisible = null,
contentType = null
)
val resolved = service.resolveForQuery(member = reloadedMember)
val stored = service.getStoredPreference(reloadedMember)
assertNotNull(preferenceRepository.findByMemberId(member.id!!))
@@ -123,11 +115,7 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
val member = saveNonForcedMember("kr-unauth-user")
countryContext.setCountryCode(null)
val resolved = service.resolveForQuery(
member = member,
isAdultContentVisible = true,
contentType = ContentType.MALE
)
val resolved = service.resolveForQuery(member = member)
val stored = service.getStoredPreference(member)
assertEquals("KR", resolved.countryCode)
@@ -139,22 +127,18 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
}
@Test
@DisplayName("KR + 인증 사용자는 요청값이 저장되고 성인 조회값(isAdult)이 true로 계산된다")
fun shouldApplyRequestValuesForKrAuthenticatedMember() {
@DisplayName("KR + 인증 사용자는 legacy 파라미터와 무관하게 true/ALL로 생성되고 isAdult true로 계산된다")
fun shouldCreateTrueAndAllForKrAuthenticatedMemberRegardlessOfLegacyParams() {
val member = saveNonForcedMember("kr-auth-user")
countryContext.setCountryCode(null)
saveAuth(member)
val reloadedMember = memberRepository.findById(member.id!!).orElseThrow()
val resolved = service.resolveForQuery(
member = reloadedMember,
isAdultContentVisible = true,
contentType = ContentType.FEMALE
)
val resolved = service.resolveForQuery(member = reloadedMember)
assertEquals("KR", resolved.countryCode)
assertTrue(resolved.isAdultContentVisible)
assertEquals(ContentType.FEMALE, resolved.contentType)
assertEquals(ContentType.ALL, resolved.contentType)
assertTrue(resolved.isAdult)
}
@@ -172,11 +156,7 @@ class MemberContentPreferenceIntegrationTest @Autowired constructor(
contentType = ContentType.FEMALE
)
val resolved = service.resolveForQuery(
member = reloadedMember,
isAdultContentVisible = true,
contentType = ContentType.MALE
)
val resolved = service.resolveForQuery(member = reloadedMember)
val stored = service.getStoredPreference(reloadedMember)
assertFalse(resolved.isAdultContentVisible)

View File

@@ -258,8 +258,8 @@ class MemberContentPreferenceServiceTest {
}
@Test
@DisplayName("row 미존재 + 인증 사용자 legacy 조회 파라미터는 초기 생성값으로 반영된다")
fun shouldSeedPreferenceFromLegacyParamsWhenRowMissingAndAuthenticated() {
@DisplayName("row 미존재 + 인증 사용자 legacy 파라미터와 무관하게 true/ALL로 초기 생성된다")
fun shouldSeedPreferenceToTrueAndAllWhenRowMissingAndAuthenticatedRegardlessOfLegacyParams() {
val member = createMember(id = 2100L, withAuth = true)
countryContext.setCountryCode("US")
@@ -269,14 +269,10 @@ class MemberContentPreferenceServiceTest {
Mockito.`when`(repository.saveAndFlush(Mockito.any(MemberContentPreference::class.java)))
.thenAnswer { invocation -> invocation.getArgument(0) }
val result = service.resolveForQuery(
member = member,
isAdultContentVisible = true,
contentType = ContentType.FEMALE
)
val result = service.resolveForQuery(member = member)
assertTrue(result.isAdultContentVisible)
assertEquals(ContentType.FEMALE, result.contentType)
assertEquals(ContentType.ALL, result.contentType)
assertTrue(result.isAdult)
}
@@ -292,11 +288,7 @@ class MemberContentPreferenceServiceTest {
Mockito.`when`(repository.saveAndFlush(Mockito.any(MemberContentPreference::class.java)))
.thenAnswer { invocation -> invocation.getArgument(0) }
val result = service.resolveForQuery(
member = member,
isAdultContentVisible = null,
contentType = null
)
val result = service.resolveForQuery(member = member)
assertTrue(result.isAdultContentVisible)
assertEquals(ContentType.ALL, result.contentType)
@@ -315,11 +307,7 @@ class MemberContentPreferenceServiceTest {
Mockito.`when`(repository.saveAndFlush(Mockito.any(MemberContentPreference::class.java)))
.thenAnswer { invocation -> invocation.getArgument(0) }
val result = service.resolveForQuery(
member = member,
isAdultContentVisible = true,
contentType = ContentType.MALE
)
val result = service.resolveForQuery(member = member)
assertFalse(result.isAdultContentVisible)
assertEquals(ContentType.ALL, result.contentType)
@@ -431,11 +419,7 @@ class MemberContentPreferenceServiceTest {
countryContext.setCountryCode("US")
Mockito.`when`(repository.findByMemberId(21L)).thenReturn(preference)
val result = service.resolveForQuery(
member = member,
isAdultContentVisible = true,
contentType = ContentType.MALE
)
val result = service.resolveForQuery(member = member)
assertEquals(ContentType.FEMALE, result.contentType)
assertFalse(result.isAdultContentVisible)
@@ -449,11 +433,7 @@ class MemberContentPreferenceServiceTest {
countryContext.setCountryCode("US")
Mockito.`when`(repository.findByMemberId(25L)).thenReturn(preference)
service.resolveForQuery(
member = member,
isAdultContentVisible = true,
contentType = null
)
service.resolveForQuery(member = member)
verifyRecommendLiveCacheNotEvicted(25L)
}