Closed clara-shin closed 3 days ago
이 PR은 테스트를 위한 MSW(Mock Service Worker)를 사용한 로그인 기능을 구현합니다. 구현에는 사용자 인증, 폼 검증, 오류 처리 및 Zustand를 사용한 상태 관리가 포함됩니다. API 클라이언트는 환경 기반 구성을 통해 MSW와 실제 API 환경을 모두 지원하도록 수정되었습니다.
sequenceDiagram
actor User
participant SignInPage
participant useSignin
participant apiClient
participant MSW
User->>SignInPage: 이메일과 비밀번호 입력
SignInPage->>useSignin: useSignin 훅 호출
useSignin->>apiClient: POST /api/members/login
alt MSW 활성화됨
apiClient->>MSW: 요청 가로채기
MSW-->>apiClient: 모의 응답
else MSW 비활성화됨
apiClient->>RealAPI: 요청 전달
RealAPI-->>apiClient: 실제 응답
end
apiClient-->>useSignin: 응답 반환
useSignin-->>SignInPage: 응답 처리
SignInPage-->>User: 성공 또는 오류 메시지 표시
classDiagram
class User {
+int member_id
+string email
+string nickname
+UserRole role
}
class SigninRequest {
+string email
+string password
}
class SigninResponse {
+string status
+string message
+SigninData data
}
class SigninData {
+string token
+User user
}
class UserRole {
<<enumeration>>
INVESTOR
TRADER
ADMIN
}
SigninResponse --> SigninData
SigninData --> User
User --> UserRole
classDiagram
class AuthStore {
+string token
+User user
+setAuth(token: string, user: User)
+signout()
}
class User {
+int member_id
+string email
+string nickname
+UserRole role
}
AuthStore --> User
변경 사항 | 세부 사항 | 파일 |
---|---|---|
폼 검증 및 오류 처리를 통한 로그인 기능 구현 |
|
src/pages/auth/SignInPage.tsx src/utils/validation.ts |
인증 API 엔드포인트 모킹을 위한 MSW 설정 |
|
src/mocks/handlers/auth.handlers.ts src/api/apiEndpoints.ts src/mocks/mockEndpoints.ts |
인증 상태 관리 구현 |
|
src/stores/authStore.ts src/pages/HomePage.tsx |
MSW와 실제 API 환경을 모두 지원하도록 API 클라이언트 수정 |
|
src/api/apiClient.ts src/api/auth.ts |
Name | Link |
---|---|
Latest commit | 12632889e339e8ecf3358d6bf813b9b71961e031 |
Latest deploy log | https://app.netlify.com/sites/sysmetics/deploys/673bb9dd0dc1a70008c0a490 |
Deploy Preview | https://deploy-preview-146--sysmetics.netlify.app |
Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify site configuration.
🚀 풀 리퀘스트 제안
📋 작업 내용
✅ MSW는 브라우저에서 작동하며,
현재 도메인(localhost:3000)
에 대한 요청만 가로챌 수 있음✅ MSW가 활성화되어 있을 때는 baseURL을 빈 문자열로 설정하여 모든 요청이 현재 도메인(localhost:3000)으로 가도록 함 ✅ _✨APIENDPOINTS만 사용✨ -> 개발 환경에서는 MSW가 요청을 가로채서 처리하고, 프로덕션 환경에서는 실제 API로 요청이 전송
기능구현
🔧 변경 사항
주요 변경 사항을 요약해 주세요.
📸 스크린샷 (선택 사항)
수정된 화면 또는 기능을 시연할 수 있는 스크린샷을 첨부해 주세요.
📄 기타
추가적으로 전달하고 싶은 내용이나 특별한 요구 사항이 있으면 작성해 주세요.
Sourcery에 의한 요약
테스트를 위한 MSW로 로그인 기능을 구현하고, API 클라이언트를 리팩토링하여 다양한 환경을 처리하며, SignInPage에서 이메일 및 비밀번호 입력에 대한 유효성 검사를 추가합니다.
새로운 기능:
개선 사항:
테스트:
Original summary in English
## Summary by Sourcery Implement login functionality with MSW for testing, refactor API client to handle different environments, and add validation for email and password inputs on the SignInPage. New Features: - Implement login functionality with MSW for testing, including user data type specification and authStore creation. Enhancements: - Refactor API client to distinguish between MSW and real API using baseURL settings, ensuring requests are correctly routed based on environment. Tests: - Add test code for login functionality using MSW to simulate server responses.