From 59907bd6436aa39b638acc23475d2809e9777a4e Mon Sep 17 00:00:00 2001 From: pricelees Date: Tue, 9 Sep 2025 15:57:19 +0900 Subject: [PATCH] =?UTF-8?q?test:=20=ED=85=8C=EC=8A=A4=ED=8A=B8=EC=97=90?= =?UTF-8?q?=EC=84=9C=EC=9D=98=20LoginUtil=20->=20AuthUtil=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomescape/payment/PaymentAPITest.kt | 16 ++--- .../reservation/ReservationApiTest.kt | 68 +++++++++---------- .../roomescape/schedule/ScheduleApiTest.kt | 38 +++++------ .../kotlin/roomescape/theme/ThemeApiTest.kt | 32 ++++----- .../kotlin/roomescape/util/KotestConfig.kt | 4 +- .../roomescape/util/RestAssuredUtils.kt | 2 +- 6 files changed, 80 insertions(+), 80 deletions(-) diff --git a/src/test/kotlin/roomescape/payment/PaymentAPITest.kt b/src/test/kotlin/roomescape/payment/PaymentAPITest.kt index e7fd99ef..9ae9b620 100644 --- a/src/test/kotlin/roomescape/payment/PaymentAPITest.kt +++ b/src/test/kotlin/roomescape/payment/PaymentAPITest.kt @@ -145,8 +145,8 @@ class PaymentAPITest( PaymentMethod.entries.filter { it !in supportedMethod }.forEach { test("결제 수단: ${it.koreanName}") { val reservation = dummyInitializer.createConfirmReservation( - adminToken = loginUtil.loginAsAdmin(), - reserverToken = loginUtil.loginAsUser() + adminToken = authUtil.loginAsAdmin(), + reserverToken = authUtil.loginAsUser() ) val request = PaymentFixture.confirmRequest @@ -163,7 +163,7 @@ class PaymentAPITest( ) runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body(PaymentFixture.confirmRequest) }, @@ -182,7 +182,7 @@ class PaymentAPITest( context("결제를 취소한다.") { test("정상 취소") { - val token = loginUtil.loginAsAdmin() + val token = authUtil.loginAsAdmin() val confirmRequest = PaymentFixture.confirmRequest val reservation = dummyInitializer.createConfirmReservation( adminToken = token, @@ -230,7 +230,7 @@ class PaymentAPITest( } test("예약에 대한 결제 정보가 없으면 실패한다.") { - val token = loginUtil.loginAsAdmin() + val token = authUtil.loginAsAdmin() val reservation = dummyInitializer.createConfirmReservation( adminToken = token, reserverToken = token, @@ -282,8 +282,8 @@ class PaymentAPITest( val request = PaymentFixture.confirmRequest.copy(paymentKey = paymentKey, amount = amount) val reservation: ReservationEntity = dummyInitializer.createPendingReservation( - adminToken = loginUtil.loginAsAdmin(), - reserverToken = loginUtil.loginAsUser(), + adminToken = authUtil.loginAsAdmin(), + reserverToken = authUtil.loginAsUser(), ) val method = if (easyPayDetail != null) { @@ -305,7 +305,7 @@ class PaymentAPITest( } returns clientResponse runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body(request) }, diff --git a/src/test/kotlin/roomescape/reservation/ReservationApiTest.kt b/src/test/kotlin/roomescape/reservation/ReservationApiTest.kt index f9589a50..87ac97b6 100644 --- a/src/test/kotlin/roomescape/reservation/ReservationApiTest.kt +++ b/src/test/kotlin/roomescape/reservation/ReservationApiTest.kt @@ -38,13 +38,13 @@ class ReservationApiTest( test("정상 생성") { val schedule: ScheduleEntity = dummyInitializer.createSchedule( - adminToken = loginUtil.loginAsAdmin(), + adminToken = authUtil.loginAsAdmin(), request = ScheduleFixture.createRequest, status = ScheduleStatus.HOLD ) runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body(commonRequest.copy(scheduleId = schedule.id)) }, @@ -67,13 +67,13 @@ class ReservationApiTest( test("예약을 생성할 때 해당 일정이 ${ScheduleStatus.HOLD} 상태가 아니면 실패한다.") { val schedule: ScheduleEntity = dummyInitializer.createSchedule( - adminToken = loginUtil.loginAsAdmin(), + adminToken = authUtil.loginAsAdmin(), request = ScheduleFixture.createRequest, status = ScheduleStatus.AVAILABLE ) runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body(commonRequest.copy(scheduleId = schedule.id)) }, @@ -88,7 +88,7 @@ class ReservationApiTest( } test("예약 인원이 테마의 최소 인원보다 작거나 최대 인원보다 많으면 실패한다.") { - val adminToken = loginUtil.loginAsAdmin() + val adminToken = authUtil.loginAsAdmin() val theme: ThemeEntity = dummyInitializer.createTheme( adminToken = adminToken, request = ThemeFixture.createRequest @@ -101,7 +101,7 @@ class ReservationApiTest( ) runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body( commonRequest.copy( @@ -120,7 +120,7 @@ class ReservationApiTest( ) runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body( commonRequest.copy( @@ -142,7 +142,7 @@ class ReservationApiTest( context("필수 입력값이 입력되지 않으면 실패한다.") { test("예약자명") { runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body(commonRequest.copy(reserverName = "")) }, @@ -158,7 +158,7 @@ class ReservationApiTest( test("예약자 연락처") { runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body(commonRequest.copy(reserverContact = "")) }, @@ -176,10 +176,10 @@ class ReservationApiTest( context("예약을 확정한다.") { test("정상 응답") { - val userToken = loginUtil.loginAsUser() + val userToken = authUtil.loginAsUser() val reservation: ReservationEntity = dummyInitializer.createPendingReservation( - adminToken = loginUtil.loginAsAdmin(), + adminToken = authUtil.loginAsAdmin(), reserverToken = userToken, ) @@ -205,7 +205,7 @@ class ReservationApiTest( test("예약이 없으면 실패한다.") { runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { post("/reservations/$INVALID_PK/confirm") }, @@ -219,10 +219,10 @@ class ReservationApiTest( context("예약을 취소한다.") { test("정상 응답") { - val userToken = loginUtil.loginAsUser() + val userToken = authUtil.loginAsUser() val reservation: ReservationEntity = dummyInitializer.createConfirmReservation( - adminToken = loginUtil.loginAsAdmin(), + adminToken = authUtil.loginAsAdmin(), reserverToken = userToken, ) @@ -251,7 +251,7 @@ class ReservationApiTest( test("예약이 없으면 실패한다.") { runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body(ReservationCancelRequest(cancelReason = "test")) }, @@ -267,11 +267,11 @@ class ReservationApiTest( test("관리자가 아닌 회원은 다른 회원의 예약을 취소할 수 없다.") { val reservation: ReservationEntity = dummyInitializer.createConfirmReservation( - adminToken = loginUtil.loginAsAdmin(), - reserverToken = loginUtil.loginAsUser(), + adminToken = authUtil.loginAsAdmin(), + 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( token = otherUserToken, @@ -290,11 +290,11 @@ class ReservationApiTest( test("관리자는 다른 회원의 예약을 취소할 수 있다.") { val reservation: ReservationEntity = dummyInitializer.createConfirmReservation( - adminToken = loginUtil.loginAsAdmin(), - reserverToken = loginUtil.loginAsAdmin(), + adminToken = authUtil.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( token = otherAdminToken, @@ -322,8 +322,8 @@ class ReservationApiTest( context("나의 예약 목록을 조회한다.") { test("정상 응답") { - val userToken = loginUtil.loginAsUser() - val adminToken = loginUtil.loginAsAdmin() + val userToken = authUtil.loginAsUser() + val adminToken = authUtil.loginAsAdmin() for (i in 1..3) { dummyInitializer.createConfirmReservation( @@ -362,8 +362,8 @@ class ReservationApiTest( beforeTest { reservation = dummyInitializer.createConfirmReservation( - adminToken = loginUtil.loginAsAdmin(), - reserverToken = loginUtil.loginAsUser(), + adminToken = authUtil.loginAsAdmin(), + reserverToken = authUtil.loginAsUser(), ) } @@ -428,7 +428,7 @@ class ReservationApiTest( ) val cancelReason = "테스트입니다." - val memberId = loginUtil.getUser().id!! + val memberId = authUtil.getUser().id!! dummyInitializer.cancelPayment( memberId = memberId, @@ -495,7 +495,7 @@ class ReservationApiTest( test("예약이 없으면 실패한다.") { runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { get("/reservations/$INVALID_PK/detail") }, @@ -508,12 +508,12 @@ class ReservationApiTest( test("예약은 있지만, 결제 정보가 없으면 실패한다.") { val reservation = dummyInitializer.createConfirmReservation( - adminToken = loginUtil.loginAsAdmin(), - reserverToken = loginUtil.loginAsUser(), + adminToken = authUtil.loginAsAdmin(), + reserverToken = authUtil.loginAsUser(), ) runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { get("/reservations/${reservation.id}/detail") }, @@ -526,8 +526,8 @@ class ReservationApiTest( test("예약과 결제는 있지만, 결제 세부 내역이 없으면 실패한다.") { val reservation = dummyInitializer.createConfirmReservation( - adminToken = loginUtil.loginAsAdmin(), - reserverToken = loginUtil.loginAsUser(), + adminToken = authUtil.loginAsAdmin(), + reserverToken = authUtil.loginAsUser(), ) dummyInitializer.createPayment( @@ -538,7 +538,7 @@ class ReservationApiTest( } runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { get("/reservations/${reservation.id}/detail") }, @@ -555,7 +555,7 @@ class ReservationApiTest( reservation: ReservationEntity ): LinkedHashMap { return runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { get("/reservations/${reservation.id}/detail") }, diff --git a/src/test/kotlin/roomescape/schedule/ScheduleApiTest.kt b/src/test/kotlin/roomescape/schedule/ScheduleApiTest.kt index 28dc692a..e8164fee 100644 --- a/src/test/kotlin/roomescape/schedule/ScheduleApiTest.kt +++ b/src/test/kotlin/roomescape/schedule/ScheduleApiTest.kt @@ -35,7 +35,7 @@ class ScheduleApiTest( lateinit var token: String beforeTest { - token = loginUtil.loginAsUser() + token = authUtil.loginAsUser() } val commonAssertion: ValidatableResponse.() -> Unit = { @@ -107,7 +107,7 @@ class ScheduleApiTest( lateinit var token: String beforeTest { - token = loginUtil.loginAsUser() + token = authUtil.loginAsUser() } test("예약 가능 테마 조회: GET /schedules/themes?date={date}") { @@ -184,7 +184,7 @@ class ScheduleApiTest( } runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { get("/schedules/themes?date=$date") }, @@ -216,7 +216,7 @@ class ScheduleApiTest( } runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { get("/schedules?date=$date&themeId=${createdSchedule.themeId}") }, @@ -237,7 +237,7 @@ class ScheduleApiTest( val createdSchedule = createDummySchedule(createRequest) runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), on = { get("/schedules/${createdSchedule.id}") }, @@ -261,7 +261,7 @@ class ScheduleApiTest( test("일정이 없으면 실패한다.") { runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), on = { get("/schedules/$INVALID_PK") }, @@ -280,7 +280,7 @@ class ScheduleApiTest( lateinit var token: String beforeTest { - token = loginUtil.loginAsAdmin() + token = authUtil.loginAsAdmin() } test("정상 생성 및 감사 정보 확인") { @@ -383,7 +383,7 @@ class ScheduleApiTest( val createdSchedule: ScheduleEntity = createDummySchedule(createRequest) runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { patch("/schedules/${createdSchedule.id}/hold") }, @@ -400,7 +400,7 @@ class ScheduleApiTest( test("예약이 없으면 실패한다.") { runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { patch("/schedules/$INVALID_PK/hold") }, @@ -419,7 +419,7 @@ class ScheduleApiTest( * 생성 API에서는 일정 생성 시 AVAILABLE을 기본 상태로 지정하기 때문. */ runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), using = { body( ScheduleUpdateRequest( @@ -436,7 +436,7 @@ class ScheduleApiTest( ) runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { patch("/schedules/${createdSchedule.id}/hold") }, @@ -461,7 +461,7 @@ class ScheduleApiTest( 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( token = otherAdminToken, @@ -490,7 +490,7 @@ class ScheduleApiTest( val createdSchedule: ScheduleEntity = createDummySchedule(createRequest) runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), using = { body(ScheduleUpdateRequest()) }, @@ -510,7 +510,7 @@ class ScheduleApiTest( test("일정이 없으면 실패한다.") { runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), using = { body(updateRequest) }, @@ -530,7 +530,7 @@ class ScheduleApiTest( ) runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), using = { body( updateRequest.copy( @@ -554,7 +554,7 @@ class ScheduleApiTest( val createdSchedule: ScheduleEntity = createDummySchedule(createRequest) runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), on = { delete("/schedules/${createdSchedule.id}") }, @@ -574,7 +574,7 @@ class ScheduleApiTest( * 생성 API에서는 일정 생성 시 AVAILABLE을 기본 상태로 지정하기 때문. */ runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), using = { body( ScheduleUpdateRequest( @@ -594,7 +594,7 @@ class ScheduleApiTest( * 삭제 테스트 */ runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), on = { delete("/schedules/${createdSchedule.id}") }, @@ -608,7 +608,7 @@ class ScheduleApiTest( } fun createDummySchedule(request: ScheduleCreateRequest): ScheduleEntity { - val token = loginUtil.loginAsAdmin() + val token = authUtil.loginAsAdmin() val themeId: Long = if (request.themeId > 1L) { request.themeId diff --git a/src/test/kotlin/roomescape/theme/ThemeApiTest.kt b/src/test/kotlin/roomescape/theme/ThemeApiTest.kt index e6aee6d0..c96fa6a1 100644 --- a/src/test/kotlin/roomescape/theme/ThemeApiTest.kt +++ b/src/test/kotlin/roomescape/theme/ThemeApiTest.kt @@ -35,7 +35,7 @@ class ThemeApiTest( lateinit var token: String beforeTest { - token = loginUtil.loginAsUser() + token = authUtil.loginAsUser() } val commonAssertion: ValidatableResponse.() -> Unit = { @@ -102,10 +102,10 @@ class ThemeApiTest( context("일반 회원도 접근할 수 있다.") { test("테마 조회: GET /v2/themes") { - val token = loginUtil.loginAsUser() + val token = authUtil.loginAsUser() dummyInitializer.createTheme( - adminToken = loginUtil.loginAsAdmin(), + adminToken = authUtil.loginAsAdmin(), request = createRequest.copy(name = "test123", isOpen = true) ) @@ -129,7 +129,7 @@ class ThemeApiTest( lateinit var token: String beforeTest { - token = loginUtil.loginAsAdmin() + token = authUtil.loginAsAdmin() } test("정상 생성 및 감사 정보 확인") { @@ -340,7 +340,7 @@ class ThemeApiTest( beforeTest { for (i in 1..3) { dummyInitializer.createTheme( - adminToken = loginUtil.loginAsAdmin(), + adminToken = authUtil.loginAsAdmin(), request = createRequest.copy(name = "test$i") ).also { themeIds.add(it.id) @@ -354,7 +354,7 @@ class ThemeApiTest( test("정상 응답") { runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body(ThemeListRetrieveRequest(themeIds)) }, @@ -372,7 +372,7 @@ class ThemeApiTest( themeIds.add(INVALID_PK) runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), using = { body(ThemeListRetrieveRequest(themeIds)) }, @@ -391,7 +391,7 @@ class ThemeApiTest( lateinit var token: String beforeTest { - token = loginUtil.loginAsAdmin() + token = authUtil.loginAsAdmin() dummyInitializer.createTheme( adminToken = token, request = createRequest.copy(name = "open", isOpen = true) @@ -420,7 +420,7 @@ class ThemeApiTest( test("예약 페이지에서는 공개된 테마의 전체 정보가 조회된다.") { runTest( - token = loginUtil.loginAsUser(), + token = authUtil.loginAsUser(), on = { get("/v2/themes") }, @@ -442,7 +442,7 @@ class ThemeApiTest( context("관리자 페이지에서 특정 테마의 상세 정보를 조회한다.") { test("정상 응답") { - val token = loginUtil.loginAsAdmin() + val token = authUtil.loginAsAdmin() val createdTheme = dummyInitializer.createTheme( adminToken = token, request = createRequest @@ -470,7 +470,7 @@ class ThemeApiTest( test("테마가 없으면 실패한다.") { runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), on = { get("/admin/themes/$INVALID_PK") }, @@ -484,7 +484,7 @@ class ThemeApiTest( context("테마를 삭제한다.") { test("정상 삭제") { - val token = loginUtil.loginAsAdmin() + val token = authUtil.loginAsAdmin() val createdTheme = dummyInitializer.createTheme( adminToken = token, request = createRequest @@ -505,7 +505,7 @@ class ThemeApiTest( test("테마가 없으면 실패한다.") { runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), on = { delete("/admin/themes/$INVALID_PK") }, @@ -525,7 +525,7 @@ class ThemeApiTest( val updateRequest = ThemeUpdateRequest(name = "modified") beforeTest { - token = loginUtil.loginAsAdmin() + token = authUtil.loginAsAdmin() createdTheme = dummyInitializer.createTheme( adminToken = token, request = createRequest.copy(name = "theme-${Random.nextInt()}") @@ -534,7 +534,7 @@ class ThemeApiTest( } test("정상 수정 및 감사 정보 변경 확인") { - val otherAdminToken = loginUtil.login("admin1@admin.com", "admin1", Role.ADMIN) + val otherAdminToken = authUtil.login("admin1@admin.com", "admin1", Role.ADMIN) runTest( token = otherAdminToken, @@ -559,7 +559,7 @@ class ThemeApiTest( test("입력값이 없으면 수정하지 않는다.") { runTest( - token = loginUtil.loginAsAdmin(), + token = authUtil.loginAsAdmin(), using = { body(ThemeUpdateRequest()) }, diff --git a/src/test/kotlin/roomescape/util/KotestConfig.kt b/src/test/kotlin/roomescape/util/KotestConfig.kt index 6833fe8e..91c80938 100644 --- a/src/test/kotlin/roomescape/util/KotestConfig.kt +++ b/src/test/kotlin/roomescape/util/KotestConfig.kt @@ -38,11 +38,11 @@ abstract class FunSpecSpringbootTest : FunSpec({ @LocalServerPort var port: Int = 0 - lateinit var loginUtil: LoginUtil + lateinit var authUtil: AuthUtil override suspend fun beforeSpec(spec: Spec) { RestAssured.port = port - loginUtil = LoginUtil(memberRepository) + authUtil = AuthUtil(memberRepository) } } diff --git a/src/test/kotlin/roomescape/util/RestAssuredUtils.kt b/src/test/kotlin/roomescape/util/RestAssuredUtils.kt index 64b6e6e4..752680d1 100644 --- a/src/test/kotlin/roomescape/util/RestAssuredUtils.kt +++ b/src/test/kotlin/roomescape/util/RestAssuredUtils.kt @@ -14,7 +14,7 @@ import roomescape.member.infrastructure.persistence.MemberEntity import roomescape.member.infrastructure.persistence.MemberRepository import roomescape.member.infrastructure.persistence.Role -class LoginUtil( +class AuthUtil( private val memberRepository: MemberRepository ) { fun login(email: String, password: String, role: Role = Role.MEMBER): String {