diff --git a/resources/tester/test_est_action_bindings.py b/resources/tester/test_est_action_bindings.py new file mode 100644 index 000000000..4b9f10277 --- /dev/null +++ b/resources/tester/test_est_action_bindings.py @@ -0,0 +1,25 @@ +"""EST 테스트 앱: 처리기가 있는 화면 동작은 모두 단추·메뉴로 부를 수 있어야 함.""" + +import re +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[2] / "tools" / "est-test" + + +def test_every_handled_action_has_a_trigger(): + sources = {p.name: p.read_text(encoding="utf-8") for p in ROOT.glob("native-*.js")} + sources["index.html"] = (ROOT / "index.html").read_text(encoding="utf-8") + handled = set() + for text in sources.values(): + handled.update(re.findall(r'name === "([a-z0-9-]+)"', text)) + assert handled + unbound = [] + for name in sorted(handled): + uses = sum( + len(re.findall(rf'"{re.escape(name)}"', text)) + - len(re.findall(rf'name === "{re.escape(name)}"', text)) + for text in sources.values() + ) + if uses <= 0: + unbound.append(name) + assert unbound == [] diff --git a/tools/est-test/PLAN.md b/tools/est-test/PLAN.md index c3cf5b014..d772aa9f3 100644 --- a/tools/est-test/PLAN.md +++ b/tools/est-test/PLAN.md @@ -423,6 +423,10 @@ ative-standard.js에 표준시장단가 원천(SilJukDat)과 내역 행(EstMainD - 백그라운드 상태 감시 및 자동 알림: `tools/est-test/monitor.cjs`를 통해 15초 주기로 `orca.exe` CLI(`shell: false`, timeout 4~5s)를 호출하여 CODEX 워크트리의 안티그래비티 작업 상태와 EST 5175 서버 헬스를 조회하고, 상태 변경 시에만 `monitor.log`에 기록(최대 512KB 순환). 안티그래비티 완료/대기 전이 시 Codex Orchestration Run(`run_cdb1558b9280`)으로 단발성 자동 알림(`status`/`messageId=msg_2c7bca748f91`)이 실제 전달됨을 확인(중복 폭주 방지 플래그 적용, 민감 환경변수 미기록, 재시작/자동지시 없음). ## Codex · EST 독립 테스트 앱 (2026-11-04) +- [ ] 원본 메뉴·단추 대조(CAD 제외 약 880개)에서 나온 핵심 미구현 처리. 대조표 = 작업 폴더 `tmp/est-audit/gap_*.md`. + - [x] 처리기만 있고 단추가 없던 동작 4개 연결 — 레벨 일괄 증가·감소(LEVEL 메뉴), 원가계산서 초기화(원가계산서 메뉴), 설계변경 초기화(설계변경 화면). 처리기마다 단추가 있는지 보는 지킴 시험 `test_est_action_bindings.py` 추가. + - 검증완료: 옛 코드에서 시험 실패(4개 검출)·새 코드 통과, `test_est_row_actions.py` 포함 16개 통과. ORCA 브라우저에서 두 행 레벨 2→3→2 왕복·되돌리기 복원, 원가 초기화 확인창, 당초 없음 차단 문구 확인. + - [x] 연차 수수료의 원본 연결값 `LinkIndex_`가 57로 보존된 경우 ESTX 재열기에서 원가 계산에 반영하고, 없는 경우 저장 차단을 유지한다. - 자체 검증: 설치 sample의 조달수수료 2건을 연차 사본으로 저장하고 관급 수수료 제외 옵션을 켠 상태에서 재열어 원가 전 항목과 인덱스 바이트가 일치함을 확인. 기존 연결값이 없는 경우 저장 거부. 연차·기성·인덱스 관련 통합 회귀 43개 통과. `99`·고정 행·기존 연결값 `57` 조합에만 적용하며 원본 EST 실행 비교는 하지 못했다. diff --git a/tools/est-test/index.html b/tools/est-test/index.html index ab70a52af..1b966ed3f 100644 --- a/tools/est-test/index.html +++ b/tools/est-test/index.html @@ -112,6 +112,9 @@ > +