피드로 돌아가기
Testing Password Reset Flows End-to-End in Next.js with Playwright
Dev.toDev.to
Security

ZeroDrop 기반 Email E2E 테스트로 Password Reset 무결성 확보

Testing Password Reset Flows End-to-End in Next.js with Playwright

zerodrop2026년 6월 18일7intermediate

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 케이스 필수 포함

원문 읽기