feat(est-test): 단추 없던 동작 4개 메뉴 연결
- 레벨 일괄 증가·감소, 원가계산서 초기화, 설계변경 초기화 단추 추가 - 처리기마다 단추 유무를 보는 지킴 시험 추가 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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 == []
|
||||
@@ -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 실행 비교는 하지 못했다.
|
||||
|
||||
|
||||
@@ -112,6 +112,9 @@
|
||||
><button data-action="level" data-level="7">LEVEL 7</button
|
||||
><button data-action="level" data-level="8">LEVEL 8</button
|
||||
><button data-action="level" data-level="9">LEVEL 9</button>
|
||||
<hr />
|
||||
<button data-action="level-batch-up">선택 행 레벨 일괄 증가</button
|
||||
><button data-action="level-batch-down">선택 행 레벨 일괄 감소</button>
|
||||
</div>
|
||||
</details>
|
||||
<details>
|
||||
@@ -128,7 +131,8 @@
|
||||
<div class="menu">
|
||||
<button data-view="Wonga">원가계산서 보기</button
|
||||
><button data-action="template">원가 서식 선택</button
|
||||
><button data-action="settings">자릿수·도급액 고정</button>
|
||||
><button data-action="settings">자릿수·도급액 고정</button
|
||||
><button data-action="reset-wonga">원가계산서 초기화</button>
|
||||
</div>
|
||||
</details>
|
||||
<details>
|
||||
|
||||
@@ -92,6 +92,7 @@ const EstExtra = (() => {
|
||||
button("recalculate-original", "당초 단가 재계산") +
|
||||
button("bid-rates", "낙찰률 적용") +
|
||||
button("restore-bid", "당초단가(100%) 복원") +
|
||||
button("reset-change", "설계변경 초기화") +
|
||||
button("change-prev", "이전", state.changePage === 0 ? "disabled" : "") +
|
||||
`<span>${state.changePage + 1} / ${page.pages}쪽 · ${page.total}행</span>` +
|
||||
button("change-next", "다음", state.changePage + 1 >= page.pages ? "disabled" : ""),
|
||||
|
||||
Reference in New Issue
Block a user