diff --git a/resources/tester/test_est_native_export.py b/resources/tester/test_est_native_export.py index 55e199385..e7f985b49 100644 --- a/resources/tester/test_est_native_export.py +++ b/resources/tester/test_est_native_export.py @@ -182,18 +182,20 @@ def test_estx_quantity_edit_preserves_other_documents_and_indexes_when_sample_ex pytest.skip("installed EST main sample unavailable") script = """const fs=require('fs'),m=require('./tools/est-test/import-estx.cjs'),e=require('./tools/est-test/export-estx.cjs'); const bytes=fs.readFileSync(process.argv[1]),p=m.importEstx(bytes),first=p.quantitySheets[0]; + first.items[0].Name='changed name';first.items[0].Size='changed size'; first.rows[0].LineData=first.rows[0].LineData.replace('표준','시험 표준'); const index=first.rows.findIndex(r=>r.LineData.includes('B = 9.00')); if(index<0)throw Error('기준 폭 행 없음'); first.rows[index].LineData=first.rows[index].LineData.replace('9.00','10.00'); const out=e.exportEstx(p),q=m.importEstx(out),a=m.unzip(bytes),b=m.unzip(out); const unchanged=[...a].filter(([k])=>k.endsWith('.idx')||k.startsWith('cad')).every(([k,v])=>v.equals(b.get(k))); - process.stdout.write(JSON.stringify({line:q.quantitySheets[0].rows[0].LineData,quantity:q.quantitySheets[0].items[0].GN,result:q.quantitySheets[0].rows.find(r=>r.markers.includes('r000000')).LineData,others:JSON.stringify(q.quantitySheets.slice(1))===JSON.stringify(p.quantitySheets.slice(1)),unchanged}));""" + process.stdout.write(JSON.stringify({line:q.quantitySheets[0].rows[0].LineData,quantity:q.quantitySheets[0].items[0].GN,name:q.quantitySheets[0].items[0].Name,size:q.quantitySheets[0].items[0].Size,result:q.quantitySheets[0].rows.find(r=>r.markers.includes('r000000')).LineData,others:JSON.stringify(q.quantitySheets.slice(1))===JSON.stringify(p.quantitySheets.slice(1)),unchanged}));""" result = json.loads( subprocess.check_output(["node", "-e", script, str(sample)], cwd=ROOT).decode("utf-8") ) assert "시험 표준" in result["line"] assert result["quantity"] == 116 + assert result["name"] == "changed name" and result["size"] == "changed size" assert "\x12116\x12" in result["result"] assert result["others"] and result["unchanged"] diff --git a/tools/est-test/PLAN.md b/tools/est-test/PLAN.md index 3689a8573..4d4d11c97 100644 --- a/tools/est-test/PLAN.md +++ b/tools/est-test/PLAN.md @@ -3,6 +3,7 @@ - 자체 검증: 설치 main.estx N0000000083의 저장 286·재계산 100.1 불일치 항목에서 품명만 변경한 뒤 원본 수량 286·문서·다른 문서 보존 확인. 저장·서식 시험 2개 통과. - [x] 기존 수량산출 항목의 품명·규격을 ESTX에 저장 → 재열기·다른 항목 보존·연결 변경 차단 확인. - 자체 검증: 설치 main.estx 기존 항목의 품명·규격 저장·재열기, 다른 항목·문서 보존과 연결 변경 차단 확인. 저장·수량 관련 시험 22개 통과. + - 추가 검증: 품명·규격과 산식을 함께 수정한 ESTX의 수량 104→116, 다른 문서·인덱스 보존 확인. - [x] 인쇄 서식의 상·하·좌·우 여백 개별 설정과 ESTX 저장 → 기존 단일 여백 호환·실제 서식 재읽기 확인. - 자체 검증: 거창 ESTX 여백 13·14·15·16mm 미리보기·JSON 저장과 기존 단일 여백 호환을 Edge에서 확인. 설치 샘플 ESTX 저장·재읽기 포함 관련 시험 24개 통과. - [x] 산출근거 계산 오류에서 해당 행으로 이동 → 실무 ESTX 오류와 중복 코드 안전 처리 확인.