# API 연동 테스트 가이드 ## 테스트 방법 ### 1. 테스트 화면 접속 ```bash # Flutter 웹 서버 실행 flutter run -d chrome # 앱이 실행되면 다음 경로로 이동 /test ``` ### 2. 테스트 화면 사용법 테스트 화면에서는 다음과 같은 버튼들을 제공합니다: 1. **초기 상태 확인**: 서비스 주입과 토큰 상태 확인 2. **헬스체크 테스트**: API 서버 연결 확인 3. **보호된 엔드포인트 테스트**: 인증이 필요한 API 테스트 4. **로그인 테스트**: admin@superport.kr 계정으로 로그인 5. **대시보드 테스트**: 대시보드 데이터 조회 및 장비 상태 코드 확인 6. **장비 목록 테스트**: 장비 목록 조회 및 상태 코드 변환 확인 7. **입고지 목록 테스트**: 입고지 목록 조회 8. **회사 목록 테스트**: 회사 목록 조회 9. **모든 테스트 실행**: 위 테스트들을 순차적으로 실행 10. **토큰 삭제**: 저장된 인증 토큰 삭제 ### 3. 주요 확인 사항 #### 장비 상태 코드 변환 - 서버에서 반환하는 상태 코드: `available`, `inuse`, `maintenance`, `disposed` - 클라이언트 표시 코드: `I`(입고), `T`(대여), `R`(수리), `D`(손상), `E`(기타) #### API 응답 형식 - 모든 API 응답은 다음 형식으로 정규화됨: ```json { "success": true, "data": { ... } } ``` ### 4. 문제 해결 #### CORS 에러 발생 시 ```bash # 프록시 서버를 통해 실행 ./run_web_with_proxy.sh ``` #### 인증 토큰 문제 1. "토큰 삭제" 버튼 클릭 2. "로그인 테스트" 재실행 3. 다른 API 테스트 진행 #### 장비 상태 코드 불일치 - `EquipmentStatusConverter` 클래스에서 매핑 확인 - 서버 응답 로그에서 실제 반환되는 코드 확인 ### 5. 디버그 로그 확인 터미널에서 다음 로그들을 확인: - `[ApiClient]`: API 요청/응답 로그 - `[ResponseInterceptor]`: 응답 정규화 로그 - `[AuthInterceptor]`: 인증 처리 로그 - `[ApiTest]`: 테스트 실행 로그 ### 6. 예상 결과 정상 작동 시: 1. 로그인: 성공 (토큰 발급) 2. 대시보드: 장비 상태 분포에 `I`, `T`, `R`, `D` 등 표시 3. 장비 목록: 상태 코드가 올바르게 변환되어 표시 4. 입고지/회사: 정상 조회 ## 현재 구현 상태 ### 완료된 기능 - ✅ 로그인 API 연동 - ✅ 토큰 기반 인증 - ✅ 응답 정규화 인터셉터 - ✅ 장비 상태 코드 변환기 - ✅ 에러 처리 인터셉터 ### 테스트 필요 항목 - 장비 상태 코드 변환 정확성 - 대시보드 데이터 표시 - 각 페이지별 API 호출 성공 여부 - 에러 처리 적절성