피드로 돌아가기
Dev.toSecurity
원문 읽기
ZeroDrop 기반 Email E2E 테스트로 Password Reset 무결성 확보
Testing Password Reset Flows End-to-End in Next.js with Playwright
AI 요약
Context
이메일 수신 확인 절차로 인해 Password Reset Flow의 완전한 E2E 테스트 구현에 제약 발생. 기존의 하드코딩된 Token 사용 방식은 실제 이메일 발송 및 수신 과정을 생략하여 테스트 커버리지가 낮았음.
Technical Solution
- ZeroDrop을 통한 Disposable Inbox 생성으로 실제 메일 수신 환경을 CI 파이프라인에 통합
- API Route에서 Crypto 모듈을 사용한 32바이트 Secure Token 생성 및 1시간 만료 시간 설정
- Playwright와 ZeroDrop Client의
waitForLatest메서드를 결합한 Magic Link 자동 추출 로직 구현 - 토큰 변조 시뮬레이션을 통한 Expired Token 처리 및 예외 케이스 검증 프로세스 구축
- GitHub Actions 내 전용 Inbox 생성 스텝을 추가하여 환경 간 격리된 테스트 인프라 구성
- NextAuth 기반 Magic Link 로그인 흐름까지 확장 가능한 범용 인증 테스트 구조 설계
실천 포인트
- Mocking 대신 실제 이메일 수신 인프라를 활용하여 외부 의존성 구간의 신뢰성 검증 - Password Reset Token의 생성, 저장, 발송, 만료, 삭제로 이어지는 전체 Lifecycle 테스트 자동화 - CI 환경에서 환경 변수(`TEST_INBOX`)를 통해 동적 이메일 주소를 할당하는 패턴 적용 - 정상 케이스 외에 토큰 조작을 통한 Negative Test 케이스 필수 포함