diff --git a/src/test/kotlin/roomescape/supports/TestAuthUtil.kt b/src/test/kotlin/roomescape/supports/TestAuthUtil.kt index a429c424..f9c345fc 100644 --- a/src/test/kotlin/roomescape/supports/TestAuthUtil.kt +++ b/src/test/kotlin/roomescape/supports/TestAuthUtil.kt @@ -9,6 +9,7 @@ import org.springframework.http.HttpStatus import org.springframework.http.MediaType import roomescape.admin.infrastructure.persistence.AdminEntity import roomescape.admin.infrastructure.persistence.AdminRepository +import roomescape.admin.infrastructure.persistence.AdminType import roomescape.auth.web.LoginRequest import roomescape.common.dto.PrincipalType import roomescape.store.infrastructure.persistence.StoreRepository @@ -24,16 +25,23 @@ class TestAuthUtil( fun createAdmin(admin: AdminEntity): AdminEntity { println("[TestAuthUtil] 관리자 생성 시작. id=${admin.id}") + if (adminRepository.findByIdOrNull(admin.id) != null) { + println("[TestAuthUtil] 관리자 존재. 생성 종료: id=${admin.id}") + return admin + } + val storeId = admin.storeId - if (storeId != null && storeRepository.findByIdOrNull(storeId) == null) { - println("[TestAuthUtil] 매장 정보 없음. 매장 생성 시작. storeId=${storeId} adminId=${admin.id}") - storeRepository.save( - StoreFixture.create( - id = storeId, - businessRegNum = randomBusinessRegNum(), - ) - ).also { - println("[TestAuthUtil] 매장 생성 완료. storeId=${storeId} adminId=${admin.id}") + if (admin.type == AdminType.STORE) { + if (storeRepository.findByIdOrNull(storeId!!) == null) { + println("[TestAuthUtil] 매장 정보 없음. 매장 생성 시작. storeId=${storeId} adminId=${admin.id}") + storeRepository.save( + StoreFixture.create( + id = storeId, + businessRegNum = randomBusinessRegNum(), + ) + ).also { + println("[TestAuthUtil] 매장 생성 완료. storeId=${storeId} adminId=${admin.id}") + } } } @@ -60,10 +68,11 @@ class TestAuthUtil( ?: throw AssertionError("Unexpected Exception Occurred.") } - fun adminLogin(admin: AdminEntity): String { + fun adminLogin(admin: AdminEntity): Pair { println("[TestAuthUtil] 관리자 로그인 시작. id=${admin.id}, account=${admin.account}") - val saved = createAdmin(admin) - val requestBody = LoginRequest(saved.account, saved.password, PrincipalType.ADMIN) + createAdmin(admin) + + val requestBody = LoginRequest(admin.account, admin.password, PrincipalType.ADMIN) val token: String = Given { contentType(MediaType.APPLICATION_JSON_VALUE) @@ -76,11 +85,11 @@ class TestAuthUtil( path("data.accessToken") } - return token.also { println("[TestAuthUtil] 관리자 로그인 완료. id=${admin.id}, account=${admin.account}") } + return admin to token.also { println("[TestAuthUtil] 관리자 로그인 완료. id=${admin.id}, account=${admin.account}") } } - fun defaultStoreAdminLogin(): String = adminLogin(AdminFixture.storeDefault) - fun defaultHqAdminLogin(): String = adminLogin(AdminFixture.hqDefault) + fun defaultStoreAdminLogin(): Pair = adminLogin(AdminFixture.storeDefault) + fun defaultHqAdminLogin(): Pair = adminLogin(AdminFixture.hqDefault) fun userLogin(user: UserEntity): String { println("[TestAuthUtil] 회원 로그인 시작. id=${user.id}, email=${user.email}")