Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,7 @@ public PreRegisterResponse register(Long eventId, Long userId, PreRegisterCreate
// 모든 검증 통과 후 SMS 인증 플래그 삭제
deleteSmsVerificationFlag(request.phoneNumber());

// Fingerprint 성공 기록 (이벤트별, 사전등록 액션)
if (fingerprintService != null && visitorId != null) {
fingerprintService.recordAttempt(visitorId, eventId, FingerprintService.ACTION_PRE_REGISTER, true);
}
// Fingerprint 기록은 FingerprintRecordFilter에서 자동 처리됨 (중복 방지)

return PreRegisterResponse.from(preRegister);
}
Expand All @@ -128,23 +125,14 @@ public PreRegisterResponse register(Long eventId, Long userId, PreRegisterCreate
)
);

// Fingerprint 성공 기록 (이벤트별, 사전등록 액션)
if (fingerprintService != null && visitorId != null) {
fingerprintService.recordAttempt(visitorId, eventId, FingerprintService.ACTION_PRE_REGISTER, true);
}
// Fingerprint 기록은 FingerprintRecordFilter에서 자동 처리됨 (중복 방지)

return PreRegisterResponse.from(savedPreRegister);
} catch (ErrorException e) {
// Fingerprint 실패 기록 (검증 실패) - 이벤트별, 사전등록 액션
if (fingerprintService != null && visitorId != null) {
fingerprintService.recordAttempt(visitorId, eventId, FingerprintService.ACTION_PRE_REGISTER, false);
}
// Fingerprint 기록은 FingerprintRecordFilter에서 자동 처리됨 (중복 방지)
throw e;
} catch (Exception e) {
// Fingerprint 실패 기록 (시스템 에러) - 이벤트별, 사전등록 액션
if (fingerprintService != null && visitorId != null) {
fingerprintService.recordAttempt(visitorId, eventId, FingerprintService.ACTION_PRE_REGISTER, false);
}
// Fingerprint 기록은 FingerprintRecordFilter에서 자동 처리됨 (중복 방지)
throw e;
}
}
Expand Down Expand Up @@ -172,7 +160,7 @@ public List<PreRegisterResponse> getMyPreRegister(Long userId) {
.map(preRegister -> {
Event event = preRegister.getEvent();
String imageUrl = null;
if(event.getImageUrl() != null && !event.getImageUrl().isBlank()) {
if (event.getImageUrl() != null && !event.getImageUrl().isBlank()) {
imageUrl = s3PresignedService.issueDownloadUrl(event.getImageUrl());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1267,7 +1267,7 @@ void register_Success_ReRegisterWithVisitorId() {
class FingerprintRecording {

@Test
@DisplayName("신규 등록 성공 시 visitorId로 성공 기록 (line 133)")
@DisplayName("신규 등록 성공 시 Service에서 Fingerprint 기록하지 않음 (FingerprintRecordFilter에서 처리)")
void register_Success_RecordFingerprintSuccess() {
// given
PreRegisterCreateRequest request = PreRegisterRequestFactory.fakePreRegisterRequest(
Expand All @@ -1284,12 +1284,12 @@ void register_Success_RecordFingerprintSuccess() {
visitorId
);

// then: Fingerprint 성공 기록 호출 검증
verify(fingerprintService).recordAttempt(eq(visitorId), any(Long.class), eq("pre_register"), eq(true));
// then: Service에서는 Fingerprint 기록하지 않음 (중복 방지 - FingerprintRecordFilter에서 자동 처리)
verify(fingerprintService, never()).recordAttempt(any(), any(), any(), anyBoolean());
}

@Test
@DisplayName("재등록 성공 시 visitorId로 성공 기록 (line 104)")
@DisplayName("재등록 성공 시 Service에서 Fingerprint 기록하지 않음 (FingerprintRecordFilter에서 처리)")
void register_ReRegister_RecordFingerprintSuccess() {
// given: CANCELED 상태의 사전등록
PreRegister canceledPreRegister = PreRegister.builder()
Expand All @@ -1315,12 +1315,12 @@ void register_ReRegister_RecordFingerprintSuccess() {
visitorId
);

// then: Fingerprint 성공 기록 호출 검증
verify(fingerprintService).recordAttempt(eq(visitorId), any(Long.class), eq("pre_register"), eq(true));
// then: Service에서는 Fingerprint 기록하지 않음 (중복 방지 - FingerprintRecordFilter에서 자동 처리)
verify(fingerprintService, never()).recordAttempt(any(), any(), any(), anyBoolean());
}

@Test
@DisplayName("ErrorException 발생 시 visitorId로 실패 기록 (lines 140, 142)")
@DisplayName("ErrorException 발생 시 Service에서 Fingerprint 기록하지 않음 (FingerprintRecordFilter에서 처리)")
void register_ErrorException_RecordFingerprintFailure() {
// given: 잘못된 생년월일로 ErrorException 유발
PreRegisterCreateRequest request = PreRegisterRequestFactory.fakePreRegisterRequest(
Expand All @@ -1339,12 +1339,12 @@ void register_ErrorException_RecordFingerprintFailure() {
.isInstanceOf(ErrorException.class)
.hasMessage(PreRegisterErrorCode.INVALID_USER_INFO.getMessage());

// then: Fingerprint 실패 기록 호출 검증
verify(fingerprintService).recordAttempt(eq(visitorId), any(Long.class), eq("pre_register"), eq(false));
// then: Service에서는 Fingerprint 기록하지 않음 (중복 방지 - FingerprintRecordFilter에서 자동 처리)
verify(fingerprintService, never()).recordAttempt(any(), any(), any(), anyBoolean());
}

@Test
@DisplayName("ErrorException 발생visitorId로 실패 기록 - 약관 미동의 (lines 140, 142)")
@DisplayName("약관 미동의Service에서 Fingerprint 기록하지 않음 (FingerprintRecordFilter에서 처리)")
void register_TermsNotAgreed_RecordFingerprintFailure() {
// given: 약관 미동의로 ErrorException 유발
PreRegisterCreateRequest request = PreRegisterRequestFactory.fakePreRegisterRequestWithoutTerms(
Expand All @@ -1363,8 +1363,8 @@ void register_TermsNotAgreed_RecordFingerprintFailure() {
.isInstanceOf(ErrorException.class)
.hasMessage(PreRegisterErrorCode.TERMS_NOT_AGREED.getMessage());

// then: Fingerprint 실패 기록 호출 검증
verify(fingerprintService).recordAttempt(eq(visitorId), any(Long.class), eq("pre_register"), eq(false));
// then: Service에서는 Fingerprint 기록하지 않음 (중복 방지 - FingerprintRecordFilter에서 자동 처리)
verify(fingerprintService, never()).recordAttempt(any(), any(), any(), anyBoolean());
}

// Note: Lines 143, 146, 148 (일반 Exception catch 블록)은 통합 테스트로 커버하기 어려움
Expand Down
Loading