# ✅ E2E 테스트 성공: 기안함 테스트 **테스트 ID**: draft-box | **실행**: 2026-03-07_22-04-53 | **결과**: PASS **소요 시간**: 12.7초 ## 테스트 요약 | 전체 | 성공 | 실패 | 경고 | 성공률 | |------|------|------|------|--------| | 17 | 15 | 0 | 2 | 88% | ## 전체 스텝 결과 | # | 스텝 | Phase | 상태 | 소요시간 | 비고 | |---|------|-------|------|---------|------| | 1 | 메뉴 진입: 결재관리 > 기안함 | - | ✅ | 2512ms | Menu navigation: 결재관리 > 기안함 | | 2 | URL 검증 | - | ✅ | 0ms | URL verified: https://dev.codebridge-x.com/approval/draft | | 3 | 필수 검증 #5: 목업 페이지 감지 | - | ✅ | 1ms | Real page: 1 inputs, 39 buttons | | 4 | 통계 카드 확인 | - | ✅ | 0ms | Checks: 4/4 verified | | 5 | 기안함 테이블 구조 확인 | - | ✅ | 0ms | Table: 8 cols, 2 rows | | 6 | 목록 필터 테스트 | - | ✅ | 1ms | json_fail:Unexpected token 'F', "Filters found: 4" is not valid JSON/raw:Filters | | 7 | 데이터 로드 확인 | - | ⚠️ | 1502ms | Detail checks: 0/1 matched | | 8 | [SEARCH] 검색 기능 테스트 | SEARCH | ✅ | 215ms | Filled "input[type='search'], input[placeholder*='검색']" with "테스트" | | 9 | [SEARCH] 검색 결과 확인 | SEARCH | ⚠️ | 1517ms | Detail checks: 0/1 matched | | 10 | [SEARCH] 검색 초기화 | SEARCH | ✅ | 313ms | Clicked (existed): button:has-text('초기화'), button:has-text('전체'), button[class*= | | 11 | 필터 기능 테스트 | - | ✅ | 303ms | Clicked (existed): select, [role='combobox'], button:has-text('임시저장') | | 12 | [READ] 문서 상세 보기 | READ | ✅ | 301ms | Clicked (existed): table tbody tr:first-child td:nth-child(2), table tbody tr:fi | | 13 | 상세 페이지/모달 확인 | - | ✅ | 0ms | Checks: 2/2 verified | | 14 | 모달/상세 닫기 | - | ✅ | 1ms | No modal open | | 15 | 페이지네이션 확인 | - | ✅ | 0ms | Checks: 1/1 verified | | 16 | 문서 작성 버튼 확인 | - | ✅ | 0ms | Checks: 1/1 verified | | 17 | 콘솔 에러 확인 | - | ✅ | 0ms | Element exists: body | ## API 요약 | 총 호출 | 성공 | 실패 | 평균 응답 | 느린 호출(>2s) | |---------|------|------|----------|--------------| | 1 | 1 | 0 | 74ms | 0 | ## 페이지 건강 검사 | 항목 | 결과 | |------|------| | 상태 | ✅ 정상 | | URL | https://dev.codebridge-x.com/approval/draft |