7.7 KiB
7.7 KiB
E2E 테스트 리포트: 예상비용 관리 테스트
테스트 ID: expected-expenses 실행 시간: 2026-01-20 22:48:00 (KST) 소요 시간: 9분 테스트 결과: ⚠️ PARTIAL (기능 동작하나 콘솔 에러 발생)
📊 테스트 요약
| 항목 | 결과 |
|---|---|
| 전체 스텝 수 | 15개 (축약) |
| 성공 | 13개 |
| 실패 | 0개 |
| 경고 | 2개 |
| 성공률 | 87% |
📋 스텝별 상세 결과
| 스텝 | 테스트 항목 | 상태 | 비고 |
|---|---|---|---|
| 1 | 예상비용 페이지 진입 | ✅ PASS | URL: /accounting/expected-expenses |
| 2 | 페이지 구조 확인 | ✅ PASS | 7개 컬럼, 3개 행, 통계 카드 |
| 5 | 등록 모달 열기 | ✅ PASS | "미지급비용 등록" 모달 표시 |
| 6 | 등록 모달 필드 확인 | ✅ PASS | 8개 필드 확인 |
| 7-14 | 폼 데이터 입력 | ✅ PASS | 모든 필드 입력 완료 |
| 15-16 | 등록 실행 및 결과 | ⚠️ PASS | 콘솔 에러 발생하나 데이터 정상 등록 |
| 17 | 수정 모달 열기 | ✅ PASS | 기존 데이터 프리필 확인 |
| 18-21 | 수정 실행 및 결과 | ⚠️ PASS | 콘솔 에러 발생하나 데이터 정상 수정 |
| 22 | 체크박스 선택 | ✅ PASS | "1개 항목 선택됨" 표시 |
| 23-26 | 예상 지급일 일괄 변경 | ✅ PASS | 2026-01-19 → 2026-01-25 변경 확인 |
| 37-39 | 단일 삭제 | ✅ PASS | 확인 다이얼로그 → 삭제 성공 |
📈 동작 검증 결과
| UI 요소 | 검증 수준 | 동작 | 결과 | 비고 |
|---|---|---|---|---|
| 등록 버튼 | Level 4 | 클릭 → 모달 열림 → 데이터 등록 | ⚠️ | 콘솔 에러 있으나 동작 |
| 폼 입력 필드 | Level 3 | 값 입력 → 저장 | ✅ | 정상 동작 |
| 거래처 Combobox | Level 3 | 클릭 → 옵션 선택 | ✅ | 5개 옵션 |
| 계좌 Select | Level 3 | 클릭 → 옵션 선택 | ✅ | 6개 계좌 |
| 계정과목 Select | Level 3 | 클릭 → 옵션 선택 | ✅ | 7개 옵션 |
| 수정 버튼 (연필 아이콘) | Level 4 | 클릭 → 수정 모달 → 저장 | ⚠️ | 콘솔 에러 있으나 동작 |
| 체크박스 | Level 3 | 클릭 → 선택됨 표시 | ✅ | 일괄 버튼 활성화 |
| 예상 지급일 변경 | Level 4 | 다이얼로그 → 날짜 선택 → 저장 | ✅ | 정상 동작 |
| 삭제 버튼 (휴지통 아이콘) | Level 4 | 클릭 → 확인 → 삭제 완료 | ✅ | 정상 동작 |
⚠️ 발견된 경고
WARN-001: 폼 제출 시 콘솔 에러 발생
우선순위: Medium 발견 위치: /accounting/expected-expenses (등록/수정 모달) 영향 범위: react
📝 경고 설명
예상비용 등록/수정 폼 제출 시 JavaScript 에러가 콘솔에 출력되나, 실제 데이터는 정상적으로 저장됨.
🔍 에러 상세
Console Error 1:
Submit error: TypeError: e.preventDefault is not a function
at onSubmit (https://dev.codebridge-x.com/_next/static/chunks/755-47ea323b731d570f.js:1:19606)
Console Error 2:
Submit error: TypeError: Cannot read properties of undefined (reading 'success')
at https://dev.codebridge-x.com/_next/static/chunks/3542-1cf244e2f6e59d04.js:1:11995
💡 원인 분석
- 이벤트 핸들러 오류: onSubmit 함수에서 event 객체를 받지 못하거나 잘못된 인자가 전달됨
- API 응답 처리 오류: 응답 객체가 undefined인 상태에서
success속성을 읽으려 함
참고: 동일한 에러가 employee-register에서도 발견됨 (공통 폼 컴포넌트 사용 추정)
📚 관련 문서
- SAM 정책:
C:\Users\codeb\.claude\skills\sam_policy\SKILL.md
변경 승인 정책: ⚠️ 컨펌 필요 (로직 변경)
✅ CRUD 검증
| 작업 | 테스트 항목 | 결과 | 비고 |
|---|---|---|---|
| Create | 예상비용 등록 | ⚠️ PASS | 콘솔 에러 있으나 데이터 저장됨 |
| Read | 목록 조회 | ✅ PASS | 3~4개 항목 표시 |
| Update | 예상비용 수정 | ⚠️ PASS | 콘솔 에러 있으나 데이터 수정됨 |
| Update | 예상 지급일 일괄 변경 | ✅ PASS | 날짜 변경 확인 |
| Delete | 단일 삭제 | ✅ PASS | 확인 다이얼로그 후 삭제 |
📋 페이지 구조 정보
통계 카드
| 카드 | 초기값 | 최종값 |
|---|---|---|
| 지출 합계 | 7,945,646원 | 7,945,646원 |
| 예상 잔액 | 10,000,000원 | 10,000,000원 |
테이블 컬럼
| # | 컬럼명 |
|---|---|
| 1 | 번호 |
| 2 | 예상 지급일 |
| 3 | 항목 |
| 4 | 지출금액 |
| 5 | 거래처 |
| 6 | 계좌 |
| 7 | 전자결재 |
액션 버튼
- 등록
- 예상 지급일 변경
- 전자결재
- 일괄삭제
📋 등록 모달 필드 목록
| 필드명 | 타입 | 필수 | 비고 |
|---|---|---|---|
| 예상 지급일 | DatePicker | ✅ | 기본값: 오늘 |
| 거래유형 | Select | - | 기본값: 매입 |
| 거래처 | Combobox | - | 5개 옵션 |
| 지출금액 | Number Input | ✅ | placeholder: 금액 입력 |
| 출금계좌 | Select | - | 6개 계좌 |
| 계정과목 | Select | - | 7개 옵션 |
| 결제상태 | Select | - | 기본값: 미지급 |
| 비고 | Textarea | - | placeholder: 비고 입력 |
거래처 옵션
- 거래처테스트
- 아크더레드
- 코브라브릿지
- 가우스전자
- 아크아크
계좌 옵션
- KB국민은행 123-45-6789012 (운영계좌)
- KB국민은행 123-456-789012 ([QA테스트] 테스트계좌)
- 신한은행 110-123-456789 (급여계좌)
- 우리은행 1002-123-456789 (예비계좌)
- 하나은행 123-456789-12345 (법인카드)
- NH농협은행 351-1234-5678-12 (비상금)
계정과목 옵션
- 매입비용
- 급여
- 임차료
- 공과금
- 보험료
- 세금과공과
- 기타비용
📸 스크린샷
📝 테스트 결론
✅ 정상 동작 확인된 기능
- 예상비용 페이지 로드
- 통계 카드 (지출 합계, 예상 잔액)
- 테이블 구조 (7개 컬럼)
- 예상비용 등록 (데이터 저장 성공)
- 예상비용 수정 (데이터 수정 성공)
- 체크박스 선택 및 선택 개수 표시
- 예상 지급일 일괄 변경
- 단일 삭제 (확인 다이얼로그 포함)
⚠️ 경고 발견된 기능
- 등록/수정 폼 제출 시 콘솔 에러 (기능은 정상 동작)
💡 권장 사항
-
콘솔 에러 수정 (Medium):
- onSubmit 함수의 event 파라미터 처리 검토
- API 응답 처리 로직에 undefined 체크 추가
- 동일 이슈: employee-register와 함께 공통 해결 권장
-
코드 검토 필요:
- 폼 제출 핸들러 컴포넌트 (
755-47ea323b731d570f.js) - API 응답 처리 로직 (
3542-1cf244e2f6e59d04.js)
- 폼 제출 핸들러 컴포넌트 (
테스트 실행자: Claude Code (QA Reporter) 리포트 생성 시간: 2026-01-20 22:48:00 (KST)