feat(M02): 면적산출 알약 = 일위대가 pills 길 — 로직 물량 「이름|단위」 + 자재 「자재|MT키」 · 다 고정 · 선택 입력 알약 빠짐 (PLAN 39-4 D7)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W4uKaV4ZBhsJN4GHG7yRj4
This commit is contained in:
2026-10-04 17:52:05 +09:00
co-authored by Claude Opus 5.5
parent ba1658de68
commit d21f258da6
3 changed files with 43 additions and 18 deletions
@@ -89,3 +89,15 @@ def test_면적산출_카드_알약_줄_켬끔_기본_숨김():
assert '"m02-card-pills": { bucket: "pref", scope: "global" },' in state
# 상세(전체 편집기)는 켬끔 없음 — 늘 보임
assert "is-pills-off" not in _text(M02 / "M02_MasterTemplete_UI_Main.ts")
def test_면적산출_알약은_일위대가_pills_길():
"""39-4 D7 — 로직 물량 「이름|단위」 + 자재 「자재|MT키」 · 다 고정 · 선택 입력 알약 빠짐."""
struct = _text(M02 / "M02_MasterTemplete_Structure.ts")
pills = struct.split("export async function pillsFor")[1].split("async function cardLinks")[0]
area = pills.split('if (kind === "material")')[1].split("\n }\n", 1)[1]
assert "await fetchLaborPills(column)" in area
assert "고정: true" in area and "...(p.자재 ? { 자재: p.자재 } : {})" in area
assert "inputPills" not in area and "fetchComboInputs" not in struct
api = _text(M02 / "M02_MasterTemplete_Api_Fetch.ts")
assert "/layers/${activeLayer}/labor/${enc(column)}/pills" in api