# E2E Test Report: 출금관리 (Withdrawal Management)

**Test ID**: withdrawal-management
**Executed**: 2026-01-15
**Status**: ⚠️ PARTIAL (11/12 - 1 Bug)
**Test Environment**: https://dev.codebridge-x.com

---

## Summary

| Item | Result |
|------|--------|
| Total Steps | 12 |
| Passed | 11 |
| Failed | 1 |
| Pass Rate | 91.7% |

---

## Step Results

| Step | Test Case | Status | Notes |
|------|-----------|--------|-------|
| 1 | 회계관리 메뉴 진입 | ✅ PASS | /accounting/withdrawals 접속 확인 |
| 2 | 목록 페이지 구조 검증 | ✅ PASS | 통계 카드 4개, 테이블 컬럼 8개 확인 |
| 3 | 계정과목명 드롭다운 옵션 확인 | ✅ PASS | 16개 옵션 확인 (시나리오 14개와 상이) |
| 4 | 계정과목명 일괄변경 테스트 | ❌ FAIL | API 200 OK, 데이터 미반영 |
| 5 | 상세 페이지 진입 | ✅ PASS | /accounting/withdrawals/58 이동 확인 |
| 6 | 상세 페이지 필드 검증 | ✅ PASS | 기본 정보 섹션 7개 필드 확인 |
| 7 | 수정 모드 전환 | ✅ PASS | ?mode=edit URL 변경, 버튼 변경 확인 |
| 8 | 수정 가능 필드 검증 | ✅ PASS | 적요, 거래처, 출금유형 수정 가능 |
| 9 | 필수값 유효성 검증 | ✅ PASS | "거래처를 선택해주세요" 토스트 확인 |
| 10 | 상세 페이지 수정 저장 | ✅ PASS | 거래처, 출금유형 변경 후 저장 성공 |
| 11 | 수정 데이터 반영 확인 | ✅ PASS | 목록에서 변경된 데이터 확인 |
| 12 | 출금유형 미설정 건수 감소 | ✅ PASS | 60건 → 59건 확인 |

---

## Detailed Test Results

### 1. 회계관리 메뉴 진입

| 항목 | 예상 | 실제 | 결과 |
|------|------|------|------|
| URL | /accounting/withdrawals | /accounting/withdrawals | ✅ |
| 페이지 타이틀 | 출금관리 | 출금관리 | ✅ |
| 인증 상태 | 로그인됨 | 로그인됨 | ✅ |

---

### 2. 목록 페이지 구조 검증

#### 통계 카드 (4개)

| 카드명 | 값 | 결과 |
|--------|-----|------|
| 총 출금 | 1,214,143,687원 | ✅ |
| 당월 출금 | 0원 | ✅ |
| 거래처 미설정 | 0건 | ✅ |
| 출금유형 미설정 | 60건 | ✅ |

#### 테이블 컬럼 (8개)

| # | 컬럼명 | 시나리오 | 결과 |
|---|--------|----------|------|
| 1 | 체크박스 | 체크박스 | ✅ |
| 2 | 출금일 | 출금일 | ✅ |
| 3 | 출금계좌 | 출금계좌 | ✅ |
| 4 | 수취인명 | 받는분 | ⚠️ 컬럼명 상이 |
| 5 | 출금금액 | 출금금액 | ✅ |
| 6 | 거래처 | 거래처 | ✅ |
| 7 | 적요 | 적요 | ✅ |
| 8 | 출금유형 | 출금유형 | ✅ |

**참고**: 시나리오의 "받는분" 컬럼이 실제 시스템에서는 "수취인명"으로 표시됨

---

### 3. 계정과목명 드롭다운 옵션

**실제 옵션 (16개)**:
1. 미설정
2. 매입대금
3. 선급금
4. 가지급금
5. 임대료
6. 이자비용
7. 보증금 지급
8. 차입금 상환
9. 배당금 지급
10. 부가세 납부
11. 급여
12. 4대보험
13. 세금
14. 공과금
15. 경비
16. 기타

**참고**: 시나리오에는 14개 옵션으로 정의되어 있으나 실제로는 16개 옵션 존재

---

### 4. 계정과목명 일괄변경 테스트 ❌ FAIL

**BUG-WITHDRAWAL-20260115-001**

| 항목 | 예상 | 실제 | 결과 |
|------|------|------|------|
| 체크박스 선택 | 1개 항목 선택 | 1개 항목 선택됨 | ✅ |
| 계정과목명 선택 | 매입대금 | 매입대금 | ✅ |
| 저장 버튼 클릭 | 동작 | 동작 | ✅ |
| 확인 다이얼로그 | 표시 | "1개의 출금 유형을 매입대금(으)로 모두 변경하시겠습니까?" | ✅ |
| 확인 버튼 클릭 | 동작 | 동작 | ✅ |
| API 호출 | POST /accounting/withdrawals | POST /accounting/withdrawals (200 OK) | ✅ |
| 데이터 변경 | 미설정 → 매입대금 | **미설정 (변경 없음)** | ❌ |
| 출금유형 미설정 건수 | 59건 | **60건 (변경 없음)** | ❌ |

**버그 상세**:
- **증상**: API 호출은 성공(200 OK)하지만 실제 데이터가 변경되지 않음
- **심각도**: High
- **영향**: 일괄변경 기능 미동작
- **버그 유형**: 백엔드 API 로직 오류 또는 프론트엔드-백엔드 데이터 불일치
- **관련 버그**:
  - BUG-DEPOSIT-20260115-001 (입금관리 동일 증상)
  - BUG-SALES-20260115-001 (매출관리 동일 증상)

---

### 5-6. 상세 페이지 진입 및 필드 검증

| 항목 | 예상 | 실제 | 결과 |
|------|------|------|------|
| URL | /accounting/withdrawals/{id} | /accounting/withdrawals/58 | ✅ |
| 페이지 타이틀 | 출금 상세 | 출금 상세 | ✅ |
| 버튼 | 목록, 삭제, 수정 | 목록, 삭제, 수정 | ✅ |

#### 기본 정보 필드

| 필드명 | 타입 | 상태 | 값 | 결과 |
|--------|------|------|-----|------|
| 출금일 | textbox | disabled | 2025-12-27 | ✅ |
| 출금계좌 | textbox | disabled | 운영계좌 | ✅ |
| 수취인명 | textbox | disabled | 두산에너빌리티 | ✅ |
| 출금금액 | textbox | disabled | 1,513,170 | ✅ |
| 적요 | textbox | disabled | 두산에너빌리티 지급 | ✅ |
| 거래처 * | combobox | disabled | 선택 ▼ | ✅ |
| 출금 유형 * | combobox | disabled | 미설정 | ✅ |

---

### 7-8. 수정 모드 전환 및 필드 활성화

| 항목 | 예상 | 실제 | 결과 |
|------|------|------|------|
| URL | ?mode=edit 추가 | /accounting/withdrawals/58?mode=edit | ✅ |
| 페이지 타이틀 | 출금 수정 | 출금 수정 | ✅ |
| 버튼 변경 | 취소, 저장 | 취소, 저장 | ✅ |

#### 수정 모드 필드 상태

| 필드명 | 읽기 모드 | 수정 모드 | 결과 |
|--------|----------|----------|------|
| 출금일 | disabled | disabled | ✅ |
| 출금계좌 | disabled | disabled | ✅ |
| 수취인명 | disabled | disabled | ✅ |
| 출금금액 | disabled | disabled | ✅ |
| 적요 | disabled | **enabled** | ✅ |
| 거래처 | disabled | **enabled** | ✅ |
| 출금 유형 | disabled | **enabled** | ✅ |

---

### 9. 필수값 유효성 검증

| 시나리오 | 입력값 | 예상 결과 | 실제 결과 | 결과 |
|----------|--------|----------|----------|------|
| 거래처 미선택 후 저장 | 거래처: 선택 ▼, 출금유형: 매입대금 | 유효성 에러 | "거래처를 선택해주세요." 토스트 | ✅ |

---

### 10-12. 상세 페이지 수정 및 저장

#### 수정 내용

| 필드 | 변경 전 | 변경 후 |
|------|---------|---------|
| 거래처 | 선택 ▼ (두산에너빌리티) | 거래처테스트 |
| 출금유형 | 미설정 | 매입대금 |

#### 저장 결과

| 항목 | 예상 | 실제 | 결과 |
|------|------|------|------|
| 저장 버튼 동작 | 저장 실행 | 저장 실행 | ✅ |
| 리다이렉트 | /accounting/withdrawals | /accounting/withdrawals | ✅ |
| 거래처 변경 | 거래처테스트 | 거래처테스트 | ✅ |
| 출금유형 변경 | 매입대금 | 매입대금 | ✅ |
| 미설정 건수 | 59건 | 59건 | ✅ |

---

## 발견된 버그

### BUG-WITHDRAWAL-20260115-001: 계정과목명 일괄변경 데이터 미반영

**Priority**: High
**Component**: `C:\Users\codeb\react\src\app\[locale]\(protected)\accounting\withdrawals\page.tsx`

#### Issue Summary
목록 페이지에서 체크박스로 항목 선택 후 계정과목명을 변경하고 저장 시, API는 성공 응답(200 OK)을 반환하지만 실제 데이터는 변경되지 않음.

#### Steps to Reproduce
1. 회계관리 > 출금관리 접속
2. 테이블에서 행 체크박스 선택
3. 계정과목명 드롭다운에서 옵션 선택 (예: 매입대금)
4. 저장 버튼 클릭
5. 확인 다이얼로그에서 확인 클릭
6. 결과: API 200 OK, 데이터 미변경

#### Expected Result
- 선택된 항목의 출금유형이 변경됨
- 출금유형 미설정 건수가 감소함

#### Actual Result
- API 응답은 성공(200 OK)
- 데이터가 변경되지 않음
- 출금유형 미설정 건수 그대로 유지

#### Error Details
```
Network Request: POST /accounting/withdrawals => 200 OK
Console: No errors
Data: 미설정 → 미설정 (변경 없음)
```

#### Related Bugs
- BUG-DEPOSIT-20260115-001: 입금관리 일괄변경 (동일 증상)
- BUG-SALES-20260115-001: 매출관리 일괄변경 (동일 증상)

#### Suggested Fix (Reference Only)
- 백엔드 API 로직 점검 필요
- 요청 페이로드와 실제 DB 업데이트 로직 확인
- 프론트엔드에서 올바른 파라미터 전송 여부 확인

**영향 범위**: api / react
**변경 승인 정책**: ⚠️ 컨펌 필요

---

## 시나리오 vs 실제 시스템 차이점

| 항목 | 시나리오 정의 | 실제 시스템 | 비고 |
|------|--------------|------------|------|
| 테이블 컬럼명 | 받는분 | 수취인명 | 명명 규칙 차이 |
| 계정과목 옵션 수 | 14개 | 16개 | 2개 추가 (4대보험, 공과금) |

---

## 거래처 드롭다운 옵션 (상세 페이지)

| # | 거래처명 |
|---|----------|
| 1 | 거래처테스트 |
| 2 | 아크더레드 |
| 3 | 코브라브릿지 |
| 4 | 가우스전자 |
| 5 | 아크아크 |

---

## Conclusion

12개 테스트 케이스 중 11개 통과 (91.7%)

### 검증 완료 항목
1. ✅ 회계관리 > 출금관리 메뉴 접근
2. ✅ 목록 페이지 구조 (통계 카드 4개, 테이블 컬럼 8개)
3. ✅ 계정과목명 드롭다운 옵션 (16개)
4. ❌ 계정과목명 일괄변경 (BUG-WITHDRAWAL-20260115-001)
5. ✅ 상세 페이지 진입 및 정보 표시
6. ✅ 수정 모드 전환
7. ✅ 필드 활성화 상태 변경
8. ✅ 필수값 유효성 검증
9. ✅ 상세 페이지 데이터 수정 및 저장
10. ✅ 수정 데이터 목록 반영

### 테스트 제외 항목
- 삭제 기능
- 검색 기능
- 필터 기능 (전체/전체/최신순)
- 페이지네이션
- 날짜 필터 버튼 (당해년도, 전전월 등)
- 취소 버튼 동작

---

**Report Generated**: 2026-01-15
**Tester**: Claude E2E Test Agent
