[#44] 매장 기능 도입 #45

Merged
pricelees merged 116 commits from feat/#44 into main 2025-09-20 03:15:06 +00:00
Showing only changes of commit 4a30cc8c14 - Show all commits

View File

@ -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<AdminEntity, String> {
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<AdminEntity, String> = adminLogin(AdminFixture.storeDefault)
fun defaultHqAdminLogin(): Pair<AdminEntity, String> = adminLogin(AdminFixture.hqDefault)
fun userLogin(user: UserEntity): String {
println("[TestAuthUtil] 회원 로그인 시작. id=${user.id}, email=${user.email}")