SleepZ 웹 인증 및 게스트 테스트 전략
1. 목표
- Kakao OAuth 플로우가 단일 세션 정책 하에서도 정상 동작하는지 검증한다.
- 서버 라우트(
app/api/...)와 UI 컴포넌트 연계 동작을 보장한다. - 주요 실패 시나리오(세션 만료, state 불일치)에 대한 사용자 피드백이 노출되는지 확인한다.
- 게스트 계정 온보딩과 Step-up 전환, 장기 게스트 이용 UX가 도메인 계획에 맞게 동작하고 제한 기능 가드가 올바르게 적용되는지 확인한다.
2. 자동화 테스트 계획
| 유형 | 도구 | 시나리오 | 비고 |
|---|---|---|---|
| 유닛 | Jest | translateAuthError 메시지 매핑, forwardRequestHeaders 쿠키 전달 | yarn test dha-sleep-web |
| API 계약 | MSW + Jest | POST /api/auth/refresh 실패 코드에 따른 쿠키 삭제 여부 | 추후 확장 |
| 유닛 | Jest | guestIdentityGuard 제한 기능 렌더링, useGuestExperienceContext Step-up 리마인더 상태 관리 | 게스트 전용 훅/컴포넌트에 스텁 주입 |
| 통합 | MSW + Jest | 초기 사용자 선택 → 약관 동의 → POST /auth/guest/register → GET /users/me → 대시보드 상태 전환 플로우 | Step-up 리마인더 노출 조건을 스텁으로 제어 |
| E2E | Playwright | 1. 로그인 페이지 진입 → 카카오 버튼 → sandbox redirect 모킹 2. AUTH_REFRESH_SESSION_LOCKED 응답 시 로그인 페이지로 복귀 여부 3. 게스트 온보딩 → Step-up 완료 → 제한 기능 해제 확인 | apps/dha-sleep-web-e2e 모듈에 추가 예정 |
3. 수동 QA 체크리스트
- 초기 진입 시
신규 사용자/기존 사용자버튼이 노출되고 시각적 우선순위가 명확한지 확인. 기존 사용자선택 시 Kakao 로그인 페이지로 즉시 이동하는지 확인.신규 사용자선택 시 약관 동의 페이지로 이동하고 뒤로 가기 시 초기 화면으로 복귀하는지 확인.- 필수 약관 동의 후 게스트 온보딩이 정상 진행되는지 확인.
- 로그인 페이지 진입 → Kakao 인증 취소 시
error=kakao_denied메시지가 노출되는지 확인. - 프로필 저장 시 이메일 형식 검증 메시지가 노출되는지 확인.
- 로그아웃 요청 후 쿠키가 삭제되고 보호 페이지 접근이 차단되는지 확인.
- 게스트 대시보드 제한 기능 잠금 UI가 표준 문구로 노출되는지 확인.
- Step-up 인증 완료 후 게스트 배너가 사라지고 정규 사용자 기능이 활성화되는지 확인.
- 장기간 게스트 상태로 유지한 뒤 비차단형 Step-up 리마인더가 노출되는지 확인.
- 리마인더를 닫은 뒤에도 게스트 대시보드 주요 기능을 계속 사용할 수 있는지 확인.
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 주기 실행.