From f56954536129876c935ed637da49454d3805ac3e Mon Sep 17 00:00:00 2001 From: pricelees Date: Thu, 17 Jul 2025 18:19:28 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20RoomescapeApiTest=20=EB=82=B4=20Delete?= =?UTF-8?q?=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EB=B0=8F=20=EC=9D=91=EB=8B=B5?= =?UTF-8?q?=20=EA=B0=9D=EC=B2=B4=EB=A5=BC=20=EC=9D=BD=EC=96=B4=EC=98=A4?= =?UTF-8?q?=EB=8A=94=20=ED=99=95=EC=9E=A5=ED=95=A8=EC=88=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/roomescape/util/RoomescapeApiTest.kt | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/test/java/roomescape/util/RoomescapeApiTest.kt b/src/test/java/roomescape/util/RoomescapeApiTest.kt index 23addfe6..803bf86e 100644 --- a/src/test/java/roomescape/util/RoomescapeApiTest.kt +++ b/src/test/java/roomescape/util/RoomescapeApiTest.kt @@ -55,9 +55,7 @@ abstract class RoomescapeApiTest : BehaviorSpec() { header(HttpHeaders.COOKIE, "accessToken=token") }.apply { log.takeIf { it }?.let { this.andDo { print() } } - }.andExpect { - assert - } + }.andExpect(assert) fun runPostTest( mockMvc: MockMvc, @@ -77,6 +75,19 @@ abstract class RoomescapeApiTest : BehaviorSpec() { 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() { every { jwtHandler.getMemberIdFromToken(any()) @@ -104,6 +115,13 @@ abstract class RoomescapeApiTest : BehaviorSpec() { every { memberRepository.findByIdOrNull(NOT_LOGGED_IN_USERID) } returns null } + fun MvcResult.readValue(valueType: Class): 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 readValue(responseJson: String, valueType: Class): T = objectMapper .readTree(responseJson)["data"] ?.let { objectMapper.convertValue(it, valueType) }