From 1e9dbd87c3e41461ccf699332f4ecde32ea5ea9e Mon Sep 17 00:00:00 2001 From: pricelees Date: Thu, 11 Sep 2025 17:06:35 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=83=88=EB=A1=9C=EC=9A=B4=20=EC=8A=A4?= =?UTF-8?q?=ED=82=A4=EB=A7=88=EC=97=90=20=EB=A7=9E=EC=B6=98=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20AuthUtil=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20FK=20=EC=98=A4=EB=A5=98=20=EB=B0=A9?= =?UTF-8?q?=EC=A7=80=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EC=97=90=EC=84=9C=EC=9D=98=20region=20=ED=85=8C?= =?UTF-8?q?=EC=9D=B4=EB=B8=94=20=EC=82=AD=EC=A0=9C=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/roomescape/util/DatabaseCleaner.kt | 3 ++ .../roomescape/util/RestAssuredUtils.kt | 52 +++++++++++++++++-- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/test/kotlin/roomescape/util/DatabaseCleaner.kt b/src/test/kotlin/roomescape/util/DatabaseCleaner.kt index 12ac477d..b2b6ce43 100644 --- a/src/test/kotlin/roomescape/util/DatabaseCleaner.kt +++ b/src/test/kotlin/roomescape/util/DatabaseCleaner.kt @@ -26,6 +26,9 @@ class DatabaseCleaner( jdbcTemplate.execute("SET REFERENTIAL_INTEGRITY FALSE") tables.forEach { + if (it == "region") { + return@forEach + } jdbcTemplate.execute("TRUNCATE TABLE $it RESTART IDENTITY") } jdbcTemplate.execute("SET REFERENTIAL_INTEGRITY TRUE") diff --git a/src/test/kotlin/roomescape/util/RestAssuredUtils.kt b/src/test/kotlin/roomescape/util/RestAssuredUtils.kt index 752680d1..de99b716 100644 --- a/src/test/kotlin/roomescape/util/RestAssuredUtils.kt +++ b/src/test/kotlin/roomescape/util/RestAssuredUtils.kt @@ -8,14 +8,18 @@ import io.restassured.response.Response import io.restassured.response.ValidatableResponse import io.restassured.specification.RequestSpecification import org.springframework.http.MediaType +import roomescape.admin.infrastructure.persistence.AdminEntity +import roomescape.admin.infrastructure.persistence.AdminRepository import roomescape.auth.web.LoginRequest +import roomescape.auth.web.LoginRequestV2 import roomescape.common.config.next -import roomescape.member.infrastructure.persistence.MemberEntity -import roomescape.member.infrastructure.persistence.MemberRepository -import roomescape.member.infrastructure.persistence.Role +import roomescape.common.dto.PrincipalType +import roomescape.member.infrastructure.persistence.* class AuthUtil( - private val memberRepository: MemberRepository + private val memberRepository: MemberRepository, + private val userRepository: UserRepository, + private val adminRepository: AdminRepository ) { fun login(email: String, password: String, role: Role = Role.MEMBER): String { if (!memberRepository.existsByEmail(email)) { @@ -54,6 +58,46 @@ class AuthUtil( MemberFixture.user.email, MemberFixture.user.password ) ?: throw AssertionError("Unexpected Exception Occurred.") + + + + fun adminLogin(admin: AdminEntity): String { + if (adminRepository.findByAccount(admin.account) == null) { + adminRepository.save(admin) + } + + return Given { + contentType(MediaType.APPLICATION_JSON_VALUE) + body(LoginRequestV2(account = admin.account, password = admin.password, principalType = PrincipalType.ADMIN)) + } When { + post("/auth/login") + } Then { + statusCode(200) + } Extract { + path("data.accessToken") + } + } + + fun defaultAdminLogin(): String = adminLogin(AdminFixture.default) + + fun userLogin(user: UserEntity): String { + if (userRepository.findByEmail(user.email) == null) { + userRepository.save(user) + } + + return Given { + contentType(MediaType.APPLICATION_JSON_VALUE) + body(LoginRequestV2(account = user.email, password = user.password, principalType = PrincipalType.USER)) + } When { + post("/auth/login") + } Then { + statusCode(200) + } Extract { + path("data.accessToken") + } + } + + fun defaultUserLogin(): String = userLogin(UserFixture.default) } fun runTest(