[#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.AfterTestListener
import io.kotest.core.listeners.BeforeSpecListener
import io.kotest.core.spec.Spec
import io.kotest.core.test.TestCase
import io.kotest.core.test.TestResult
@ -11,7 +12,7 @@ import org.springframework.jdbc.core.JdbcTemplate
import org.springframework.stereotype.Component
@Component
class DatabaseCleaner(
class TestDatabaseUtil(
val entityManager: EntityManager,
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) {
entityManager.clear()
@ -40,7 +47,13 @@ enum class CleanerMode {
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) {
super.afterTest(testCase, result)
getCleaner().clear(CleanerMode.EXCEPT_REGION)
@ -51,9 +64,9 @@ class DatabaseCleanerExtension: AfterTestListener, AfterSpecListener {
getCleaner().clear(CleanerMode.ALL)
}
private suspend fun getCleaner(): DatabaseCleaner {
private suspend fun getCleaner(): TestDatabaseUtil {
return testContextManager().testContext
.applicationContext
.getBean(DatabaseCleaner::class.java)
.getBean(TestDatabaseUtil::class.java)
}
}