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) }