본문으로 건너뛰기

SleepZ 웹 인증 및 게스트 테스트 전략

1. 목표

  • Kakao OAuth 플로우가 단일 세션 정책 하에서도 정상 동작하는지 검증한다.
  • 서버 라우트(app/api/...)와 UI 컴포넌트 연계 동작을 보장한다.
  • 주요 실패 시나리오(세션 만료, state 불일치)에 대한 사용자 피드백이 노출되는지 확인한다.
  • 게스트 계정 온보딩과 Step-up 전환, 장기 게스트 이용 UX가 도메인 계획에 맞게 동작하고 제한 기능 가드가 올바르게 적용되는지 확인한다.

2. 자동화 테스트 계획

유형도구시나리오비고
유닛JesttranslateAuthError 메시지 매핑, forwardRequestHeaders 쿠키 전달yarn test dha-sleep-web
API 계약MSW + JestPOST /api/auth/refresh 실패 코드에 따른 쿠키 삭제 여부추후 확장
유닛JestguestIdentityGuard 제한 기능 렌더링, useGuestExperienceContext Step-up 리마인더 상태 관리게스트 전용 훅/컴포넌트에 스텁 주입
통합MSW + Jest초기 사용자 선택 → 약관 동의 → POST /auth/guest/registerGET /users/me → 대시보드 상태 전환 플로우Step-up 리마인더 노출 조건을 스텁으로 제어
E2EPlaywright1. 로그인 페이지 진입 → 카카오 버튼 → sandbox redirect 모킹 2. AUTH_REFRESH_SESSION_LOCKED 응답 시 로그인 페이지로 복귀 여부 3. 게스트 온보딩 → Step-up 완료 → 제한 기능 해제 확인apps/dha-sleep-web-e2e 모듈에 추가 예정

3. 수동 QA 체크리스트

  1. 초기 진입 시 신규 사용자/기존 사용자 버튼이 노출되고 시각적 우선순위가 명확한지 확인.
  2. 기존 사용자 선택 시 Kakao 로그인 페이지로 즉시 이동하는지 확인.
  3. 신규 사용자 선택 시 약관 동의 페이지로 이동하고 뒤로 가기 시 초기 화면으로 복귀하는지 확인.
  4. 필수 약관 동의 후 게스트 온보딩이 정상 진행되는지 확인.
  5. 로그인 페이지 진입 → Kakao 인증 취소 시 error=kakao_denied 메시지가 노출되는지 확인.
  6. 프로필 저장 시 이메일 형식 검증 메시지가 노출되는지 확인.
  7. 로그아웃 요청 후 쿠키가 삭제되고 보호 페이지 접근이 차단되는지 확인.
  8. 게스트 대시보드 제한 기능 잠금 UI가 표준 문구로 노출되는지 확인.
  9. Step-up 인증 완료 후 게스트 배너가 사라지고 정규 사용자 기능이 활성화되는지 확인.
  10. 장기간 게스트 상태로 유지한 뒤 비차단형 Step-up 리마인더가 노출되는지 확인.
  11. 리마인더를 닫은 뒤에도 게스트 대시보드 주요 기능을 계속 사용할 수 있는지 확인.

4. 데이터/도구 준비

  • Kakao sandbox 계정 2개 (운영/신규 가입자 구분).
  • TimeMachine DayIndex를 조작하지 않는 환경 (실시간 인증).
  • Playwright 테스트 시 MSW 또는 프락시 서버로 Kakao 리다이렉트 모킹.
  • Step-up 리마인더 노출 조건을 제어할 수 있는 Feature Flag 혹은 백엔드 테스트 훅.

5. 후속 TODO

  • Playwright 프로젝트 scaffolding 및 CI 통합.
  • /api/auth/refresh에 대한 통합 테스트 구현.
  • QA 리포트 템플릿 업데이트 (세션 종료 사유 포함).
  • 게스트 온보딩·Step-up Playwright 시나리오 추가 및 CI 주기 실행.