[#30] 코드 구조 개선 #31

Merged
pricelees merged 31 commits from refactor/#30 into main 2025-08-06 10:16:08 +00:00
Showing only changes of commit c5664e8aef - Show all commits

View File

@ -0,0 +1,63 @@
package roomescape.member.infrastructure.persistence
import io.kotest.core.spec.style.FunSpec
import io.kotest.matchers.nulls.shouldNotBeNull
import io.kotest.matchers.shouldBe
import jakarta.persistence.EntityManager
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
import roomescape.util.MemberFixture
@DataJpaTest(showSql = true)
class MemberRepositoryTest(
val entityManager: EntityManager,
val memberRepository: MemberRepository
) : FunSpec({
context("existsByEmail") {
val account = "email"
val email = "$account@email.com"
beforeTest {
entityManager.persist(MemberFixture.create(account = account))
entityManager.flush()
entityManager.clear()
}
test("동일한 이메일이 있으면 true 반환") {
val result = memberRepository.existsByEmail(email)
result shouldBe true
}
test("동일한 이메일이 없으면 false 반환") {
memberRepository.existsByEmail(email.substring(email.length - 1)) shouldBe false
}
}
context("findByEmailAndPassword") {
val account = "email"
val email = "$account@email.com"
val password = "password123"
beforeTest {
entityManager.persist(MemberFixture.create(account = account, password = password))
entityManager.flush()
entityManager.clear()
}
test("둘다 일치하면 정상 반환") {
memberRepository.findByEmailAndPassword(email, password) shouldNotBeNull {
this.email shouldBe email
this.password shouldBe password
}
}
test("이메일이 틀리면 null 반환") {
val invalidMail = email.substring(email.length - 1)
memberRepository.findByEmailAndPassword(invalidMail, password) shouldBe null
}
test("비밀번호가 틀리면 null 반환") {
val invalidPassword = password.substring(password.length - 1)
memberRepository.findByEmailAndPassword(email, invalidPassword) shouldBe null
}
}
})