diff --git a/tools/est-test/PLAN.md b/tools/est-test/PLAN.md index 9901954e9..1f42c0e20 100644 --- a/tools/est-test/PLAN.md +++ b/tools/est-test/PLAN.md @@ -1,4 +1,6 @@ ## Codex · EST 독립 테스트 앱 (2026-11-04) +- [x] Excel 파일 읽는 동안 파일·셀 선택이 바뀌면 이전 요청 반영 차단 → 지연 응답 시험. + - 자체 검증: 지연된 Tailscale HTTP 응답 동안 셀과 파일을 각각 변경하면 이전 요청 반영이 차단되고 다시 실행은 성공. 수량 시험 12개 통과. - 자체 검증: 수량·Excel·설계변경·기성·물가변동·연차·문서·오류 기능 회귀 69개 통과(openpyxl 경고 8건). 원본 동등성 대조는 실행하지 않음. - [x] 계산 불일치 수량산출서의 계산값을 바꾸지 않는 문구 수정 저장 → 원본 수량·표지 보존과 수량 변경 차단 확인. - 자체 검증: main.estx N0000000083 문구를 수정해 저장·재열기한 뒤 원래 수량 286과 다른 행 보존. 산식 계산값·결과 표지 변경 차단, 기존 산식 저장 시험 통과. diff --git a/tools/est-test/native-quantity.cjs b/tools/est-test/native-quantity.cjs index 74c80bbe5..1fce26fb1 100644 --- a/tools/est-test/native-quantity.cjs +++ b/tools/est-test/native-quantity.cjs @@ -395,7 +395,8 @@ const EstQuantity = (() => { if ( state.project !== project || state.revision !== revision || - document.getElementById("quantity-excel-refresh-file") !== input + document.getElementById("quantity-excel-refresh-file") !== input || + input.files[0] !== file ) throw Error("파일을 읽는 동안 작업이 바뀌었습니다. 다시 선택하세요."); const updates = excelUpdates(project, file.name, files); @@ -432,6 +433,10 @@ const EstQuantity = (() => { state.project !== project || state.revision !== revision || document.getElementById("quantity-excel-file") !== fileInput || + fileInput.files[0] !== file || + document.getElementById("quantity-excel-sheet")?.value.trim() !== name || + document.getElementById("quantity-excel-cell")?.value !== address || + document.getElementById("quantity-excel-target")?.value !== selected || project.tables.EstMainDat[Number(selected)] !== row ) throw Error("파일을 읽는 동안 작업이 바뀌었습니다. 다시 선택하세요.");