fix: 시간이 00시를 넘어가 특정 시간 이후에는 실패하는 테스트 수정

This commit is contained in:
이상진 2025-10-02 22:15:17 +09:00
parent 99917df600
commit e9c8e612fa

View File

@ -1,9 +1,5 @@
package com.sangdol.roomescape.schedule package com.sangdol.roomescape.schedule
import io.kotest.matchers.shouldBe
import org.hamcrest.CoreMatchers.equalTo
import org.springframework.data.repository.findByIdOrNull
import org.springframework.http.HttpMethod
import com.sangdol.common.types.web.HttpStatus import com.sangdol.common.types.web.HttpStatus
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminPermissionLevel import com.sangdol.roomescape.admin.infrastructure.persistence.AdminPermissionLevel
import com.sangdol.roomescape.admin.infrastructure.persistence.AdminType import com.sangdol.roomescape.admin.infrastructure.persistence.AdminType
@ -12,6 +8,10 @@ import com.sangdol.roomescape.schedule.exception.ScheduleErrorCode
import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleRepository import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleRepository
import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleStatus import com.sangdol.roomescape.schedule.infrastructure.persistence.ScheduleStatus
import com.sangdol.roomescape.supports.* import com.sangdol.roomescape.supports.*
import io.kotest.matchers.shouldBe
import org.hamcrest.CoreMatchers.equalTo
import org.springframework.data.repository.findByIdOrNull
import org.springframework.http.HttpMethod
import java.time.LocalDate import java.time.LocalDate
import java.time.LocalTime import java.time.LocalTime
@ -20,7 +20,7 @@ class ScheduleApiTest(
) : FunSpecSpringbootTest() { ) : FunSpecSpringbootTest() {
init { init {
context("특정 매장 + 날짜의 일정 및 테마 정보를 조회한다.") { context("특정 매장 + 날짜의 일정 및 테마 정보를 조회한다.") {
test("날짜가 오늘이면 현재 시간 이후의 정보만 조회된다.") { test("날짜가 당일이면 현재 시간 이후의 정보만 조회된다.") {
val size = 3 val size = 3
val date = LocalDate.now() val date = LocalDate.now()
val store = dummyInitializer.createStore() val store = dummyInitializer.createStore()
@ -31,7 +31,7 @@ class ScheduleApiTest(
storeId = store.id, storeId = store.id,
request = ScheduleFixture.createRequest.copy( request = ScheduleFixture.createRequest.copy(
date = date, date = date,
time = LocalTime.now().plusHours(i.toLong()) time = LocalTime.now().plusMinutes(i.toLong())
) )
) )
} }
@ -45,13 +45,17 @@ class ScheduleApiTest(
) )
} }
val expectedSize = scheduleRepository.findAll().takeIf { it.isNotEmpty() }
?.let { it.count { schedule -> schedule.date.isEqual(date) && schedule.time.isAfter(LocalTime.now()) } }
?: throw AssertionError("initialize 작업에서 레코드가 저장되지 않음.")
runTest( runTest(
on = { on = {
get("/stores/${store.id}/schedules?date=${date}") get("/stores/${store.id}/schedules?date=${date}")
}, },
expect = { expect = {
statusCode(HttpStatus.OK.value()) statusCode(HttpStatus.OK.value())
body("data.schedules.size()", equalTo(size)) body("data.schedules.size()", equalTo(expectedSize))
assertProperties( assertProperties(
props = setOf("id", "startFrom", "endAt", "themeId", "themeName", "themeDifficulty", "status"), props = setOf("id", "startFrom", "endAt", "themeId", "themeName", "themeDifficulty", "status"),
propsNameIfList = "schedules" propsNameIfList = "schedules"