feat: RoomescapeApiTest 내 Delete 테스트 및 응답 객체를 읽어오는 확장함수 추가

This commit is contained in:
이상진 2025-07-17 18:19:28 +09:00
parent 0896e3bf30
commit f569545361

View File

@ -55,9 +55,7 @@ abstract class RoomescapeApiTest : BehaviorSpec() {
header(HttpHeaders.COOKIE, "accessToken=token") header(HttpHeaders.COOKIE, "accessToken=token")
}.apply { }.apply {
log.takeIf { it }?.let { this.andDo { print() } } log.takeIf { it }?.let { this.andDo { print() } }
}.andExpect { }.andExpect(assert)
assert
}
fun runPostTest( fun runPostTest(
mockMvc: MockMvc, mockMvc: MockMvc,
@ -77,6 +75,19 @@ abstract class RoomescapeApiTest : BehaviorSpec() {
assert assert
} }
fun runDeleteTest(
mockMvc: MockMvc,
endpoint: String,
log: Boolean = false,
assert: MockMvcResultMatchersDsl.() -> Unit
): ResultActionsDsl = mockMvc.delete(endpoint) {
header(HttpHeaders.COOKIE, "accessToken=token")
}.apply {
log.takeIf { it }?.let { this.andDo { print() } }
}.andExpect {
assert
}
fun loginAsAdmin() { fun loginAsAdmin() {
every { every {
jwtHandler.getMemberIdFromToken(any()) jwtHandler.getMemberIdFromToken(any())
@ -104,6 +115,13 @@ abstract class RoomescapeApiTest : BehaviorSpec() {
every { memberRepository.findByIdOrNull(NOT_LOGGED_IN_USERID) } returns null every { memberRepository.findByIdOrNull(NOT_LOGGED_IN_USERID) } returns null
} }
fun <T> MvcResult.readValue(valueType: Class<T>): T = this.response.contentAsString
.takeIf { it.isNotBlank() }
?.let { readValue(it, valueType) }
?: throw RuntimeException("""
[Test] Exception occurred while reading response json: ${this.response.contentAsString} with value type: $valueType
""".trimIndent())
fun <T> readValue(responseJson: String, valueType: Class<T>): T = objectMapper fun <T> readValue(responseJson: String, valueType: Class<T>): T = objectMapper
.readTree(responseJson)["data"] .readTree(responseJson)["data"]
?.let { objectMapper.convertValue(it, valueType) } ?.let { objectMapper.convertValue(it, valueType) }