feat(738-1): M02 들어올 때 단가산출 · 일위대가 = 그 컨테이너 기본 층(개인) 목록표 · 구조물 조합 길 그대로

시험 test_738_m02_entry_personal 추가 · test_m02_precombo_scope 한 건(삭제 확인 글 찾기)은 이 일과 무관한 기존 실패

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-02 18:13:23 +09:00
co-authored by Claude Sonnet 5.5
parent 7f0472e964
commit baeed9d18e
2 changed files with 27 additions and 1 deletions
@@ -339,7 +339,15 @@ export async function renderM02MasterTemplate(root: HTMLElement): Promise<Mounte
);
root.innerHTML = "";
root.append(layout);
void main.open(home());
// 첫 화면(738-1) — 단가산출 · 일위대가로 들어오면 그 컨테이너 기본 층(개인) 단추를 누른 것과 같음
// (층 목록표 · 왼쪽 나무) · 구조물 조합 · 도면 = 집계표
void main.open(
entry.open === "단가산출"
? sangeunList(sk)
: entry.open === "일위대가조합"
? precomboList(pre)
: home(),
);
// 진입 해시 `open` — 옵션 · 도면 컨테이너는 마스터에만 ·
// 옵션 화면이 뒤에 열리면 편집 칸 차례(`seq`)가 늦게 온 집계표를 버림
if (entry.open !== "구조물조합") side.reveal(entry.open);
@@ -0,0 +1,18 @@
"""738-1 — M02 첫 화면: 단가산출 · 일위대가로 들어오면 그 컨테이너 기본 층 목록표, 그 밖은 집계표."""
from pathlib import Path
PAGE = Path("M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts").read_text(encoding="utf-8")
def test_첫_화면은_들어온_컨테이너의_층_목록표():
start = PAGE.index("void main.open(\n entry.open")
block = PAGE[start : start + 220]
assert 'entry.open === "단가산출"' in block and "sangeunList(sk)" in block
assert 'entry.open === "일위대가조합"' in block and "precomboList(pre)" in block
assert "home()" in block # 구조물 조합 · 도면 = 집계표 그대로
def test_단가산출_층_기본은_개인():
assert 'let sk = preScope("personal")' in PAGE
assert "let pre = preScope(entry.pre ?? defaultRoot(user))" in PAGE