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

Merged
pricelees merged 116 commits from feat/#44 into main 2025-09-20 03:15:06 +00:00
3 changed files with 27 additions and 6 deletions
Showing only changes of commit 5fa5e5c49d - Show all commits

View File

@ -17,6 +17,7 @@ fun runTest(
on: RequestSpecification.() -> Response,
expect: ValidatableResponse.() -> Unit
): ValidatableResponse {
println("[runTest] 테스트 시작")
return Given {
contentType(MediaType.APPLICATION_JSON_VALUE)
token?.also { header("Authorization", "Bearer $token") }

View File

@ -22,20 +22,28 @@ class TestAuthUtil(
private val storeRepository: StoreRepository,
) {
fun createAdmin(admin: AdminEntity): AdminEntity {
println("[TestAuthUtil] 관리자 생성 시작. id=${admin.id}")
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}")
}
}
return adminRepository.save(admin)
return adminRepository.save(admin).also {
println("[TestAuthUtil] 관리자 생성 완료. id=${admin.id}")
}
}
fun signup(request: UserCreateRequest): UserEntity {
println("[TestAuthUtil] 회원가입 시작: $request")
val userId: Long = Given {
contentType(MediaType.APPLICATION_JSON_VALUE)
body(request)
@ -48,14 +56,16 @@ class TestAuthUtil(
}
return userRepository.findByIdOrNull(userId)
?.also { println("[TestAuthUtil] 회원가입 완료. 회원 반환: $userId") }
?: throw AssertionError("Unexpected Exception Occurred.")
}
fun adminLogin(admin: AdminEntity): String {
println("[TestAuthUtil] 관리자 로그인 시작. id=${admin.id}, account=${admin.account}")
val saved = createAdmin(admin)
val requestBody = LoginRequest(saved.account, saved.password, PrincipalType.ADMIN)
return Given {
val token: String = Given {
contentType(MediaType.APPLICATION_JSON_VALUE)
body(requestBody)
} When {
@ -65,17 +75,21 @@ class TestAuthUtil(
} Extract {
path("data.accessToken")
}
return token.also { println("[TestAuthUtil] 관리자 로그인 완료. id=${admin.id}, account=${admin.account}") }
}
fun defaultStoreAdminLogin(): String = adminLogin(AdminFixture.storeDefault)
fun defaultHqAdminLogin(): String = adminLogin(AdminFixture.hqDefault)
fun userLogin(user: UserEntity): String {
println("[TestAuthUtil] 회원 로그인 시작. id=${user.id}, email=${user.email}")
if (userRepository.findByEmail(user.email) == null) {
println("[TestAuthUtil] 회원 정보 없음. 회원 생성 시작. email=${user.email}")
userRepository.save(user)
}
return Given {
val token: String = Given {
contentType(MediaType.APPLICATION_JSON_VALUE)
body(LoginRequest(account = user.email, password = user.password, principalType = PrincipalType.USER))
} When {
@ -85,6 +99,8 @@ class TestAuthUtil(
} Extract {
path("data.accessToken")
}
return token.also { println("[TestAuthUtil] 회원 로그인 완료. id=${user.id}, email=${user.email}") }
}
fun defaultUserLogin(): String = userLogin(UserFixture.default)

View File

@ -3,7 +3,11 @@ package roomescape.supports
import kotlin.random.Random
inline fun <T> initialize(name: String, block: () -> T): T {
return block()
println("초기화 작업 시작: $name")
return block().also {
println("초기화 작업 완료: $name")
println("===================================")
}
}
fun randomPhoneNumber(): String {