Skip to content

Commit e0f3cc3

Browse files
authored
fix:testㅇ오류 수정 (#170)
1 parent 7f6ff8d commit e0f3cc3

File tree

4 files changed

+23
-9
lines changed

4 files changed

+23
-9
lines changed

back/src/main/java/com/back/domain/member/member/email/EmailService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import jakarta.mail.internet.MimeMessage;
66
import lombok.RequiredArgsConstructor;
77
import lombok.extern.slf4j.Slf4j;
8+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
89
import org.springframework.mail.javamail.JavaMailSender;
910
import org.springframework.mail.javamail.MimeMessageHelper;
1011
import org.springframework.stereotype.Service;
@@ -14,6 +15,7 @@
1415
@Slf4j
1516
@Service
1617
@RequiredArgsConstructor
18+
@ConditionalOnBean(JavaMailSender.class)
1719
public class EmailService {
1820
private final JavaMailSender mailSender;
1921

back/src/main/java/com/back/domain/member/member/verification/EmailVerificationService.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,40 @@
22

33
import com.back.domain.member.member.email.EmailService;
44
import com.back.global.exception.ServiceException;
5-
import lombok.RequiredArgsConstructor;
65
import lombok.extern.slf4j.Slf4j;
6+
import org.springframework.beans.factory.annotation.Autowired;
77
import org.springframework.stereotype.Service;
88

99
import java.security.SecureRandom;
1010
import java.time.Duration;
1111
import java.util.Optional;
1212

1313
@Service
14-
@RequiredArgsConstructor
1514
@Slf4j
1615
public class EmailVerificationService {
1716
private final VerificationCodeStore codeStore;
18-
private final EmailService emailService;
17+
private final Optional<EmailService> emailService;
1918
private static final Duration CODE_TTL = Duration.ofMinutes(5);
2019
private static final SecureRandom random = new SecureRandom();
2120

21+
public EmailVerificationService(VerificationCodeStore codeStore,
22+
@Autowired(required = false) EmailService emailService) {
23+
this.codeStore = codeStore;
24+
this.emailService = Optional.ofNullable(emailService);
25+
}
26+
2227
public String generateAndSendCode(String email) {
2328
// 6자리 랜덤 코드 생성
2429
String code = String.format("%06d", random.nextInt(1000000));
2530

2631
// 저장
2732
codeStore.saveCode(email, code, CODE_TTL);
2833

29-
// 이메일 발송
30-
emailService.sendVerificationCode(email, code);
34+
// 이메일 발송 (EmailService가 있을 때만)
35+
emailService.ifPresentOrElse(
36+
service -> service.sendVerificationCode(email, code),
37+
() -> log.info("EmailService not available - verification code: {}", code)
38+
);
3139
log.info("Generated and sent verification code for {}: {}", email, code);
3240

3341
return code; // 테스트용으로 반환 (실제로는 이메일로만 전송)
@@ -48,4 +56,4 @@ public void verifyCode(String email, String inputCode) {
4856
codeStore.deleteCode(email);
4957
log.info("Email verification successful for: {}", email);
5058
}
51-
}
59+
}

back/src/main/resources/application-dev.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ spring:
44
username: sa
55
password:
66
driver-class-name: org.h2.Driver
7-
8-
7+
autoconfigure:
8+
exclude:
9+
- org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration

back/src/main/resources/application-test.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@ spring:
33
url: jdbc:h2:mem:db_test;MODE=MySQL
44
username: sa
55
password:
6-
driver-class-name: org.h2.Driver
6+
driver-class-name: org.h2.Driver
7+
autoconfigure:
8+
exclude:
9+
- org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration

0 commit comments

Comments
 (0)