feat: AuthInterceptor 통합으로 인해 변경된 테스트 수정

This commit is contained in:
이상진 2025-07-23 14:02:35 +09:00
parent 75afa45224
commit 3a3974f344
4 changed files with 24 additions and 40 deletions

View File

@ -17,11 +17,11 @@ import org.springframework.http.HttpHeaders
import org.springframework.http.HttpStatus import org.springframework.http.HttpStatus
import org.springframework.http.MediaType import org.springframework.http.MediaType
import org.springframework.transaction.support.TransactionTemplate import org.springframework.transaction.support.TransactionTemplate
import roomescape.auth.web.support.AdminInterceptor import roomescape.auth.infrastructure.jwt.JwtHandler
import roomescape.auth.web.support.LoginInterceptor
import roomescape.auth.web.support.MemberIdResolver import roomescape.auth.web.support.MemberIdResolver
import roomescape.common.exception.ErrorType import roomescape.common.exception.ErrorType
import roomescape.common.exception.RoomescapeException import roomescape.common.exception.RoomescapeException
import roomescape.member.business.MemberService
import roomescape.member.infrastructure.persistence.MemberEntity import roomescape.member.infrastructure.persistence.MemberEntity
import roomescape.member.infrastructure.persistence.Role import roomescape.member.infrastructure.persistence.Role
import roomescape.payment.infrastructure.client.TossPaymentClient import roomescape.payment.infrastructure.client.TossPaymentClient
@ -45,15 +45,15 @@ class ReservationControllerTest(
@MockkBean @MockkBean
lateinit var paymentClient: TossPaymentClient lateinit var paymentClient: TossPaymentClient
@SpykBean
lateinit var loginInterceptor: LoginInterceptor
@SpykBean
lateinit var adminInterceptor: AdminInterceptor
@SpykBean @SpykBean
lateinit var memberIdResolver: MemberIdResolver lateinit var memberIdResolver: MemberIdResolver
@SpykBean
lateinit var memberService: MemberService
@MockkBean
lateinit var jwtHandler: JwtHandler
init { init {
context("POST /reservations") { context("POST /reservations") {
lateinit var member: MemberEntity lateinit var member: MemberEntity
@ -737,31 +737,18 @@ class ReservationControllerTest(
} }
} }
if (member.isAdmin()) { every {
loginAsAdmin() jwtHandler.getMemberIdFromToken(any())
} else { } returns member.id!!
loginAsUser()
} every {
resolveMemberId(member.id!!) memberService.findById(member.id!!)
} returns member
every {
memberIdResolver.resolveArgument(any(), any(), any(), any())
} returns member.id!!
return member return member
} }
private fun loginAsUser() {
every {
loginInterceptor.preHandle(any(), any(), any())
} returns true
}
private fun loginAsAdmin() {
every {
adminInterceptor.preHandle(any(), any(), any())
} returns true
}
private fun resolveMemberId(memberId: Long) {
every {
memberIdResolver.resolveArgument(any(), any(), any(), any())
} returns memberId
}
} }

View File

@ -11,6 +11,7 @@ import io.mockk.runs
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
import org.springframework.http.MediaType import org.springframework.http.MediaType
import org.springframework.test.web.servlet.MockMvc import org.springframework.test.web.servlet.MockMvc
import roomescape.auth.exception.AuthErrorCode
import roomescape.theme.business.ThemeService import roomescape.theme.business.ThemeService
import roomescape.theme.infrastructure.persistence.ThemeRepository import roomescape.theme.infrastructure.persistence.ThemeRepository
import roomescape.util.RoomescapeApiTest import roomescape.util.RoomescapeApiTest
@ -108,7 +109,7 @@ class ThemeControllerTest(mockMvc: MockMvc) : RoomescapeApiTest() {
body = request, body = request,
) { ) {
status { is3xxRedirection() } status { is3xxRedirection() }
jsonPath("$.errorType") { value("PERMISSION_DOES_NOT_EXIST") } jsonPath("$.code") { value(AuthErrorCode.ACCESS_DENIED.errorCode) }
} }
} }
} }
@ -249,7 +250,7 @@ class ThemeControllerTest(mockMvc: MockMvc) : RoomescapeApiTest() {
endpoint = endpoint, endpoint = endpoint,
) { ) {
status { is3xxRedirection() } status { is3xxRedirection() }
jsonPath("$.errorType") { value("PERMISSION_DOES_NOT_EXIST") } jsonPath("$.code") { value(AuthErrorCode.ACCESS_DENIED.errorCode) }
} }
} }
} }

View File

@ -11,8 +11,7 @@ import org.springframework.http.HttpStatus
import org.springframework.http.MediaType import org.springframework.http.MediaType
import org.springframework.test.web.servlet.* import org.springframework.test.web.servlet.*
import roomescape.auth.infrastructure.jwt.JwtHandler import roomescape.auth.infrastructure.jwt.JwtHandler
import roomescape.auth.web.support.AdminInterceptor import roomescape.auth.web.support.AuthInterceptor
import roomescape.auth.web.support.LoginInterceptor
import roomescape.auth.web.support.MemberIdResolver import roomescape.auth.web.support.MemberIdResolver
import roomescape.common.config.JacksonConfig import roomescape.common.config.JacksonConfig
import roomescape.common.exception.ErrorType import roomescape.common.exception.ErrorType
@ -25,10 +24,7 @@ import roomescape.util.MemberFixture.NOT_LOGGED_IN_USERID
abstract class RoomescapeApiTest : BehaviorSpec() { abstract class RoomescapeApiTest : BehaviorSpec() {
@SpykBean @SpykBean
private lateinit var AdminInterceptor: AdminInterceptor private lateinit var authInterceptor: AuthInterceptor
@SpykBean
private lateinit var loginInterceptor: LoginInterceptor
@SpykBean @SpykBean
private lateinit var memberIdResolver: MemberIdResolver private lateinit var memberIdResolver: MemberIdResolver