From c788960bf263a8522caddba9eb1def29c491944e Mon Sep 17 00:00:00 2001 From: umsangdon Date: Sat, 7 Nov 2026 15:44:05 +0900 Subject: [PATCH] fix(est): create quantity sheets on remote HTTP --- resources/tester/test_est_quantity_workflow.py | 7 +++---- tools/est-test/PLAN.md | 2 ++ tools/est-test/native-quantity.cjs | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/resources/tester/test_est_quantity_workflow.py b/resources/tester/test_est_quantity_workflow.py index d3a1771db..e7f9ec595 100644 --- a/resources/tester/test_est_quantity_workflow.py +++ b/resources/tester/test_est_quantity_workflow.py @@ -76,9 +76,9 @@ def test_create_edit_apply_and_delete_quantity_sheet(): """(()=>{ const handlers={};let id=0; globalThis.document={addEventListener:(name,fn)=>handlers[name]=fn}; - globalThis.crypto={randomUUID:()=>String(++id)};globalThis.confirm=()=>true; + globalThis.confirm=()=>true; const state={quantitySheet:'manual',project:{quantitySheets:[],tables:{EstMainDat:[{Code:'X',Level:0,GN:1}]}}}; - globalThis.EstApp={state,change:fn=>fn(),render:()=>{}}; + globalThis.EstApp={state,uid:()=>String(++id),change:fn=>fn(),render:()=>{}}; EstQuantity.install(); const click=(selector,dataset={})=>handlers.click({target:{closest:s=>s===selector?{dataset}:null}}); const change=(dataset,value)=>handlers.change({target:{dataset,value}}); @@ -114,9 +114,8 @@ def test_insert_and_move_quantity_rows_keeps_item_results_linked(): """(()=>{ const handlers={};let id=0; globalThis.document={addEventListener:(name,fn)=>handlers[name]=fn}; - globalThis.crypto={randomUUID:()=>String(++id)}; const state={quantitySheet:'manual',project:{quantitySheets:[],tables:{EstMainDat:[]}}}; - globalThis.EstApp={state,change:fn=>fn(),render:()=>{}};EstQuantity.install(); + globalThis.EstApp={state,uid:()=>String(++id),change:fn=>fn(),render:()=>{}};EstQuantity.install(); const click=(selector,dataset={})=>handlers.click({target:{closest:s=>s===selector?{dataset}:null}}); click('[data-quantity-new]');click('[data-quantity-add]');click('[data-quantity-add]'); const sheet=state.project.quantitySheets[0]; diff --git a/tools/est-test/PLAN.md b/tools/est-test/PLAN.md index 4d4d11c97..ddfe2464b 100644 --- a/tools/est-test/PLAN.md +++ b/tools/est-test/PLAN.md @@ -1,4 +1,6 @@ ## Codex · EST 독립 테스트 앱 (2026-11-04) +- [x] Tailscale HTTP에서 수량산출서와 산출 행 생성 → 생성·JSON 저장·복원 확인. + - 자체 검증: Tailscale HTTP Edge에서 산출서·행 생성, JSON 저장·재열기 확인. 수량·독립 서버 시험 19개 통과. - [x] 기존 계산 불일치 수량산출서도 품명·규격만 바꿀 때 원본 수량 유지 → 실자료 재열기 확인. - 자체 검증: 설치 main.estx N0000000083의 저장 286·재계산 100.1 불일치 항목에서 품명만 변경한 뒤 원본 수량 286·문서·다른 문서 보존 확인. 저장·서식 시험 2개 통과. - [x] 기존 수량산출 항목의 품명·규격을 ESTX에 저장 → 재열기·다른 항목 보존·연결 변경 차단 확인. diff --git a/tools/est-test/native-quantity.cjs b/tools/est-test/native-quantity.cjs index 4c4d7a1ff..806d289b2 100644 --- a/tools/est-test/native-quantity.cjs +++ b/tools/est-test/native-quantity.cjs @@ -276,7 +276,7 @@ const EstQuantity = (() => { const { state } = EstApp; if (event.target.closest("[data-quantity-new]")) { EstApp.change(() => { - const code = `Q${crypto.randomUUID()}`; + const code = `Q${EstApp.uid()}`; state.project.quantitySheets ||= []; state.project.quantitySheets.push({ Code: code, @@ -293,7 +293,7 @@ const EstQuantity = (() => { const addRow = event.target.closest("[data-quantity-add]"); if (addRow && sheet) { EstApp.change(() => { - const code = `r${crypto.randomUUID()}`; + const code = `r${EstApp.uid()}`; const at = addRow.dataset.index === undefined ? sheet.rows.length