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

Merged
pricelees merged 73 commits from refactor/#34 into main 2025-09-13 10:13:45 +00:00
2 changed files with 8 additions and 17 deletions
Showing only changes of commit 3f74206985 - Show all commits

View File

@ -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 {

View File

@ -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<SpringTestExtension> = 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