generated from pricelees/issue-pr-template
[#44] 매장 기능 도입 #45
@ -38,7 +38,7 @@ class AuthApiTest(
|
|||||||
AdminFixture.hqDefault
|
AdminFixture.hqDefault
|
||||||
).forEach {
|
).forEach {
|
||||||
test("${it.type} 타입 관리자") {
|
test("${it.type} 타입 관리자") {
|
||||||
val admin = authUtil.createAdmin(it)
|
val admin = testAuthUtil.createAdmin(it)
|
||||||
|
|
||||||
runLoginSuccessTest(
|
runLoginSuccessTest(
|
||||||
id = admin.id,
|
id = admin.id,
|
||||||
@ -56,7 +56,7 @@ class AuthApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
val user: UserEntity = authUtil.signup(UserFixture.createRequest)
|
val user: UserEntity = testAuthUtil.signup(UserFixture.createRequest)
|
||||||
|
|
||||||
runLoginSuccessTest(
|
runLoginSuccessTest(
|
||||||
id = user.id,
|
id = user.id,
|
||||||
@ -73,7 +73,7 @@ class AuthApiTest(
|
|||||||
context("실패 응답") {
|
context("실패 응답") {
|
||||||
context("계정이 맞으면 로그인 실패 이력을 남긴다.") {
|
context("계정이 맞으면 로그인 실패 이력을 남긴다.") {
|
||||||
test("비밀번호가 틀린 경우") {
|
test("비밀번호가 틀린 경우") {
|
||||||
val admin = authUtil.createAdmin(AdminFixture.default)
|
val admin = testAuthUtil.createAdmin(AdminFixture.default)
|
||||||
val request = LoginRequest(admin.account, "wrong_password", PrincipalType.ADMIN)
|
val request = LoginRequest(admin.account, "wrong_password", PrincipalType.ADMIN)
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
@ -96,7 +96,7 @@ class AuthApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("토큰 생성 과정에서 오류가 발생하는 경우") {
|
test("토큰 생성 과정에서 오류가 발생하는 경우") {
|
||||||
val admin = authUtil.createAdmin(AdminFixture.default)
|
val admin = testAuthUtil.createAdmin(AdminFixture.default)
|
||||||
val request = LoginRequest(admin.account, admin.password, PrincipalType.ADMIN)
|
val request = LoginRequest(admin.account, admin.password, PrincipalType.ADMIN)
|
||||||
|
|
||||||
every {
|
every {
|
||||||
@ -125,7 +125,7 @@ class AuthApiTest(
|
|||||||
|
|
||||||
context("계정이 일치하지 않으면 로그인 실패 이력을 남기지 않는다.") {
|
context("계정이 일치하지 않으면 로그인 실패 이력을 남기지 않는다.") {
|
||||||
test("회원") {
|
test("회원") {
|
||||||
val user = authUtil.signup(UserFixture.createRequest)
|
val user = testAuthUtil.signup(UserFixture.createRequest)
|
||||||
val invalidEmail = "test@email.com".also {
|
val invalidEmail = "test@email.com".also {
|
||||||
it shouldNotBe user.email
|
it shouldNotBe user.email
|
||||||
}
|
}
|
||||||
@ -149,7 +149,7 @@ class AuthApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
val admin = authUtil.createAdmin(AdminFixture.default)
|
val admin = testAuthUtil.createAdmin(AdminFixture.default)
|
||||||
val invalidAccount = "invalid".also {
|
val invalidAccount = "invalid".also {
|
||||||
it shouldNotBe admin.account
|
it shouldNotBe admin.account
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,7 @@ class FailOnSaveLoginHistoryTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
val user = authUtil.signup(UserFixture.createRequest)
|
val user = testAuthUtil.signup(UserFixture.createRequest)
|
||||||
val request = LoginRequest(user.email, user.password, PrincipalType.USER)
|
val request = LoginRequest(user.email, user.password, PrincipalType.USER)
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
@ -44,7 +44,7 @@ class FailOnSaveLoginHistoryTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
val admin = authUtil.createAdmin(AdminFixture.default)
|
val admin = testAuthUtil.createAdmin(AdminFixture.default)
|
||||||
val request = LoginRequest(admin.account, admin.password, PrincipalType.ADMIN)
|
val request = LoginRequest(admin.account, admin.password, PrincipalType.ADMIN)
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
|
|||||||
@ -43,7 +43,7 @@ class PaymentAPITest(
|
|||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -165,8 +165,8 @@ class PaymentAPITest(
|
|||||||
PaymentMethod.entries.filter { it !in supportedMethod }.forEach {
|
PaymentMethod.entries.filter { it !in supportedMethod }.forEach {
|
||||||
test("결제 수단: ${it.koreanName}") {
|
test("결제 수단: ${it.koreanName}") {
|
||||||
val reservation = dummyInitializer.createConfirmReservation(
|
val reservation = dummyInitializer.createConfirmReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = authUtil.defaultUserLogin()
|
reserverToken = testAuthUtil.defaultUserLogin()
|
||||||
)
|
)
|
||||||
|
|
||||||
val request = PaymentFixture.confirmRequest
|
val request = PaymentFixture.confirmRequest
|
||||||
@ -183,7 +183,7 @@ class PaymentAPITest(
|
|||||||
)
|
)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = "/payments?reservationId=${reservation.id}",
|
endpoint = "/payments?reservationId=${reservation.id}",
|
||||||
requestBody = PaymentFixture.confirmRequest,
|
requestBody = PaymentFixture.confirmRequest,
|
||||||
@ -209,7 +209,7 @@ class PaymentAPITest(
|
|||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
requestBody = PaymentFixture.cancelRequest,
|
requestBody = PaymentFixture.cancelRequest,
|
||||||
@ -219,10 +219,10 @@ class PaymentAPITest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 취소") {
|
test("정상 취소") {
|
||||||
val userToken = authUtil.defaultUserLogin()
|
val userToken = testAuthUtil.defaultUserLogin()
|
||||||
val confirmRequest = PaymentFixture.confirmRequest
|
val confirmRequest = PaymentFixture.confirmRequest
|
||||||
val reservation = dummyInitializer.createConfirmReservation(
|
val reservation = dummyInitializer.createConfirmReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = userToken
|
reserverToken = userToken
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -266,9 +266,9 @@ class PaymentAPITest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("예약에 대한 결제 정보가 없으면 실패한다.") {
|
test("예약에 대한 결제 정보가 없으면 실패한다.") {
|
||||||
val userToken = authUtil.defaultUserLogin()
|
val userToken = testAuthUtil.defaultUserLogin()
|
||||||
val reservation = dummyInitializer.createConfirmReservation(
|
val reservation = dummyInitializer.createConfirmReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = userToken,
|
reserverToken = userToken,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -312,8 +312,8 @@ class PaymentAPITest(
|
|||||||
val request = PaymentFixture.confirmRequest.copy(paymentKey = paymentKey, amount = amount)
|
val request = PaymentFixture.confirmRequest.copy(paymentKey = paymentKey, amount = amount)
|
||||||
|
|
||||||
val reservation: ReservationEntity = dummyInitializer.createPendingReservation(
|
val reservation: ReservationEntity = dummyInitializer.createPendingReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = authUtil.defaultUserLogin(),
|
reserverToken = testAuthUtil.defaultUserLogin(),
|
||||||
)
|
)
|
||||||
|
|
||||||
val method = if (easyPayDetail != null) {
|
val method = if (easyPayDetail != null) {
|
||||||
@ -335,7 +335,7 @@ class PaymentAPITest(
|
|||||||
} returns clientResponse
|
} returns clientResponse
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
using = {
|
using = {
|
||||||
body(request)
|
body(request)
|
||||||
},
|
},
|
||||||
|
|||||||
@ -55,7 +55,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -66,13 +66,13 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("정상 생성") {
|
test("정상 생성") {
|
||||||
val schedule: ScheduleEntity = dummyInitializer.createSchedule(
|
val schedule: ScheduleEntity = dummyInitializer.createSchedule(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
request = ScheduleFixture.createRequest,
|
request = ScheduleFixture.createRequest,
|
||||||
status = ScheduleStatus.HOLD
|
status = ScheduleStatus.HOLD
|
||||||
)
|
)
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
using = {
|
using = {
|
||||||
body(commonRequest.copy(scheduleId = schedule.id))
|
body(commonRequest.copy(scheduleId = schedule.id))
|
||||||
},
|
},
|
||||||
@ -95,13 +95,13 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("예약을 생성할 때 해당 일정이 ${ScheduleStatus.HOLD} 상태가 아니면 실패한다.") {
|
test("예약을 생성할 때 해당 일정이 ${ScheduleStatus.HOLD} 상태가 아니면 실패한다.") {
|
||||||
val schedule: ScheduleEntity = dummyInitializer.createSchedule(
|
val schedule: ScheduleEntity = dummyInitializer.createSchedule(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
request = ScheduleFixture.createRequest,
|
request = ScheduleFixture.createRequest,
|
||||||
status = ScheduleStatus.AVAILABLE
|
status = ScheduleStatus.AVAILABLE
|
||||||
)
|
)
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
using = {
|
using = {
|
||||||
body(commonRequest.copy(scheduleId = schedule.id))
|
body(commonRequest.copy(scheduleId = schedule.id))
|
||||||
},
|
},
|
||||||
@ -116,7 +116,7 @@ class ReservationApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("예약 인원이 테마의 최소 인원보다 작거나 최대 인원보다 많으면 실패한다.") {
|
test("예약 인원이 테마의 최소 인원보다 작거나 최대 인원보다 많으면 실패한다.") {
|
||||||
val adminToken = authUtil.defaultStoreAdminLogin()
|
val adminToken = testAuthUtil.defaultStoreAdminLogin()
|
||||||
val theme: ThemeEntity = dummyInitializer.createTheme(
|
val theme: ThemeEntity = dummyInitializer.createTheme(
|
||||||
adminToken = adminToken,
|
adminToken = adminToken,
|
||||||
request = ThemeFixture.createRequest
|
request = ThemeFixture.createRequest
|
||||||
@ -128,7 +128,7 @@ class ReservationApiTest(
|
|||||||
status = ScheduleStatus.HOLD
|
status = ScheduleStatus.HOLD
|
||||||
)
|
)
|
||||||
|
|
||||||
val userToken = authUtil.defaultUserLogin()
|
val userToken = testAuthUtil.defaultUserLogin()
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = userToken,
|
token = userToken,
|
||||||
@ -156,7 +156,7 @@ class ReservationApiTest(
|
|||||||
context("필수 입력값이 입력되지 않으면 실패한다.") {
|
context("필수 입력값이 입력되지 않으면 실패한다.") {
|
||||||
test("예약자명") {
|
test("예약자명") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
requestBody = commonRequest.copy(reserverName = ""),
|
requestBody = commonRequest.copy(reserverName = ""),
|
||||||
@ -166,7 +166,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("예약자 연락처") {
|
test("예약자 연락처") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
requestBody = commonRequest.copy(reserverContact = ""),
|
requestBody = commonRequest.copy(reserverContact = ""),
|
||||||
@ -190,7 +190,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -199,10 +199,10 @@ class ReservationApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 응답") {
|
test("정상 응답") {
|
||||||
val userToken = authUtil.defaultUserLogin()
|
val userToken = testAuthUtil.defaultUserLogin()
|
||||||
|
|
||||||
val reservation: ReservationEntity = dummyInitializer.createPendingReservation(
|
val reservation: ReservationEntity = dummyInitializer.createPendingReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = userToken,
|
reserverToken = userToken,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -228,7 +228,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("예약이 없으면 실패한다.") {
|
test("예약이 없으면 실패한다.") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = "/reservations/$INVALID_PK/confirm",
|
endpoint = "/reservations/$INVALID_PK/confirm",
|
||||||
expectedErrorCode = ReservationErrorCode.RESERVATION_NOT_FOUND
|
expectedErrorCode = ReservationErrorCode.RESERVATION_NOT_FOUND
|
||||||
@ -250,7 +250,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -259,10 +259,10 @@ class ReservationApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 응답") {
|
test("정상 응답") {
|
||||||
val userToken = authUtil.defaultUserLogin()
|
val userToken = testAuthUtil.defaultUserLogin()
|
||||||
|
|
||||||
val reservation: ReservationEntity = dummyInitializer.createConfirmReservation(
|
val reservation: ReservationEntity = dummyInitializer.createConfirmReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = userToken,
|
reserverToken = userToken,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -291,7 +291,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("예약이 없으면 실패한다.") {
|
test("예약이 없으면 실패한다.") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = "/reservations/$INVALID_PK/cancel",
|
endpoint = "/reservations/$INVALID_PK/cancel",
|
||||||
requestBody = ReservationCancelRequest(cancelReason = "test"),
|
requestBody = ReservationCancelRequest(cancelReason = "test"),
|
||||||
@ -301,12 +301,12 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("다른 회원의 예약을 취소할 수 없다.") {
|
test("다른 회원의 예약을 취소할 수 없다.") {
|
||||||
val reservation: ReservationEntity = dummyInitializer.createConfirmReservation(
|
val reservation: ReservationEntity = dummyInitializer.createConfirmReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = authUtil.defaultUserLogin(),
|
reserverToken = testAuthUtil.defaultUserLogin(),
|
||||||
)
|
)
|
||||||
|
|
||||||
val otherUserToken =
|
val otherUserToken =
|
||||||
authUtil.userLogin(UserFixture.createUser(email = "test@test.com", phone = "01011111111"))
|
testAuthUtil.userLogin(UserFixture.createUser(email = "test@test.com", phone = "01011111111"))
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = otherUserToken,
|
token = otherUserToken,
|
||||||
@ -332,7 +332,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -341,8 +341,8 @@ class ReservationApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 응답") {
|
test("정상 응답") {
|
||||||
val userToken = authUtil.defaultUserLogin()
|
val userToken = testAuthUtil.defaultUserLogin()
|
||||||
val adminToken = authUtil.defaultStoreAdminLogin()
|
val adminToken = testAuthUtil.defaultStoreAdminLogin()
|
||||||
|
|
||||||
for (i in 1..3) {
|
for (i in 1..3) {
|
||||||
dummyInitializer.createConfirmReservation(
|
dummyInitializer.createConfirmReservation(
|
||||||
@ -398,7 +398,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -413,8 +413,8 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
beforeTest {
|
beforeTest {
|
||||||
reservation = dummyInitializer.createConfirmReservation(
|
reservation = dummyInitializer.createConfirmReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = authUtil.defaultUserLogin(),
|
reserverToken = testAuthUtil.defaultUserLogin(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -480,7 +480,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
val cancelReason = "테스트입니다."
|
val cancelReason = "테스트입니다."
|
||||||
|
|
||||||
val user = authUtil.defaultUser()
|
val user = testAuthUtil.defaultUser()
|
||||||
|
|
||||||
dummyInitializer.cancelPayment(
|
dummyInitializer.cancelPayment(
|
||||||
userId = user.id,
|
userId = user.id,
|
||||||
@ -547,7 +547,7 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("예약이 없으면 실패한다.") {
|
test("예약이 없으면 실패한다.") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = "/reservations/$INVALID_PK/detail",
|
endpoint = "/reservations/$INVALID_PK/detail",
|
||||||
expectedErrorCode = ReservationErrorCode.RESERVATION_NOT_FOUND
|
expectedErrorCode = ReservationErrorCode.RESERVATION_NOT_FOUND
|
||||||
@ -556,12 +556,12 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("예약은 있지만, 결제 정보를 찾을 수 없으면 null로 지정한다.") {
|
test("예약은 있지만, 결제 정보를 찾을 수 없으면 null로 지정한다.") {
|
||||||
val reservation = dummyInitializer.createConfirmReservation(
|
val reservation = dummyInitializer.createConfirmReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = authUtil.defaultUserLogin(),
|
reserverToken = testAuthUtil.defaultUserLogin(),
|
||||||
)
|
)
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
on = {
|
on = {
|
||||||
get("/reservations/${reservation.id}/detail")
|
get("/reservations/${reservation.id}/detail")
|
||||||
},
|
},
|
||||||
@ -574,8 +574,8 @@ class ReservationApiTest(
|
|||||||
|
|
||||||
test("예약과 결제는 있지만, 결제 세부 내역이 없으면 세부 내역만 null로 지정한다..") {
|
test("예약과 결제는 있지만, 결제 세부 내역이 없으면 세부 내역만 null로 지정한다..") {
|
||||||
val reservation = dummyInitializer.createConfirmReservation(
|
val reservation = dummyInitializer.createConfirmReservation(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
reserverToken = authUtil.defaultUserLogin(),
|
reserverToken = testAuthUtil.defaultUserLogin(),
|
||||||
)
|
)
|
||||||
|
|
||||||
dummyInitializer.createPayment(
|
dummyInitializer.createPayment(
|
||||||
@ -586,7 +586,7 @@ class ReservationApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
on = {
|
on = {
|
||||||
get("/reservations/${reservation.id}/detail")
|
get("/reservations/${reservation.id}/detail")
|
||||||
},
|
},
|
||||||
@ -621,7 +621,7 @@ class ReservationApiTest(
|
|||||||
reservation: ReservationEntity
|
reservation: ReservationEntity
|
||||||
): LinkedHashMap<String, Any> {
|
): LinkedHashMap<String, Any> {
|
||||||
return runTest(
|
return runTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
on = {
|
on = {
|
||||||
get("/reservations/${reservation.id}/detail")
|
get("/reservations/${reservation.id}/detail")
|
||||||
},
|
},
|
||||||
@ -636,7 +636,7 @@ class ReservationApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun initializeForPopularThemeTest(): MostReservedThemeIdListResponse {
|
private fun initializeForPopularThemeTest(): MostReservedThemeIdListResponse {
|
||||||
val user: UserEntity = authUtil.defaultUser()
|
val user: UserEntity = testAuthUtil.defaultUser()
|
||||||
|
|
||||||
val themeIds: List<Long> = (1..5).map {
|
val themeIds: List<Long> = (1..5).map {
|
||||||
themeRepository.save(
|
themeRepository.save(
|
||||||
|
|||||||
@ -32,7 +32,7 @@ class ScheduleApiTest(
|
|||||||
val endpoint = "/schedules/themes?date=$date"
|
val endpoint = "/schedules/themes?date=$date"
|
||||||
|
|
||||||
test("정상 응답") {
|
test("정상 응답") {
|
||||||
val adminToken = authUtil.defaultStoreAdminLogin()
|
val adminToken = testAuthUtil.defaultStoreAdminLogin()
|
||||||
|
|
||||||
for (i in 1..10) {
|
for (i in 1..10) {
|
||||||
dummyInitializer.createSchedule(
|
dummyInitializer.createSchedule(
|
||||||
@ -45,7 +45,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
on = {
|
on = {
|
||||||
get(endpoint)
|
get(endpoint)
|
||||||
},
|
},
|
||||||
@ -61,7 +61,7 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("정상 응답") {
|
test("정상 응답") {
|
||||||
val date = LocalDate.now().plusDays(1)
|
val date = LocalDate.now().plusDays(1)
|
||||||
val adminToken = authUtil.defaultStoreAdminLogin()
|
val adminToken = testAuthUtil.defaultStoreAdminLogin()
|
||||||
val createdSchedule = dummyInitializer.createSchedule(
|
val createdSchedule = dummyInitializer.createSchedule(
|
||||||
adminToken = adminToken,
|
adminToken = adminToken,
|
||||||
request = createRequest.copy(date = date, time = LocalTime.now())
|
request = createRequest.copy(date = date, time = LocalTime.now())
|
||||||
@ -79,7 +79,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
on = {
|
on = {
|
||||||
get("/schedules?date=$date&themeId=${createdSchedule.themeId}")
|
get("/schedules?date=$date&themeId=${createdSchedule.themeId}")
|
||||||
},
|
},
|
||||||
@ -109,7 +109,7 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -120,7 +120,7 @@ class ScheduleApiTest(
|
|||||||
val admin = AdminFixture.create(permissionLevel = AdminPermissionLevel.READ_SUMMARY)
|
val admin = AdminFixture.create(permissionLevel = AdminPermissionLevel.READ_SUMMARY)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -129,7 +129,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 응답") {
|
test("정상 응답") {
|
||||||
val token = authUtil.defaultStoreAdminLogin()
|
val token = testAuthUtil.defaultStoreAdminLogin()
|
||||||
|
|
||||||
val createdSchedule = dummyInitializer.createSchedule(
|
val createdSchedule = dummyInitializer.createSchedule(
|
||||||
adminToken = token,
|
adminToken = token,
|
||||||
@ -161,7 +161,7 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("일정이 없으면 실패한다.") {
|
test("일정이 없으면 실패한다.") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = "/schedules/$INVALID_PK",
|
endpoint = "/schedules/$INVALID_PK",
|
||||||
expectedErrorCode = ScheduleErrorCode.SCHEDULE_NOT_FOUND
|
expectedErrorCode = ScheduleErrorCode.SCHEDULE_NOT_FOUND
|
||||||
@ -184,7 +184,7 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
requestBody = createRequest,
|
requestBody = createRequest,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
@ -197,7 +197,7 @@ class ScheduleApiTest(
|
|||||||
val admin = AdminFixture.create(permissionLevel = it)
|
val admin = AdminFixture.create(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
requestBody = createRequest,
|
requestBody = createRequest,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
@ -208,7 +208,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 생성 및 감사 정보 확인") {
|
test("정상 생성 및 감사 정보 확인") {
|
||||||
val token = authUtil.defaultStoreAdminLogin()
|
val token = testAuthUtil.defaultStoreAdminLogin()
|
||||||
|
|
||||||
val themeId: Long = dummyInitializer.createTheme(
|
val themeId: Long = dummyInitializer.createTheme(
|
||||||
adminToken = token,
|
adminToken = token,
|
||||||
@ -246,7 +246,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("이미 동일한 날짜, 시간, 테마인 일정이 있으면 실패한다.") {
|
test("이미 동일한 날짜, 시간, 테마인 일정이 있으면 실패한다.") {
|
||||||
val token = authUtil.defaultStoreAdminLogin()
|
val token = testAuthUtil.defaultStoreAdminLogin()
|
||||||
val date = LocalDate.now().plusDays(1)
|
val date = LocalDate.now().plusDays(1)
|
||||||
val time = LocalTime.of(10, 0)
|
val time = LocalTime.of(10, 0)
|
||||||
|
|
||||||
@ -267,7 +267,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("입력된 날짜 + 시간이 현재 시간 이전이면 실패한다.") {
|
test("입력된 날짜 + 시간이 현재 시간 이전이면 실패한다.") {
|
||||||
val token = authUtil.defaultStoreAdminLogin()
|
val token = testAuthUtil.defaultStoreAdminLogin()
|
||||||
val body = createRequest.copy(LocalDate.now(), LocalTime.now().minusMinutes(1))
|
val body = createRequest.copy(LocalDate.now(), LocalTime.now().minusMinutes(1))
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
@ -294,7 +294,7 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -304,12 +304,12 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("해당 일정이 ${ScheduleStatus.AVAILABLE} 상태이면 정상 응답") {
|
test("해당 일정이 ${ScheduleStatus.AVAILABLE} 상태이면 정상 응답") {
|
||||||
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
request = createRequest
|
request = createRequest
|
||||||
)
|
)
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
on = {
|
on = {
|
||||||
patch("/schedules/${createdSchedule.id}/hold")
|
patch("/schedules/${createdSchedule.id}/hold")
|
||||||
},
|
},
|
||||||
@ -326,7 +326,7 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("예약이 없으면 실패한다.") {
|
test("예약이 없으면 실패한다.") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
endpoint = "/schedules/$INVALID_PK/hold",
|
endpoint = "/schedules/$INVALID_PK/hold",
|
||||||
expectedErrorCode = ScheduleErrorCode.SCHEDULE_NOT_FOUND
|
expectedErrorCode = ScheduleErrorCode.SCHEDULE_NOT_FOUND
|
||||||
@ -334,7 +334,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("해당 일정이 ${ScheduleStatus.AVAILABLE} 상태가 아니면 실패한다.") {
|
test("해당 일정이 ${ScheduleStatus.AVAILABLE} 상태가 아니면 실패한다.") {
|
||||||
val adminToken = authUtil.defaultStoreAdminLogin()
|
val adminToken = testAuthUtil.defaultStoreAdminLogin()
|
||||||
|
|
||||||
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
||||||
adminToken = adminToken,
|
adminToken = adminToken,
|
||||||
@ -361,7 +361,7 @@ class ScheduleApiTest(
|
|||||||
)
|
)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
endpoint = "/schedules/${createdSchedule.id}/hold",
|
endpoint = "/schedules/${createdSchedule.id}/hold",
|
||||||
expectedErrorCode = ScheduleErrorCode.SCHEDULE_NOT_AVAILABLE
|
expectedErrorCode = ScheduleErrorCode.SCHEDULE_NOT_AVAILABLE
|
||||||
@ -389,7 +389,7 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
requestBody = updateRequest,
|
requestBody = updateRequest,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
@ -402,7 +402,7 @@ class ScheduleApiTest(
|
|||||||
val admin = AdminFixture.create(permissionLevel = it)
|
val admin = AdminFixture.create(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
requestBody = updateRequest,
|
requestBody = updateRequest,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
@ -414,14 +414,14 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("정상 수정 및 감사 정보 변경 확인") {
|
test("정상 수정 및 감사 정보 변경 확인") {
|
||||||
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
||||||
adminToken = authUtil.defaultStoreAdminLogin(),
|
adminToken = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
request = createRequest.copy(
|
request = createRequest.copy(
|
||||||
date = LocalDate.now().plusDays(1),
|
date = LocalDate.now().plusDays(1),
|
||||||
time = LocalTime.now().plusMinutes(1),
|
time = LocalTime.now().plusMinutes(1),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
val otherAdminToken = authUtil.adminLogin(
|
val otherAdminToken = testAuthUtil.adminLogin(
|
||||||
AdminFixture.create(account = "otherAdmin", phone = "01099999999")
|
AdminFixture.create(account = "otherAdmin", phone = "01099999999")
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -449,7 +449,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("입력값이 없으면 수정하지 않는다.") {
|
test("입력값이 없으면 수정하지 않는다.") {
|
||||||
val token = authUtil.defaultStoreAdminLogin()
|
val token = testAuthUtil.defaultStoreAdminLogin()
|
||||||
|
|
||||||
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
||||||
adminToken = token,
|
adminToken = token,
|
||||||
@ -477,7 +477,7 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("일정이 없으면 실패한다.") {
|
test("일정이 없으면 실패한다.") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
requestBody = updateRequest,
|
requestBody = updateRequest,
|
||||||
endpoint = "/schedules/${INVALID_PK}",
|
endpoint = "/schedules/${INVALID_PK}",
|
||||||
@ -486,7 +486,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("입력된 날짜 + 시간이 현재 시간 이전이면 실패한다.") {
|
test("입력된 날짜 + 시간이 현재 시간 이전이면 실패한다.") {
|
||||||
val token = authUtil.defaultStoreAdminLogin()
|
val token = testAuthUtil.defaultStoreAdminLogin()
|
||||||
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
||||||
adminToken = token,
|
adminToken = token,
|
||||||
request =
|
request =
|
||||||
@ -518,7 +518,7 @@ class ScheduleApiTest(
|
|||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.DELETE,
|
method = HttpMethod.DELETE,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -530,7 +530,7 @@ class ScheduleApiTest(
|
|||||||
val admin = AdminFixture.create(permissionLevel = it)
|
val admin = AdminFixture.create(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.DELETE,
|
method = HttpMethod.DELETE,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -540,7 +540,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 삭제") {
|
test("정상 삭제") {
|
||||||
val token = authUtil.defaultStoreAdminLogin()
|
val token = testAuthUtil.defaultStoreAdminLogin()
|
||||||
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
||||||
adminToken = token,
|
adminToken = token,
|
||||||
request = createRequest
|
request = createRequest
|
||||||
@ -560,7 +560,7 @@ class ScheduleApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("예약 중이거나 예약이 완료된 일정이면 실패한다.") {
|
test("예약 중이거나 예약이 완료된 일정이면 실패한다.") {
|
||||||
val token = authUtil.defaultStoreAdminLogin()
|
val token = testAuthUtil.defaultStoreAdminLogin()
|
||||||
|
|
||||||
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
val createdSchedule: ScheduleEntity = dummyInitializer.createSchedule(
|
||||||
adminToken = token,
|
adminToken = token,
|
||||||
|
|||||||
@ -47,11 +47,11 @@ abstract class FunSpecSpringbootTest : FunSpec({
|
|||||||
@LocalServerPort
|
@LocalServerPort
|
||||||
var port: Int = 0
|
var port: Int = 0
|
||||||
|
|
||||||
lateinit var authUtil: AuthUtil
|
lateinit var testAuthUtil: TestAuthUtil
|
||||||
|
|
||||||
override suspend fun beforeSpec(spec: Spec) {
|
override suspend fun beforeSpec(spec: Spec) {
|
||||||
RestAssured.port = port
|
RestAssured.port = port
|
||||||
authUtil = AuthUtil(userRepository, adminRepository, storeRepository)
|
testAuthUtil = TestAuthUtil(userRepository, adminRepository, storeRepository)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
94
src/test/kotlin/roomescape/supports/TestAuthUtil.kt
Normal file
94
src/test/kotlin/roomescape/supports/TestAuthUtil.kt
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
package roomescape.supports
|
||||||
|
|
||||||
|
import io.restassured.module.kotlin.extensions.Extract
|
||||||
|
import io.restassured.module.kotlin.extensions.Given
|
||||||
|
import io.restassured.module.kotlin.extensions.Then
|
||||||
|
import io.restassured.module.kotlin.extensions.When
|
||||||
|
import org.springframework.data.repository.findByIdOrNull
|
||||||
|
import org.springframework.http.HttpStatus
|
||||||
|
import org.springframework.http.MediaType
|
||||||
|
import roomescape.admin.infrastructure.persistence.AdminEntity
|
||||||
|
import roomescape.admin.infrastructure.persistence.AdminRepository
|
||||||
|
import roomescape.auth.web.LoginRequest
|
||||||
|
import roomescape.common.dto.PrincipalType
|
||||||
|
import roomescape.store.infrastructure.persistence.StoreRepository
|
||||||
|
import roomescape.user.infrastructure.persistence.UserEntity
|
||||||
|
import roomescape.user.infrastructure.persistence.UserRepository
|
||||||
|
import roomescape.user.web.UserCreateRequest
|
||||||
|
|
||||||
|
class TestAuthUtil(
|
||||||
|
private val userRepository: UserRepository,
|
||||||
|
private val adminRepository: AdminRepository,
|
||||||
|
private val storeRepository: StoreRepository,
|
||||||
|
) {
|
||||||
|
fun createAdmin(admin: AdminEntity): AdminEntity {
|
||||||
|
val storeId = admin.storeId
|
||||||
|
if (storeId != null && storeRepository.findByIdOrNull(storeId) == null) {
|
||||||
|
storeRepository.save(
|
||||||
|
StoreFixture.create(
|
||||||
|
id = storeId,
|
||||||
|
businessRegNum = randomBusinessRegNum(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return adminRepository.save(admin)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun signup(request: UserCreateRequest): UserEntity {
|
||||||
|
val userId: Long = Given {
|
||||||
|
contentType(MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
body(request)
|
||||||
|
} When {
|
||||||
|
post("/users")
|
||||||
|
} Then {
|
||||||
|
statusCode(HttpStatus.OK.value())
|
||||||
|
} Extract {
|
||||||
|
path("data.id")
|
||||||
|
}
|
||||||
|
|
||||||
|
return userRepository.findByIdOrNull(userId)
|
||||||
|
?: throw AssertionError("Unexpected Exception Occurred.")
|
||||||
|
}
|
||||||
|
|
||||||
|
fun adminLogin(admin: AdminEntity): String {
|
||||||
|
val saved = createAdmin(admin)
|
||||||
|
val requestBody = LoginRequest(saved.account, saved.password, PrincipalType.ADMIN)
|
||||||
|
|
||||||
|
return Given {
|
||||||
|
contentType(MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
body(requestBody)
|
||||||
|
} When {
|
||||||
|
post("/auth/login")
|
||||||
|
} Then {
|
||||||
|
statusCode(200)
|
||||||
|
} Extract {
|
||||||
|
path("data.accessToken")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun defaultStoreAdminLogin(): String = adminLogin(AdminFixture.storeDefault)
|
||||||
|
fun defaultHqAdminLogin(): String = adminLogin(AdminFixture.hqDefault)
|
||||||
|
|
||||||
|
fun userLogin(user: UserEntity): String {
|
||||||
|
if (userRepository.findByEmail(user.email) == null) {
|
||||||
|
userRepository.save(user)
|
||||||
|
}
|
||||||
|
|
||||||
|
return Given {
|
||||||
|
contentType(MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
body(LoginRequest(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 defaultUser(): UserEntity = userRepository.findByEmail(UserFixture.default.email)
|
||||||
|
?: userRepository.save(UserFixture.default)
|
||||||
|
}
|
||||||
@ -19,13 +19,12 @@ import roomescape.theme.business.MIN_PRICE
|
|||||||
import roomescape.theme.exception.ThemeErrorCode
|
import roomescape.theme.exception.ThemeErrorCode
|
||||||
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
import roomescape.theme.infrastructure.persistence.ThemeEntity
|
||||||
import roomescape.theme.infrastructure.persistence.ThemeRepository
|
import roomescape.theme.infrastructure.persistence.ThemeRepository
|
||||||
import roomescape.theme.web.ThemeIdListRequest
|
|
||||||
import roomescape.theme.web.ThemeUpdateRequest
|
import roomescape.theme.web.ThemeUpdateRequest
|
||||||
import roomescape.supports.*
|
import roomescape.supports.*
|
||||||
import roomescape.supports.ThemeFixture.createRequest
|
import roomescape.supports.ThemeFixture.createRequest
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
class ThemeApiTest(
|
class HQAdminThemeApiTest(
|
||||||
private val themeRepository: ThemeRepository
|
private val themeRepository: ThemeRepository
|
||||||
) : FunSpecSpringbootTest() {
|
) : FunSpecSpringbootTest() {
|
||||||
|
|
||||||
@ -45,7 +44,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
requestBody = createRequest,
|
requestBody = createRequest,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
@ -58,7 +57,7 @@ class ThemeApiTest(
|
|||||||
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
requestBody = createRequest,
|
requestBody = createRequest,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
@ -71,7 +70,7 @@ class ThemeApiTest(
|
|||||||
val admin = AdminFixture.createHqAdmin(permissionLevel = it)
|
val admin = AdminFixture.createHqAdmin(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
requestBody = createRequest,
|
requestBody = createRequest,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
@ -84,7 +83,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
|
|
||||||
test("정상 생성 및 감사 정보 확인") {
|
test("정상 생성 및 감사 정보 확인") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
@ -112,7 +111,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("이미 동일한 이름의 테마가 있으면 실패한다.") {
|
test("이미 동일한 이름의 테마가 있으면 실패한다.") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
val commonName = "test123"
|
val commonName = "test123"
|
||||||
dummyInitializer.createTheme(
|
dummyInitializer.createTheme(
|
||||||
adminToken = token,
|
adminToken = token,
|
||||||
@ -135,7 +134,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("금액이 ${MIN_PRICE}원 미만이면 실패한다.") {
|
test("금액이 ${MIN_PRICE}원 미만이면 실패한다.") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
using = {
|
using = {
|
||||||
@ -158,7 +157,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("field: availableMinutes") {
|
test("field: availableMinutes") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
using = {
|
using = {
|
||||||
@ -172,7 +171,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("field: expectedMinutesFrom") {
|
test("field: expectedMinutesFrom") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
using = {
|
using = {
|
||||||
@ -186,7 +185,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("field: expectedMinutesTo") {
|
test("field: expectedMinutesTo") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
using = {
|
using = {
|
||||||
@ -202,7 +201,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
context("시간 범위가 잘못 지정되면 실패한다.") {
|
context("시간 범위가 잘못 지정되면 실패한다.") {
|
||||||
test("최소 예상 시간 > 최대 예상 시간") {
|
test("최소 예상 시간 > 최대 예상 시간") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
using = {
|
using = {
|
||||||
@ -219,7 +218,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("최대 예상 시간 > 이용 가능 시간") {
|
test("최대 예상 시간 > 이용 가능 시간") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
using = {
|
using = {
|
||||||
@ -249,7 +248,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("field: minParticipants") {
|
test("field: minParticipants") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
using = {
|
using = {
|
||||||
@ -263,7 +262,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("field: maxParticipants") {
|
test("field: maxParticipants") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
using = {
|
using = {
|
||||||
@ -279,7 +278,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
context("인원 범위가 잘못 지정되면 실패한다.") {
|
context("인원 범위가 잘못 지정되면 실패한다.") {
|
||||||
test("최소 인원 > 최대 인원") {
|
test("최소 인원 > 최대 인원") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
using = {
|
using = {
|
||||||
@ -297,59 +296,6 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
context("입력된 모든 ID에 대한 테마를 조회한다.") {
|
|
||||||
test("정상 응답") {
|
|
||||||
val adminToken = authUtil.defaultHqAdminLogin()
|
|
||||||
val themeSize = 3
|
|
||||||
val themeIds = mutableListOf<Long>()
|
|
||||||
|
|
||||||
for (i in 1..themeSize) {
|
|
||||||
dummyInitializer.createTheme(adminToken, createRequest.copy(name = "test$i"))
|
|
||||||
.also { themeIds.add(it.id) }
|
|
||||||
}
|
|
||||||
|
|
||||||
runTest(
|
|
||||||
token = authUtil.defaultUserLogin(),
|
|
||||||
using = {
|
|
||||||
body(ThemeIdListRequest(themeIds))
|
|
||||||
},
|
|
||||||
on = {
|
|
||||||
post("/themes/batch")
|
|
||||||
},
|
|
||||||
expect = {
|
|
||||||
statusCode(HttpStatus.OK.value())
|
|
||||||
body("data.themes.size()", equalTo(themeSize))
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
test("없는 테마가 있으면 생략한다.") {
|
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
|
||||||
val themeSize = 3
|
|
||||||
val themeIds = mutableListOf<Long>()
|
|
||||||
|
|
||||||
for (i in 1..themeSize) {
|
|
||||||
dummyInitializer.createTheme(token, createRequest.copy(name = "test$i"))
|
|
||||||
.also { themeIds.add(it.id) }
|
|
||||||
}
|
|
||||||
|
|
||||||
themeIds.add(INVALID_PK)
|
|
||||||
runTest(
|
|
||||||
token = authUtil.defaultUserLogin(),
|
|
||||||
using = {
|
|
||||||
body(ThemeIdListRequest(themeIds))
|
|
||||||
},
|
|
||||||
on = {
|
|
||||||
post("/themes/batch")
|
|
||||||
},
|
|
||||||
expect = {
|
|
||||||
statusCode(HttpStatus.OK.value())
|
|
||||||
body("data.themes.size()", equalTo(themeSize))
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
context("관리자가 모든 테마를 조회한다.") {
|
context("관리자가 모든 테마를 조회한다.") {
|
||||||
val endpoint = "/admin/themes"
|
val endpoint = "/admin/themes"
|
||||||
val requests = listOf(
|
val requests = listOf(
|
||||||
@ -368,7 +314,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -380,7 +326,7 @@ class ThemeApiTest(
|
|||||||
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.POST,
|
method = HttpMethod.POST,
|
||||||
requestBody = createRequest,
|
requestBody = createRequest,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
@ -392,7 +338,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
|
|
||||||
test("비공개 테마까지 포함하여 간단한 정보만 조회된다.") {
|
test("비공개 테마까지 포함하여 간단한 정보만 조회된다.") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
requests.forEach { dummyInitializer.createTheme(token, it) }
|
requests.forEach { dummyInitializer.createTheme(token, it) }
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
@ -411,40 +357,6 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
context("ID로 테마 정보를 조회한다.") {
|
|
||||||
test("성공 응답") {
|
|
||||||
val createdTheme: ThemeEntity = dummyInitializer.createTheme(
|
|
||||||
adminToken = authUtil.defaultHqAdminLogin(),
|
|
||||||
request = createRequest
|
|
||||||
)
|
|
||||||
|
|
||||||
runTest(
|
|
||||||
on = {
|
|
||||||
get("/themes/${createdTheme.id}")
|
|
||||||
},
|
|
||||||
expect = {
|
|
||||||
body("data.id", equalTo(createdTheme.id))
|
|
||||||
body("data.name", equalTo(createdTheme.name))
|
|
||||||
assertProperties(
|
|
||||||
props = setOf(
|
|
||||||
"id", "name", "thumbnailUrl", "description", "difficulty", "price",
|
|
||||||
"minParticipants", "maxParticipants",
|
|
||||||
"availableMinutes", "expectedMinutesFrom", "expectedMinutesTo"
|
|
||||||
),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
test("테마가 없으면 실패한다.") {
|
|
||||||
runExceptionTest(
|
|
||||||
method = HttpMethod.GET,
|
|
||||||
endpoint = "/themes/$INVALID_PK",
|
|
||||||
expectedErrorCode = ThemeErrorCode.THEME_NOT_FOUND
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
context("관리자 페이지에서 특정 테마의 상세 정보를 조회한다.") {
|
context("관리자 페이지에서 특정 테마의 상세 정보를 조회한다.") {
|
||||||
context("권한이 없으면 접근할 수 없다.") {
|
context("권한이 없으면 접근할 수 없다.") {
|
||||||
val endpoint = "/admin/themes/$INVALID_PK"
|
val endpoint = "/admin/themes/$INVALID_PK"
|
||||||
@ -459,7 +371,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -471,7 +383,7 @@ class ThemeApiTest(
|
|||||||
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -483,7 +395,7 @@ class ThemeApiTest(
|
|||||||
val admin = AdminFixture.createHqAdmin(permissionLevel = it)
|
val admin = AdminFixture.createHqAdmin(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -494,7 +406,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 응답") {
|
test("정상 응답") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
val createdTheme = dummyInitializer.createTheme(
|
val createdTheme = dummyInitializer.createTheme(
|
||||||
adminToken = token,
|
adminToken = token,
|
||||||
request = createRequest
|
request = createRequest
|
||||||
@ -522,7 +434,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("테마가 없으면 실패한다.") {
|
test("테마가 없으면 실패한다.") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultHqAdminLogin(),
|
token = testAuthUtil.defaultHqAdminLogin(),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = "/admin/themes/$INVALID_PK",
|
endpoint = "/admin/themes/$INVALID_PK",
|
||||||
expectedErrorCode = ThemeErrorCode.THEME_NOT_FOUND
|
expectedErrorCode = ThemeErrorCode.THEME_NOT_FOUND
|
||||||
@ -531,7 +443,6 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
context("테마를 삭제한다.") {
|
context("테마를 삭제한다.") {
|
||||||
|
|
||||||
context("권한이 없으면 접근할 수 없다.") {
|
context("권한이 없으면 접근할 수 없다.") {
|
||||||
val endpoint = "/admin/themes/${INVALID_PK}"
|
val endpoint = "/admin/themes/${INVALID_PK}"
|
||||||
|
|
||||||
@ -545,7 +456,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.DELETE,
|
method = HttpMethod.DELETE,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -557,7 +468,7 @@ class ThemeApiTest(
|
|||||||
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.DELETE,
|
method = HttpMethod.DELETE,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -569,7 +480,7 @@ class ThemeApiTest(
|
|||||||
val admin = AdminFixture.createHqAdmin(permissionLevel = it)
|
val admin = AdminFixture.createHqAdmin(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.DELETE,
|
method = HttpMethod.DELETE,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -580,7 +491,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 삭제") {
|
test("정상 삭제") {
|
||||||
val token = authUtil.defaultHqAdminLogin()
|
val token = testAuthUtil.defaultHqAdminLogin()
|
||||||
val createdTheme = dummyInitializer.createTheme(
|
val createdTheme = dummyInitializer.createTheme(
|
||||||
adminToken = token,
|
adminToken = token,
|
||||||
request = createRequest
|
request = createRequest
|
||||||
@ -601,7 +512,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("테마가 없으면 실패한다.") {
|
test("테마가 없으면 실패한다.") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultHqAdminLogin(),
|
token = testAuthUtil.defaultHqAdminLogin(),
|
||||||
method = HttpMethod.DELETE,
|
method = HttpMethod.DELETE,
|
||||||
endpoint = "/admin/themes/$INVALID_PK",
|
endpoint = "/admin/themes/$INVALID_PK",
|
||||||
expectedErrorCode = ThemeErrorCode.THEME_NOT_FOUND
|
expectedErrorCode = ThemeErrorCode.THEME_NOT_FOUND
|
||||||
@ -625,7 +536,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("회원") {
|
test("회원") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultUserLogin(),
|
token = testAuthUtil.defaultUserLogin(),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
requestBody = request,
|
requestBody = request,
|
||||||
@ -638,7 +549,7 @@ class ThemeApiTest(
|
|||||||
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
val admin = AdminFixture.createStoreAdmin(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
requestBody = request,
|
requestBody = request,
|
||||||
@ -651,7 +562,7 @@ class ThemeApiTest(
|
|||||||
val admin = AdminFixture.createHqAdmin(permissionLevel = it)
|
val admin = AdminFixture.createHqAdmin(permissionLevel = it)
|
||||||
|
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.adminLogin(admin),
|
token = testAuthUtil.adminLogin(admin),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
requestBody = request,
|
requestBody = request,
|
||||||
@ -666,10 +577,10 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("정상 수정 및 감사 정보 변경 확인") {
|
test("정상 수정 및 감사 정보 변경 확인") {
|
||||||
val createdTheme: ThemeEntity = dummyInitializer.createTheme(
|
val createdTheme: ThemeEntity = dummyInitializer.createTheme(
|
||||||
adminToken = authUtil.defaultHqAdminLogin(),
|
adminToken = testAuthUtil.defaultHqAdminLogin(),
|
||||||
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
||||||
)
|
)
|
||||||
val otherAdminToken: String = authUtil.adminLogin(
|
val otherAdminToken: String = testAuthUtil.adminLogin(
|
||||||
AdminFixture.createHqAdmin(permissionLevel = AdminPermissionLevel.WRITABLE)
|
AdminFixture.createHqAdmin(permissionLevel = AdminPermissionLevel.WRITABLE)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -696,12 +607,12 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("입력값이 없으면 수정하지 않는다.") {
|
test("입력값이 없으면 수정하지 않는다.") {
|
||||||
val createdTheme: ThemeEntity = dummyInitializer.createTheme(
|
val createdTheme: ThemeEntity = dummyInitializer.createTheme(
|
||||||
adminToken = authUtil.defaultHqAdminLogin(),
|
adminToken = testAuthUtil.defaultHqAdminLogin(),
|
||||||
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
||||||
)
|
)
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = authUtil.defaultHqAdminLogin(),
|
token = testAuthUtil.defaultHqAdminLogin(),
|
||||||
using = {
|
using = {
|
||||||
body(ThemeUpdateRequest())
|
body(ThemeUpdateRequest())
|
||||||
},
|
},
|
||||||
@ -721,7 +632,7 @@ class ThemeApiTest(
|
|||||||
|
|
||||||
test("테마가 없으면 실패한다.") {
|
test("테마가 없으면 실패한다.") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultHqAdminLogin(),
|
token = testAuthUtil.defaultHqAdminLogin(),
|
||||||
method = HttpMethod.PATCH,
|
method = HttpMethod.PATCH,
|
||||||
endpoint = "/admin/themes/$INVALID_PK",
|
endpoint = "/admin/themes/$INVALID_PK",
|
||||||
requestBody = updateRequest,
|
requestBody = updateRequest,
|
||||||
@ -730,7 +641,7 @@ class ThemeApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("금액이 ${MIN_PRICE}원 미만이면 실패한다.") {
|
test("금액이 ${MIN_PRICE}원 미만이면 실패한다.") {
|
||||||
val adminToken = authUtil.defaultHqAdminLogin()
|
val adminToken = testAuthUtil.defaultHqAdminLogin()
|
||||||
val createdTheme: ThemeEntity = dummyInitializer.createTheme(
|
val createdTheme: ThemeEntity = dummyInitializer.createTheme(
|
||||||
adminToken = adminToken,
|
adminToken = adminToken,
|
||||||
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
||||||
@ -750,7 +661,7 @@ class ThemeApiTest(
|
|||||||
lateinit var createdTheme: ThemeEntity
|
lateinit var createdTheme: ThemeEntity
|
||||||
|
|
||||||
beforeTest {
|
beforeTest {
|
||||||
adminToken = authUtil.defaultHqAdminLogin()
|
adminToken = testAuthUtil.defaultHqAdminLogin()
|
||||||
createdTheme = dummyInitializer.createTheme(
|
createdTheme = dummyInitializer.createTheme(
|
||||||
adminToken = adminToken,
|
adminToken = adminToken,
|
||||||
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
||||||
@ -793,7 +704,7 @@ class ThemeApiTest(
|
|||||||
lateinit var createdTheme: ThemeEntity
|
lateinit var createdTheme: ThemeEntity
|
||||||
|
|
||||||
beforeTest {
|
beforeTest {
|
||||||
adminToken = authUtil.defaultHqAdminLogin()
|
adminToken = testAuthUtil.defaultHqAdminLogin()
|
||||||
createdTheme = dummyInitializer.createTheme(
|
createdTheme = dummyInitializer.createTheme(
|
||||||
adminToken = adminToken,
|
adminToken = adminToken,
|
||||||
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
||||||
@ -834,7 +745,7 @@ class ThemeApiTest(
|
|||||||
lateinit var createdTheme: ThemeEntity
|
lateinit var createdTheme: ThemeEntity
|
||||||
|
|
||||||
beforeTest {
|
beforeTest {
|
||||||
adminToken = authUtil.defaultHqAdminLogin()
|
adminToken = testAuthUtil.defaultHqAdminLogin()
|
||||||
createdTheme = dummyInitializer.createTheme(
|
createdTheme = dummyInitializer.createTheme(
|
||||||
adminToken = adminToken,
|
adminToken = adminToken,
|
||||||
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
||||||
@ -867,7 +778,7 @@ class ThemeApiTest(
|
|||||||
lateinit var createdTheme: ThemeEntity
|
lateinit var createdTheme: ThemeEntity
|
||||||
|
|
||||||
beforeTest {
|
beforeTest {
|
||||||
adminToken = authUtil.defaultHqAdminLogin()
|
adminToken = testAuthUtil.defaultHqAdminLogin()
|
||||||
createdTheme = dummyInitializer.createTheme(
|
createdTheme = dummyInitializer.createTheme(
|
||||||
adminToken = adminToken,
|
adminToken = adminToken,
|
||||||
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
request = createRequest.copy(name = "theme-${Random.nextInt()}")
|
||||||
@ -145,7 +145,7 @@ class UserApiTest(
|
|||||||
|
|
||||||
test("관리자") {
|
test("관리자") {
|
||||||
runExceptionTest(
|
runExceptionTest(
|
||||||
token = authUtil.defaultStoreAdminLogin(),
|
token = testAuthUtil.defaultStoreAdminLogin(),
|
||||||
method = HttpMethod.GET,
|
method = HttpMethod.GET,
|
||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
expectedErrorCode = AuthErrorCode.ACCESS_DENIED
|
||||||
@ -154,8 +154,8 @@ class UserApiTest(
|
|||||||
}
|
}
|
||||||
|
|
||||||
test("정상 응답") {
|
test("정상 응답") {
|
||||||
val user = authUtil.defaultUser()
|
val user = testAuthUtil.defaultUser()
|
||||||
val token = authUtil.userLogin(user)
|
val token = testAuthUtil.userLogin(user)
|
||||||
|
|
||||||
runTest(
|
runTest(
|
||||||
token = token,
|
token = token,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user