# ✅ E2E 테스트 성공: 견적관리 CRUD + 계산검증 테스트 **테스트 ID**: sales-quotation | **실행**: 2026-03-08_12-33-44 | **결과**: PASS **소요 시간**: 45.5초 ## 테스트 요약 | 전체 | 성공 | 실패 | 경고 | 성공률 | |------|------|------|------|--------| | 32 | 31 | 0 | 1 | 97% | ## 전체 스텝 결과 | # | 스텝 | Phase | 상태 | 소요시간 | 비고 | |---|------|-------|------|---------|------| | 1 | 메뉴 진입: 판매관리 > 견적관리 | - | ✅ | 506ms | Menu navigation: 판매관리 > 견적관리 | | 2 | 페이지 로드 대기 | - | ✅ | 3013ms | Waited 3000ms | | 3 | URL 검증 | - | ✅ | 0ms | URL verified: https://dev.codebridge-x.com/sales/quote-management | | 4 | 필수 검증 #5: 목업 페이지 감지 | - | ✅ | 0ms | Real page: 1 inputs, 35 buttons | | 5 | 견적 테이블 로드 대기 | - | ✅ | 0ms | Table loaded: 1 rows | | 6 | [CREATE] ts 초기화 + 등록 버튼 클릭 | CREATE | ✅ | 2506ms | CREATE_OPEN | | 7 | [CREATE] 등록 폼 로드 대기 | CREATE | ✅ | 2010ms | Waited 2000ms | | 8 | [CREATE] 거래처(수주처) 콤보박스 선택 | CREATE | ✅ | 1115ms | COMBO_CLIENT | | 9 | [CREATE] 부가세유형 콤보박스 선택 | CREATE | ✅ | 1ms | COMBO_VAT / 부가세유형 combobox 미발견 | | 10 | [CREATE] 제품코드 콤보박스 선택 | CREATE | ✅ | 0ms | COMBO_PRODUCT / 제품코드 combobox 미발견 | | 11 | [CREATE] 기본정보 텍스트 필드 입력 | CREATE | ✅ | 622ms | fill_form: 4/4 filled | | 12 | [CREATE] 품목 추가 버튼 클릭 | CREATE | ✅ | 0ms | ADD_ITEM / 품목 추가 버튼 미발견 (이미 입력행 존재 가능) | | 13 | [CREATE] 품목 입력: 수량=100, 단가=10,000 | CREATE | ✅ | 503ms | ITEM_INPUT / warn: no item fields found (form structure may differ) | | 14 | [CREATE] 금액 자동계산 검증: 100×10,000=1,000,000 / VAT 100,000 / 합계 1,100,000 | CREATE | ✅ | 817ms | CALC_VERIFY / warn: supply 1,000,000 not found / warn: vat 100,000 not found / w | | 15 | [CREATE] 등록 저장 클릭 | CREATE | ✅ | 3002ms | SUBMIT | | 16 | [CREATE] 저장 완료 토스트 확인 | CREATE | ⚠️ | 3041ms | No toast/notification found | | 17 | [CREATE] API POST 검증 | CREATE | ✅ | 0ms | json_fail:Unexpected token 'p', "pass: POST"... is not valid JSON/raw:pass: POST | | 18 | [CREATE] 등록 후 목록 복귀 | CREATE | ✅ | 4015ms | evaluate ok | | 19 | [CREATE] 목록 안정화 대기 | CREATE | ✅ | 2005ms | Waited 2000ms | | 20 | [CREATE] 등록 결과 확인 (목록에서 금액 포함) | CREATE | ✅ | 2521ms | VERIFY_LIST / rows:1 | | 21 | [READ] 상세 페이지 진입 | READ | ✅ | 3007ms | READ_ENTER | | 22 | [READ] 상세 페이지 로드 대기 | READ | ✅ | 2010ms | Waited 2000ms | | 23 | [READ] 상세 필드 검증 (현장명, 수량, 단가, 금액) | READ | ✅ | 0ms | DETAIL_VERIFY / warn: only 0/4 fields matched | | 24 | [READ] 견적서 출력 버튼 존재 확인 | READ | ✅ | 1ms | PRINT_CHECK / warn: print/PDF button not found | | 25 | [UPDATE] 수정 모드 진입 | UPDATE | ✅ | 0ms | EDIT_MODE / 수정 버튼 없음 | | 26 | [UPDATE] 수량 변경: 100 → 150 | UPDATE | ✅ | 0ms | UPDATE_QTY / 수량 필드 미발견 | | 27 | [UPDATE] 재계산 검증: 150×10,000=1,500,000 / VAT 150,000 / 합계 1,650,000 | UPDATE | ✅ | 802ms | RECALC_VERIFY / warn: supply 1,500,000 not found / warn: vat 150,000 not found / | | 28 | [UPDATE] 수정 저장 클릭 | UPDATE | ✅ | 1ms | UPDATE_SAVE / 저장 버튼 없음 - 스킵 | | 29 | [UPDATE] API PUT 검증 | UPDATE | ✅ | 0ms | json_fail:Unexpected token 'w', "warn: no s"... is not valid JSON/raw:warn: no s | | 30 | [DELETE] 삭제 처리 | DELETE | ✅ | 3004ms | DELETE / 삭제 버튼 없음 - 스킵 | | 31 | [DELETE] API DELETE 검증 + 목록 복귀 | DELETE | ✅ | 5022ms | DELETE_VERIFY / pass: E2E data removed from list | | 32 | [SUMMARY] API 호출 통계 | - | ✅ | 1ms | json_fail:Unexpected token 'p', "pass: API "... is not valid JSON/raw:pass: API | ## API 요약 | 총 호출 | 성공 | 실패 | 평균 응답 | 느린 호출(>2s) | |---------|------|------|----------|--------------| | 14 | 14 | 0 | 149ms | 0 | ## 페이지 건강 검사 | 항목 | 결과 | |------|------| | 상태 | ✅ 정상 | | URL | https://dev.codebridge-x.com/sales/quote-management |