From 3f7420698537a636cc2b0aebba6d72e5ba526ffc Mon Sep 17 00:00:00 2001 From: pricelees Date: Fri, 12 Sep 2025 20:56:57 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20region=20=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=EB=A1=9C=20=EC=9D=B8=ED=95=B4=20=EB=B0=9C=EC=83=9D?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=ED=85=8C=EC=8A=A4=ED=8A=B8=EC=97=90?= =?UTF-8?q?=EC=84=9C=EC=9D=98=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EC=B4=88?= =?UTF-8?q?=EA=B8=B0=ED=99=94=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kotlin/roomescape/util/DatabaseCleaner.kt | 22 ++++++------------- .../kotlin/roomescape/util/KotestConfig.kt | 3 +-- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/test/kotlin/roomescape/util/DatabaseCleaner.kt b/src/test/kotlin/roomescape/util/DatabaseCleaner.kt index b2b6ce43..4fdfe401 100644 --- a/src/test/kotlin/roomescape/util/DatabaseCleaner.kt +++ b/src/test/kotlin/roomescape/util/DatabaseCleaner.kt @@ -21,12 +21,12 @@ class DatabaseCleaner( } } - fun clear() { + fun clear(mode: CleanerMode) { entityManager.clear() jdbcTemplate.execute("SET REFERENTIAL_INTEGRITY FALSE") tables.forEach { - if (it == "region") { + if (mode == CleanerMode.EXCEPT_REGION && it == "region") { return@forEach } jdbcTemplate.execute("TRUNCATE TABLE $it RESTART IDENTITY") @@ -36,27 +36,19 @@ class DatabaseCleaner( } enum class CleanerMode { - AFTER_EACH_TEST, - AFTER_SPEC + EXCEPT_REGION, + ALL } -class DatabaseCleanerExtension( - private val mode: CleanerMode -) : AfterTestListener, AfterSpecListener { +class DatabaseCleanerExtension: AfterTestListener, AfterSpecListener { override suspend fun afterTest(testCase: TestCase, result: TestResult) { super.afterTest(testCase, result) - when (mode) { - CleanerMode.AFTER_EACH_TEST -> getCleaner().clear() - CleanerMode.AFTER_SPEC -> Unit - } + getCleaner().clear(CleanerMode.EXCEPT_REGION) } override suspend fun afterSpec(spec: Spec) { super.afterSpec(spec) - when (mode) { - CleanerMode.AFTER_EACH_TEST -> Unit - CleanerMode.AFTER_SPEC -> getCleaner().clear() - } + getCleaner().clear(CleanerMode.ALL) } private suspend fun getCleaner(): DatabaseCleaner { diff --git a/src/test/kotlin/roomescape/util/KotestConfig.kt b/src/test/kotlin/roomescape/util/KotestConfig.kt index 5342a5e3..3e92b362 100644 --- a/src/test/kotlin/roomescape/util/KotestConfig.kt +++ b/src/test/kotlin/roomescape/util/KotestConfig.kt @@ -20,7 +20,6 @@ import roomescape.payment.infrastructure.persistence.PaymentRepository import roomescape.reservation.infrastructure.persistence.ReservationRepository import roomescape.schedule.infrastructure.persistence.ScheduleRepository import roomescape.theme.infrastructure.persistence.ThemeRepository -import roomescape.util.CleanerMode.AFTER_EACH_TEST object KotestConfig : AbstractProjectConfig() { override fun extensions(): List = listOf(SpringExtension) @@ -29,7 +28,7 @@ object KotestConfig : AbstractProjectConfig() { @Import(TestConfig::class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) abstract class FunSpecSpringbootTest : FunSpec({ - extension(DatabaseCleanerExtension(mode = AFTER_EACH_TEST)) + extension(DatabaseCleanerExtension()) }) { @Autowired private lateinit var memberRepository: MemberRepository