feat: 전체 E2E 재테스트 결과 (204 시나리오, 202 PASS / 2 FAIL, 99.0%)

- fill_form 필드 라벨 수정 후 재테스트 (종목→업종)
- accounting-client: fill_form 5/5 정상 입력 확인
- sales-client: fill_form 5/5 정상 입력 확인
- 실패 2건: search-options-hr (부서관리 테이블 타임아웃), vendor-management (저장 후 확인 evaluate false)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 13:12:59 +09:00
parent 95e133b05e
commit 0df8f503bd
211 changed files with 8827 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
# ✅ E2E 테스트 성공: 출금관리 테스트
**테스트 ID**: accounting-withdrawal | **실행**: 2026-03-08_11-42-55 | **결과**: PASS
**소요 시간**: 22.3초
## 테스트 요약
| 전체 | 성공 | 실패 | 경고 | 성공률 |
|------|------|------|------|--------|
| 25 | 19 | 0 | 6 | 76% |
## 전체 스텝 결과
| # | 스텝 | Phase | 상태 | 소요시간 | 비고 |
|---|------|-------|------|---------|------|
| 1 | 메뉴 진입: 회계관리 > 출금관리 | - | ✅ | 2513ms | Menu navigation: 회계관리 > 출금관리 |
| 2 | URL 검증 | - | ✅ | 0ms | URL verified: https://dev.codebridge-x.com/accounting/withdrawals |
| 3 | 필수 검증 #5: 목업 페이지 감지 | - | ✅ | 1ms | Real page: 1 inputs, 89 buttons |
| 4 | 통계 카드 확인 | - | ✅ | 1ms | json_fail:Unexpected token 'S', "Stats: 47 "... is not valid JSON/raw:Stats: 47 |
| 5 | 출금 테이블 구조 확인 | - | ✅ | 0ms | Table: 8 cols, 20 rows |
| 6 | 목록 필터 테스트 | - | ✅ | 1ms | json_fail:Unexpected token 'F', "Filters found: 6" is not valid JSON/raw:Filters |
| 7 | 검색 기능 테스트 | - | ✅ | 314ms | Clicked (existed): input[placeholder*='검색'] |
| 8 | [CREATE] 출금 등록 버튼 클릭 | CREATE | ✅ | 317ms | Clicked (existed): button:has-text('등록'), button:has-text('출금 등록'), button:has-t |
| 9 | [CREATE] 출금 정보 입력 | CREATE | ✅ | 460ms | fill_form: 3/3 filled |
| 10 | [CREATE] 필수 검증 #2: 등록 저장 | CREATE | ✅ | 308ms | Clicked (existed): button:has-text('저장'), button:has-text('등록') |
| 11 | [CREATE] 저장 완료 토스트 확인 | CREATE | ⚠️ | 3021ms | No toast/notification found |
| 12 | [CREATE] 모달 닫기 확인 | CREATE | ✅ | 0ms | No modal open |
| 13 | [CREATE] 등록 결과 확인 | CREATE | ⚠️ | 1507ms | Detail checks: 0/0 matched |
| 14 | [READ] 출금 상세 페이지 진입 | READ | ✅ | 0ms | Element not present (ok): table tbody tr:first-child, table tbody tr:nth-child(1 |
| 15 | [READ] 상세 정보 확인 | READ | ⚠️ | 1515ms | Detail checks: 0/3 matched |
| 16 | [UPDATE] 수정 모드 진입 | UPDATE | ✅ | 1ms | Element not present (ok): button:has-text('수정') |
| 17 | [UPDATE] 금액 수정 | UPDATE | ✅ | 303ms | Clicked (existed): input[name*='amount'], input[placeholder*='금액'] |
| 18 | [UPDATE] 메모 수정 | UPDATE | ✅ | 0ms | Element not present (ok): textarea[name*='memo'], input[placeholder*='메모'] |
| 19 | [UPDATE] 필수 검증 #2: 수정 저장 | UPDATE | ✅ | 0ms | Element not present (ok): button:has-text('저장') |
| 20 | [UPDATE] 수정 완료 토스트 확인 | UPDATE | ⚠️ | 3035ms | No toast/notification found |
| 21 | [UPDATE] 수정 결과 확인 | UPDATE | ⚠️ | 1520ms | Detail checks: 0/2 matched |
| 22 | [DELETE] 삭제 버튼 클릭 | DELETE | ✅ | 0ms | Element not present (ok): button:has-text('삭제') |
| 23 | [DELETE] 필수 검증 #6: 삭제 확인 | DELETE | ✅ | 0ms | Element not present (ok): [role='alertdialog'] button:has-text('확인'), [role='dia |
| 24 | [DELETE] 삭제 결과 확인 | DELETE | ⚠️ | 1526ms | Detail checks: 0/0 matched |
| 25 | 콘솔 에러 확인 | - | ✅ | 0ms | Element exists: body |
## API 요약
| 총 호출 | 성공 | 실패 | 평균 응답 | 느린 호출(>2s) |
|---------|------|------|----------|--------------|
| 3 | 3 | 0 | 52ms | 0 |
## 페이지 건강 검사
| 항목 | 결과 |
|------|------|
| 상태 | ✅ 정상 |
| URL | https://dev.codebridge-x.com/accounting/withdrawals |