generated from pricelees/issue-pr-template
test: ApiLogMessageConverter 테스트 추가 및 잘못 작성된 로직 수정
This commit is contained in:
parent
c6cabc07d6
commit
e2f77b982b
@ -50,7 +50,7 @@ class ApiLogMessageConverter(
|
||||
?.let { payload["member_id"] = it }
|
||||
?: run { payload["member_id"] = "NONE" }
|
||||
|
||||
request.startTime?.let { payload["start_time"] = it }
|
||||
request.startTime?.let { payload["duration_ms"] = System.currentTimeMillis() - it }
|
||||
request.body?.let { payload["response_body"] = it }
|
||||
request.exception?.let {
|
||||
payload["exception"] = mapOf(
|
||||
|
||||
@ -0,0 +1,63 @@
|
||||
package roomescape.common.log
|
||||
|
||||
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
|
||||
import io.kotest.core.spec.style.FunSpec
|
||||
import io.kotest.core.spec.style.StringSpec
|
||||
import io.kotest.matchers.shouldBe
|
||||
import io.mockk.every
|
||||
import io.mockk.mockk
|
||||
import jakarta.servlet.http.HttpServletRequest
|
||||
import org.slf4j.MDC
|
||||
import roomescape.auth.exception.AuthErrorCode
|
||||
import roomescape.auth.exception.AuthException
|
||||
|
||||
class ApiLogMessageConverterTest : StringSpec({
|
||||
val converter = ApiLogMessageConverter(jacksonObjectMapper())
|
||||
val request: HttpServletRequest = mockk()
|
||||
|
||||
beforeTest {
|
||||
MDC.remove("member_id")
|
||||
MDC.put("member_id", "1")
|
||||
}
|
||||
|
||||
afterSpec {
|
||||
MDC.remove("member_id")
|
||||
}
|
||||
|
||||
"HTTP 요청 메시지를 변환한다." {
|
||||
val method = "POST".also { every { request.method } returns it }
|
||||
val requestURI = "/test/sangdol".also { every { request.requestURI } returns it }
|
||||
val clientIP = "127.0.0.1".also { every { request.remoteAddr } returns it }
|
||||
val query = "key=value&key1=value1".also { every { request.queryString } returns it }
|
||||
val userAgent = "Mozilla/5.".also { every { request.getHeader("User-Agent") } returns it }
|
||||
|
||||
converter.convertToHttpRequestMessage(request) shouldBe """
|
||||
{"type":"INCOMING_HTTP_REQUEST","method":"$method","uri":"$requestURI","query_params":"$query","client_ip":"$clientIP","user_agent":"$userAgent"}
|
||||
""".trimIndent()
|
||||
}
|
||||
|
||||
"Controller 요청 메시지를 변환한다." {
|
||||
val controllerPayload: Map<String, Any> = mapOf(
|
||||
"controller_method" to "Controller 요청 메시지를 변환한다.",
|
||||
"request_body" to mapOf("key1" to "value1")
|
||||
)
|
||||
val method = "POST".also { every { request.method } returns it }
|
||||
val requestURI = "/test/sangdol".also { every { request.requestURI } returns it }
|
||||
|
||||
converter.convertToControllerInvokedMessage(request, controllerPayload) shouldBe """
|
||||
{"type":"CONTROLLER_INVOKED","method":"$method","uri":"$requestURI","member_id":1,"controller_method":"${controllerPayload.get("controller_method")}","request_body":{"key1":"value1"}}
|
||||
""".trimIndent()
|
||||
}
|
||||
|
||||
"Controller 응답 메시지를 반환한다." {
|
||||
val request = ConvertResponseMessageRequest(
|
||||
type = LogType.CONTROLLER_SUCCESS,
|
||||
httpStatus = 200,
|
||||
exception = AuthException(AuthErrorCode.MEMBER_NOT_FOUND, "테스트 메시지!")
|
||||
)
|
||||
|
||||
converter.convertToResponseMessage(request) shouldBe """
|
||||
{"type":"CONTROLLER_SUCCESS","status_code":200,"member_id":1,"exception":{"class":"AuthException","message":"테스트 메시지!"}}
|
||||
""".trimIndent()
|
||||
}
|
||||
})
|
||||
Loading…
x
Reference in New Issue
Block a user