test(B05·B06): 저장 왕복 — 지도에서 끈 관은 화면처럼 속성을 새 측점으로 옮긴 뒤 되붙임

- sub5 고침(끌기 onMove → 시설 보관소 move)을 받은 뒤 본문 만들기도 같은 차례로
- sub5 · sub6 받은 뒤 남은 차이: 관 측점 정수 m 격자 붙이기 4 곳(440.24 · 619.71 · 720.44 ·
  899.91) · B06 저장 차례에서 옮긴 관 측점 횡단 patch 가 받을 행이 없어 버려짐

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeeQRLknEpP4SFjVkjDWDs
This commit is contained in:
2026-09-29 10:02:00 +09:00
co-authored by Claude Opus 5.5
parent 751a5da02c
commit 7dbae140c1
2 changed files with 5 additions and 2 deletions
+3 -1
View File
@@ -1,6 +1,6 @@
// 저장 왕복 시험용 — 화면 TS 를 node 로 묶어 저장 본문을 만든다.
// node helper_b05_save_payload.mjs <저장소 뿌리> · 표준입력 = 작업 목록(JSON) · 표준출력 끝 줄 = 결과 목록
// {op:"attach", entries:[관 응답], points:[{chainage_m, source}]} → attach 결과(DetailPipeInput[])
// {op:"attach", entries:[관 응답], moves:[[옛, 새]], points:[{chainage_m, source}]} → attach 결과
// {op:"station", chainage, interval} → 구조물 측점 칸에 쓰고 다시 읽은 값
// {op:"culvert", server:[관 응답], pending:{측점:조각}, moves:{측점:새 측점}} → PUT 본문 points 또는 null
import fs from "node:fs";
@@ -78,6 +78,8 @@ try {
if (job.op === "attach") {
const store = mod.createFacilityStore();
store.replaceFromResponse(job.entries);
// 지도에서 끈 관 — 화면이 끌기를 마치면 속성을 새 측점으로 옮김(onMove)
for (const [from, to] of job.moves ?? []) store.move(from, to);
results.push(store.attach(job.points));
} else if (job.op === "station") {
const fields = mod.stationFields("측점", () => job.interval);
@@ -301,7 +301,8 @@ class Flow:
}
for p in self.want_pipes
]
(attached,) = _screen([{"op": "attach", "entries": entries, "points": points}])
job = {"op": "attach", "entries": entries, "moves": [self.pipe_move], "points": points}
(attached,) = _screen([job])
return attached
def b06_pipe_payload(self) -> list[dict[str, Any]]: