[#34] 회원 / 인증 도메인 재정의 #43

Merged
pricelees merged 73 commits from refactor/#34 into main 2025-09-13 10:13:45 +00:00
6 changed files with 80 additions and 80 deletions
Showing only changes of commit 59907bd643 - Show all commits

View File

@ -145,8 +145,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 = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
reserverToken = loginUtil.loginAsUser() reserverToken = authUtil.loginAsUser()
) )
val request = PaymentFixture.confirmRequest val request = PaymentFixture.confirmRequest
@ -163,7 +163,7 @@ class PaymentAPITest(
) )
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body(PaymentFixture.confirmRequest) body(PaymentFixture.confirmRequest)
}, },
@ -182,7 +182,7 @@ class PaymentAPITest(
context("결제를 취소한다.") { context("결제를 취소한다.") {
test("정상 취소") { test("정상 취소") {
val token = loginUtil.loginAsAdmin() val token = authUtil.loginAsAdmin()
val confirmRequest = PaymentFixture.confirmRequest val confirmRequest = PaymentFixture.confirmRequest
val reservation = dummyInitializer.createConfirmReservation( val reservation = dummyInitializer.createConfirmReservation(
adminToken = token, adminToken = token,
@ -230,7 +230,7 @@ class PaymentAPITest(
} }
test("예약에 대한 결제 정보가 없으면 실패한다.") { test("예약에 대한 결제 정보가 없으면 실패한다.") {
val token = loginUtil.loginAsAdmin() val token = authUtil.loginAsAdmin()
val reservation = dummyInitializer.createConfirmReservation( val reservation = dummyInitializer.createConfirmReservation(
adminToken = token, adminToken = token,
reserverToken = token, reserverToken = token,
@ -282,8 +282,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 = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
reserverToken = loginUtil.loginAsUser(), reserverToken = authUtil.loginAsUser(),
) )
val method = if (easyPayDetail != null) { val method = if (easyPayDetail != null) {
@ -305,7 +305,7 @@ class PaymentAPITest(
} returns clientResponse } returns clientResponse
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body(request) body(request)
}, },

View File

@ -38,13 +38,13 @@ class ReservationApiTest(
test("정상 생성") { test("정상 생성") {
val schedule: ScheduleEntity = dummyInitializer.createSchedule( val schedule: ScheduleEntity = dummyInitializer.createSchedule(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
request = ScheduleFixture.createRequest, request = ScheduleFixture.createRequest,
status = ScheduleStatus.HOLD status = ScheduleStatus.HOLD
) )
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body(commonRequest.copy(scheduleId = schedule.id)) body(commonRequest.copy(scheduleId = schedule.id))
}, },
@ -67,13 +67,13 @@ class ReservationApiTest(
test("예약을 생성할 때 해당 일정이 ${ScheduleStatus.HOLD} 상태가 아니면 실패한다.") { test("예약을 생성할 때 해당 일정이 ${ScheduleStatus.HOLD} 상태가 아니면 실패한다.") {
val schedule: ScheduleEntity = dummyInitializer.createSchedule( val schedule: ScheduleEntity = dummyInitializer.createSchedule(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
request = ScheduleFixture.createRequest, request = ScheduleFixture.createRequest,
status = ScheduleStatus.AVAILABLE status = ScheduleStatus.AVAILABLE
) )
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body(commonRequest.copy(scheduleId = schedule.id)) body(commonRequest.copy(scheduleId = schedule.id))
}, },
@ -88,7 +88,7 @@ class ReservationApiTest(
} }
test("예약 인원이 테마의 최소 인원보다 작거나 최대 인원보다 많으면 실패한다.") { test("예약 인원이 테마의 최소 인원보다 작거나 최대 인원보다 많으면 실패한다.") {
val adminToken = loginUtil.loginAsAdmin() val adminToken = authUtil.loginAsAdmin()
val theme: ThemeEntity = dummyInitializer.createTheme( val theme: ThemeEntity = dummyInitializer.createTheme(
adminToken = adminToken, adminToken = adminToken,
request = ThemeFixture.createRequest request = ThemeFixture.createRequest
@ -101,7 +101,7 @@ class ReservationApiTest(
) )
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body( body(
commonRequest.copy( commonRequest.copy(
@ -120,7 +120,7 @@ class ReservationApiTest(
) )
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body( body(
commonRequest.copy( commonRequest.copy(
@ -142,7 +142,7 @@ class ReservationApiTest(
context("필수 입력값이 입력되지 않으면 실패한다.") { context("필수 입력값이 입력되지 않으면 실패한다.") {
test("예약자명") { test("예약자명") {
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body(commonRequest.copy(reserverName = "")) body(commonRequest.copy(reserverName = ""))
}, },
@ -158,7 +158,7 @@ class ReservationApiTest(
test("예약자 연락처") { test("예약자 연락처") {
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body(commonRequest.copy(reserverContact = "")) body(commonRequest.copy(reserverContact = ""))
}, },
@ -176,10 +176,10 @@ class ReservationApiTest(
context("예약을 확정한다.") { context("예약을 확정한다.") {
test("정상 응답") { test("정상 응답") {
val userToken = loginUtil.loginAsUser() val userToken = authUtil.loginAsUser()
val reservation: ReservationEntity = dummyInitializer.createPendingReservation( val reservation: ReservationEntity = dummyInitializer.createPendingReservation(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
reserverToken = userToken, reserverToken = userToken,
) )
@ -205,7 +205,7 @@ class ReservationApiTest(
test("예약이 없으면 실패한다.") { test("예약이 없으면 실패한다.") {
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
post("/reservations/$INVALID_PK/confirm") post("/reservations/$INVALID_PK/confirm")
}, },
@ -219,10 +219,10 @@ class ReservationApiTest(
context("예약을 취소한다.") { context("예약을 취소한다.") {
test("정상 응답") { test("정상 응답") {
val userToken = loginUtil.loginAsUser() val userToken = authUtil.loginAsUser()
val reservation: ReservationEntity = dummyInitializer.createConfirmReservation( val reservation: ReservationEntity = dummyInitializer.createConfirmReservation(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
reserverToken = userToken, reserverToken = userToken,
) )
@ -251,7 +251,7 @@ class ReservationApiTest(
test("예약이 없으면 실패한다.") { test("예약이 없으면 실패한다.") {
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body(ReservationCancelRequest(cancelReason = "test")) body(ReservationCancelRequest(cancelReason = "test"))
}, },
@ -267,11 +267,11 @@ class ReservationApiTest(
test("관리자가 아닌 회원은 다른 회원의 예약을 취소할 수 없다.") { test("관리자가 아닌 회원은 다른 회원의 예약을 취소할 수 없다.") {
val reservation: ReservationEntity = dummyInitializer.createConfirmReservation( val reservation: ReservationEntity = dummyInitializer.createConfirmReservation(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
reserverToken = loginUtil.loginAsUser(), reserverToken = authUtil.loginAsUser(),
) )
val otherUserToken = loginUtil.login("other@example.com", "other", role = Role.MEMBER) val otherUserToken = authUtil.login("other@example.com", "other", role = Role.MEMBER)
runTest( runTest(
token = otherUserToken, token = otherUserToken,
@ -290,11 +290,11 @@ class ReservationApiTest(
test("관리자는 다른 회원의 예약을 취소할 수 있다.") { test("관리자는 다른 회원의 예약을 취소할 수 있다.") {
val reservation: ReservationEntity = dummyInitializer.createConfirmReservation( val reservation: ReservationEntity = dummyInitializer.createConfirmReservation(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
reserverToken = loginUtil.loginAsAdmin(), reserverToken = authUtil.loginAsAdmin(),
) )
val otherAdminToken = loginUtil.login("admin1@example.com", "admin1", role = Role.ADMIN) val otherAdminToken = authUtil.login("admin1@example.com", "admin1", role = Role.ADMIN)
runTest( runTest(
token = otherAdminToken, token = otherAdminToken,
@ -322,8 +322,8 @@ class ReservationApiTest(
context("나의 예약 목록을 조회한다.") { context("나의 예약 목록을 조회한다.") {
test("정상 응답") { test("정상 응답") {
val userToken = loginUtil.loginAsUser() val userToken = authUtil.loginAsUser()
val adminToken = loginUtil.loginAsAdmin() val adminToken = authUtil.loginAsAdmin()
for (i in 1..3) { for (i in 1..3) {
dummyInitializer.createConfirmReservation( dummyInitializer.createConfirmReservation(
@ -362,8 +362,8 @@ class ReservationApiTest(
beforeTest { beforeTest {
reservation = dummyInitializer.createConfirmReservation( reservation = dummyInitializer.createConfirmReservation(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
reserverToken = loginUtil.loginAsUser(), reserverToken = authUtil.loginAsUser(),
) )
} }
@ -428,7 +428,7 @@ class ReservationApiTest(
) )
val cancelReason = "테스트입니다." val cancelReason = "테스트입니다."
val memberId = loginUtil.getUser().id!! val memberId = authUtil.getUser().id!!
dummyInitializer.cancelPayment( dummyInitializer.cancelPayment(
memberId = memberId, memberId = memberId,
@ -495,7 +495,7 @@ class ReservationApiTest(
test("예약이 없으면 실패한다.") { test("예약이 없으면 실패한다.") {
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
get("/reservations/$INVALID_PK/detail") get("/reservations/$INVALID_PK/detail")
}, },
@ -508,12 +508,12 @@ class ReservationApiTest(
test("예약은 있지만, 결제 정보가 없으면 실패한다.") { test("예약은 있지만, 결제 정보가 없으면 실패한다.") {
val reservation = dummyInitializer.createConfirmReservation( val reservation = dummyInitializer.createConfirmReservation(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
reserverToken = loginUtil.loginAsUser(), reserverToken = authUtil.loginAsUser(),
) )
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
get("/reservations/${reservation.id}/detail") get("/reservations/${reservation.id}/detail")
}, },
@ -526,8 +526,8 @@ class ReservationApiTest(
test("예약과 결제는 있지만, 결제 세부 내역이 없으면 실패한다.") { test("예약과 결제는 있지만, 결제 세부 내역이 없으면 실패한다.") {
val reservation = dummyInitializer.createConfirmReservation( val reservation = dummyInitializer.createConfirmReservation(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
reserverToken = loginUtil.loginAsUser(), reserverToken = authUtil.loginAsUser(),
) )
dummyInitializer.createPayment( dummyInitializer.createPayment(
@ -538,7 +538,7 @@ class ReservationApiTest(
} }
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
get("/reservations/${reservation.id}/detail") get("/reservations/${reservation.id}/detail")
}, },
@ -555,7 +555,7 @@ class ReservationApiTest(
reservation: ReservationEntity reservation: ReservationEntity
): LinkedHashMap<String, Any> { ): LinkedHashMap<String, Any> {
return runTest( return runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
get("/reservations/${reservation.id}/detail") get("/reservations/${reservation.id}/detail")
}, },

View File

@ -35,7 +35,7 @@ class ScheduleApiTest(
lateinit var token: String lateinit var token: String
beforeTest { beforeTest {
token = loginUtil.loginAsUser() token = authUtil.loginAsUser()
} }
val commonAssertion: ValidatableResponse.() -> Unit = { val commonAssertion: ValidatableResponse.() -> Unit = {
@ -107,7 +107,7 @@ class ScheduleApiTest(
lateinit var token: String lateinit var token: String
beforeTest { beforeTest {
token = loginUtil.loginAsUser() token = authUtil.loginAsUser()
} }
test("예약 가능 테마 조회: GET /schedules/themes?date={date}") { test("예약 가능 테마 조회: GET /schedules/themes?date={date}") {
@ -184,7 +184,7 @@ class ScheduleApiTest(
} }
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
get("/schedules/themes?date=$date") get("/schedules/themes?date=$date")
}, },
@ -216,7 +216,7 @@ class ScheduleApiTest(
} }
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
get("/schedules?date=$date&themeId=${createdSchedule.themeId}") get("/schedules?date=$date&themeId=${createdSchedule.themeId}")
}, },
@ -237,7 +237,7 @@ class ScheduleApiTest(
val createdSchedule = createDummySchedule(createRequest) val createdSchedule = createDummySchedule(createRequest)
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
on = { on = {
get("/schedules/${createdSchedule.id}") get("/schedules/${createdSchedule.id}")
}, },
@ -261,7 +261,7 @@ class ScheduleApiTest(
test("일정이 없으면 실패한다.") { test("일정이 없으면 실패한다.") {
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
on = { on = {
get("/schedules/$INVALID_PK") get("/schedules/$INVALID_PK")
}, },
@ -280,7 +280,7 @@ class ScheduleApiTest(
lateinit var token: String lateinit var token: String
beforeTest { beforeTest {
token = loginUtil.loginAsAdmin() token = authUtil.loginAsAdmin()
} }
test("정상 생성 및 감사 정보 확인") { test("정상 생성 및 감사 정보 확인") {
@ -383,7 +383,7 @@ class ScheduleApiTest(
val createdSchedule: ScheduleEntity = createDummySchedule(createRequest) val createdSchedule: ScheduleEntity = createDummySchedule(createRequest)
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
patch("/schedules/${createdSchedule.id}/hold") patch("/schedules/${createdSchedule.id}/hold")
}, },
@ -400,7 +400,7 @@ class ScheduleApiTest(
test("예약이 없으면 실패한다.") { test("예약이 없으면 실패한다.") {
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
patch("/schedules/$INVALID_PK/hold") patch("/schedules/$INVALID_PK/hold")
}, },
@ -419,7 +419,7 @@ class ScheduleApiTest(
* 생성 API에서는 일정 생성 AVAILABLE을 기본 상태로 지정하기 때문. * 생성 API에서는 일정 생성 AVAILABLE을 기본 상태로 지정하기 때문.
*/ */
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
using = { using = {
body( body(
ScheduleUpdateRequest( ScheduleUpdateRequest(
@ -436,7 +436,7 @@ class ScheduleApiTest(
) )
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
patch("/schedules/${createdSchedule.id}/hold") patch("/schedules/${createdSchedule.id}/hold")
}, },
@ -461,7 +461,7 @@ class ScheduleApiTest(
time = LocalTime.now().plusMinutes(1), time = LocalTime.now().plusMinutes(1),
) )
) )
val otherAdminToken = loginUtil.login("admin1@admin.com", "admin1", Role.ADMIN) val otherAdminToken = authUtil.login("admin1@admin.com", "admin1", Role.ADMIN)
runTest( runTest(
token = otherAdminToken, token = otherAdminToken,
@ -490,7 +490,7 @@ class ScheduleApiTest(
val createdSchedule: ScheduleEntity = createDummySchedule(createRequest) val createdSchedule: ScheduleEntity = createDummySchedule(createRequest)
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
using = { using = {
body(ScheduleUpdateRequest()) body(ScheduleUpdateRequest())
}, },
@ -510,7 +510,7 @@ class ScheduleApiTest(
test("일정이 없으면 실패한다.") { test("일정이 없으면 실패한다.") {
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
using = { using = {
body(updateRequest) body(updateRequest)
}, },
@ -530,7 +530,7 @@ class ScheduleApiTest(
) )
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
using = { using = {
body( body(
updateRequest.copy( updateRequest.copy(
@ -554,7 +554,7 @@ class ScheduleApiTest(
val createdSchedule: ScheduleEntity = createDummySchedule(createRequest) val createdSchedule: ScheduleEntity = createDummySchedule(createRequest)
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
on = { on = {
delete("/schedules/${createdSchedule.id}") delete("/schedules/${createdSchedule.id}")
}, },
@ -574,7 +574,7 @@ class ScheduleApiTest(
* 생성 API에서는 일정 생성 AVAILABLE을 기본 상태로 지정하기 때문. * 생성 API에서는 일정 생성 AVAILABLE을 기본 상태로 지정하기 때문.
*/ */
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
using = { using = {
body( body(
ScheduleUpdateRequest( ScheduleUpdateRequest(
@ -594,7 +594,7 @@ class ScheduleApiTest(
* 삭제 테스트 * 삭제 테스트
*/ */
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
on = { on = {
delete("/schedules/${createdSchedule.id}") delete("/schedules/${createdSchedule.id}")
}, },
@ -608,7 +608,7 @@ class ScheduleApiTest(
} }
fun createDummySchedule(request: ScheduleCreateRequest): ScheduleEntity { fun createDummySchedule(request: ScheduleCreateRequest): ScheduleEntity {
val token = loginUtil.loginAsAdmin() val token = authUtil.loginAsAdmin()
val themeId: Long = if (request.themeId > 1L) { val themeId: Long = if (request.themeId > 1L) {
request.themeId request.themeId

View File

@ -35,7 +35,7 @@ class ThemeApiTest(
lateinit var token: String lateinit var token: String
beforeTest { beforeTest {
token = loginUtil.loginAsUser() token = authUtil.loginAsUser()
} }
val commonAssertion: ValidatableResponse.() -> Unit = { val commonAssertion: ValidatableResponse.() -> Unit = {
@ -102,10 +102,10 @@ class ThemeApiTest(
context("일반 회원도 접근할 수 있다.") { context("일반 회원도 접근할 수 있다.") {
test("테마 조회: GET /v2/themes") { test("테마 조회: GET /v2/themes") {
val token = loginUtil.loginAsUser() val token = authUtil.loginAsUser()
dummyInitializer.createTheme( dummyInitializer.createTheme(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
request = createRequest.copy(name = "test123", isOpen = true) request = createRequest.copy(name = "test123", isOpen = true)
) )
@ -129,7 +129,7 @@ class ThemeApiTest(
lateinit var token: String lateinit var token: String
beforeTest { beforeTest {
token = loginUtil.loginAsAdmin() token = authUtil.loginAsAdmin()
} }
test("정상 생성 및 감사 정보 확인") { test("정상 생성 및 감사 정보 확인") {
@ -340,7 +340,7 @@ class ThemeApiTest(
beforeTest { beforeTest {
for (i in 1..3) { for (i in 1..3) {
dummyInitializer.createTheme( dummyInitializer.createTheme(
adminToken = loginUtil.loginAsAdmin(), adminToken = authUtil.loginAsAdmin(),
request = createRequest.copy(name = "test$i") request = createRequest.copy(name = "test$i")
).also { ).also {
themeIds.add(it.id) themeIds.add(it.id)
@ -354,7 +354,7 @@ class ThemeApiTest(
test("정상 응답") { test("정상 응답") {
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body(ThemeListRetrieveRequest(themeIds)) body(ThemeListRetrieveRequest(themeIds))
}, },
@ -372,7 +372,7 @@ class ThemeApiTest(
themeIds.add(INVALID_PK) themeIds.add(INVALID_PK)
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
using = { using = {
body(ThemeListRetrieveRequest(themeIds)) body(ThemeListRetrieveRequest(themeIds))
}, },
@ -391,7 +391,7 @@ class ThemeApiTest(
lateinit var token: String lateinit var token: String
beforeTest { beforeTest {
token = loginUtil.loginAsAdmin() token = authUtil.loginAsAdmin()
dummyInitializer.createTheme( dummyInitializer.createTheme(
adminToken = token, adminToken = token,
request = createRequest.copy(name = "open", isOpen = true) request = createRequest.copy(name = "open", isOpen = true)
@ -420,7 +420,7 @@ class ThemeApiTest(
test("예약 페이지에서는 공개된 테마의 전체 정보가 조회된다.") { test("예약 페이지에서는 공개된 테마의 전체 정보가 조회된다.") {
runTest( runTest(
token = loginUtil.loginAsUser(), token = authUtil.loginAsUser(),
on = { on = {
get("/v2/themes") get("/v2/themes")
}, },
@ -442,7 +442,7 @@ class ThemeApiTest(
context("관리자 페이지에서 특정 테마의 상세 정보를 조회한다.") { context("관리자 페이지에서 특정 테마의 상세 정보를 조회한다.") {
test("정상 응답") { test("정상 응답") {
val token = loginUtil.loginAsAdmin() val token = authUtil.loginAsAdmin()
val createdTheme = dummyInitializer.createTheme( val createdTheme = dummyInitializer.createTheme(
adminToken = token, adminToken = token,
request = createRequest request = createRequest
@ -470,7 +470,7 @@ class ThemeApiTest(
test("테마가 없으면 실패한다.") { test("테마가 없으면 실패한다.") {
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
on = { on = {
get("/admin/themes/$INVALID_PK") get("/admin/themes/$INVALID_PK")
}, },
@ -484,7 +484,7 @@ class ThemeApiTest(
context("테마를 삭제한다.") { context("테마를 삭제한다.") {
test("정상 삭제") { test("정상 삭제") {
val token = loginUtil.loginAsAdmin() val token = authUtil.loginAsAdmin()
val createdTheme = dummyInitializer.createTheme( val createdTheme = dummyInitializer.createTheme(
adminToken = token, adminToken = token,
request = createRequest request = createRequest
@ -505,7 +505,7 @@ class ThemeApiTest(
test("테마가 없으면 실패한다.") { test("테마가 없으면 실패한다.") {
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
on = { on = {
delete("/admin/themes/$INVALID_PK") delete("/admin/themes/$INVALID_PK")
}, },
@ -525,7 +525,7 @@ class ThemeApiTest(
val updateRequest = ThemeUpdateRequest(name = "modified") val updateRequest = ThemeUpdateRequest(name = "modified")
beforeTest { beforeTest {
token = loginUtil.loginAsAdmin() token = authUtil.loginAsAdmin()
createdTheme = dummyInitializer.createTheme( createdTheme = dummyInitializer.createTheme(
adminToken = token, adminToken = token,
request = createRequest.copy(name = "theme-${Random.nextInt()}") request = createRequest.copy(name = "theme-${Random.nextInt()}")
@ -534,7 +534,7 @@ class ThemeApiTest(
} }
test("정상 수정 및 감사 정보 변경 확인") { test("정상 수정 및 감사 정보 변경 확인") {
val otherAdminToken = loginUtil.login("admin1@admin.com", "admin1", Role.ADMIN) val otherAdminToken = authUtil.login("admin1@admin.com", "admin1", Role.ADMIN)
runTest( runTest(
token = otherAdminToken, token = otherAdminToken,
@ -559,7 +559,7 @@ class ThemeApiTest(
test("입력값이 없으면 수정하지 않는다.") { test("입력값이 없으면 수정하지 않는다.") {
runTest( runTest(
token = loginUtil.loginAsAdmin(), token = authUtil.loginAsAdmin(),
using = { using = {
body(ThemeUpdateRequest()) body(ThemeUpdateRequest())
}, },

View File

@ -38,11 +38,11 @@ abstract class FunSpecSpringbootTest : FunSpec({
@LocalServerPort @LocalServerPort
var port: Int = 0 var port: Int = 0
lateinit var loginUtil: LoginUtil lateinit var authUtil: AuthUtil
override suspend fun beforeSpec(spec: Spec) { override suspend fun beforeSpec(spec: Spec) {
RestAssured.port = port RestAssured.port = port
loginUtil = LoginUtil(memberRepository) authUtil = AuthUtil(memberRepository)
} }
} }

View File

@ -14,7 +14,7 @@ import roomescape.member.infrastructure.persistence.MemberEntity
import roomescape.member.infrastructure.persistence.MemberRepository import roomescape.member.infrastructure.persistence.MemberRepository
import roomescape.member.infrastructure.persistence.Role import roomescape.member.infrastructure.persistence.Role
class LoginUtil( class AuthUtil(
private val memberRepository: MemberRepository private val memberRepository: MemberRepository
) { ) {
fun login(email: String, password: String, role: Role = Role.MEMBER): String { fun login(email: String, password: String, role: Role = Role.MEMBER): String {