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

Merged
pricelees merged 73 commits from refactor/#34 into main 2025-09-13 10:13:45 +00:00
Showing only changes of commit 8a7778ba19 - Show all commits

View File

@ -2,6 +2,7 @@ package roomescape.util
import io.kotest.core.listeners.AfterSpecListener import io.kotest.core.listeners.AfterSpecListener
import io.kotest.core.listeners.AfterTestListener import io.kotest.core.listeners.AfterTestListener
import io.kotest.core.listeners.BeforeSpecListener
import io.kotest.core.spec.Spec import io.kotest.core.spec.Spec
import io.kotest.core.test.TestCase import io.kotest.core.test.TestCase
import io.kotest.core.test.TestResult import io.kotest.core.test.TestResult
@ -11,7 +12,7 @@ import org.springframework.jdbc.core.JdbcTemplate
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
@Component @Component
class DatabaseCleaner( class TestDatabaseUtil(
val entityManager: EntityManager, val entityManager: EntityManager,
val jdbcTemplate: JdbcTemplate, val jdbcTemplate: JdbcTemplate,
) { ) {
@ -21,6 +22,12 @@ class DatabaseCleaner(
} }
} }
fun initializeRegion() {
this::class.java.getResource("/schema/region-data.sql")?.readText()?.let {
jdbcTemplate.execute(it)
}
}
fun clear(mode: CleanerMode) { fun clear(mode: CleanerMode) {
entityManager.clear() entityManager.clear()
@ -40,7 +47,13 @@ enum class CleanerMode {
ALL ALL
} }
class DatabaseCleanerExtension: AfterTestListener, AfterSpecListener { class DatabaseCleanerExtension: BeforeSpecListener, AfterTestListener, AfterSpecListener {
override suspend fun beforeSpec(spec: Spec) {
super.beforeSpec(spec)
getCleaner().initializeRegion()
}
override suspend fun afterTest(testCase: TestCase, result: TestResult) { override suspend fun afterTest(testCase: TestCase, result: TestResult) {
super.afterTest(testCase, result) super.afterTest(testCase, result)
getCleaner().clear(CleanerMode.EXCEPT_REGION) getCleaner().clear(CleanerMode.EXCEPT_REGION)
@ -51,9 +64,9 @@ class DatabaseCleanerExtension: AfterTestListener, AfterSpecListener {
getCleaner().clear(CleanerMode.ALL) getCleaner().clear(CleanerMode.ALL)
} }
private suspend fun getCleaner(): DatabaseCleaner { private suspend fun getCleaner(): TestDatabaseUtil {
return testContextManager().testContext return testContextManager().testContext
.applicationContext .applicationContext
.getBean(DatabaseCleaner::class.java) .getBean(TestDatabaseUtil::class.java)
} }
} }