feat(m02): 자재목록 세 칸 기본값 — 「일반」 지움 · 빈 칸 사급 · 별도계상 · 포함 · 별도계상이면 운반비 꺼짐(162-1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SE9MxeXTu2uaDZ55BJowAY
This commit is contained in:
@@ -4,6 +4,8 @@
|
||||
로직 자재 = 로직 줄 `자재표시 {호표 차례: 세 칸}`(차례가 재료 줄인 것만 · 틀려도 400 아님)
|
||||
- 기준합 · 반영합 그대로 · 저장 왕복에 남음 · 화면 `normalizeLabor` 도 같은 규칙(Node 헬퍼)
|
||||
- 화면 칸 부품 = 새 파일 · 사용자 줄 · 로직 줄 같은 칸 · 사전조합 줄엔 안 넘김(소스 검사)
|
||||
- 162-1 = 「일반」 지움(관급 · 사급) · 빈 칸 = 읽을 때 기본(사급 · 별도계상 · 포함 · 저장은 비움) ·
|
||||
옛 「일반」 = 사급으로 읽음 · 별도계상이면 운반비 드롭다운 꺼짐(값 그대로)
|
||||
"""
|
||||
|
||||
import json
|
||||
@@ -116,7 +118,7 @@ def _src(name):
|
||||
|
||||
def test_화면_칸_부품_사용자_줄_로직_줄_같은_칸():
|
||||
marks = _src("M02_MasterTemplete_Labor_MatMarks.ts")
|
||||
assert '{ value: "", text: "—" }' in marks
|
||||
assert '"—"' not in marks # 「—」 항목 없음(162-1)
|
||||
assert "e.stopPropagation()" in marks # 줄 누름과 따로
|
||||
rows = _src("M02_MasterTemplete_Labor_Rows.ts")
|
||||
assert "...markCells(mat, on?.mark" in rows and "...markHeads()," in rows
|
||||
@@ -128,3 +130,35 @@ def test_화면_칸_부품_사용자_줄_로직_줄_같은_칸():
|
||||
api = _src("M02_MasterTemplete_Labor_Api.ts")
|
||||
for key, allowed in labor.MARKS.items():
|
||||
assert f"{key}: [{', '.join(json.dumps(v, ensure_ascii=False) for v in allowed)}]" in api
|
||||
|
||||
|
||||
def test_빈_칸_기본값_허용_값_그대로():
|
||||
assert labor.MARK_DEFAULT == {"자재구분": "사급", "별도계상": "별도계상", "운반비": "포함"}
|
||||
assert {k: labor.mark_of({}, k) for k in labor.MARKS} == labor.MARK_DEFAULT
|
||||
assert {k: labor.mark_of(MARKS, k) for k in labor.MARKS} == MARKS
|
||||
assert labor.mark_of(None, "운반비") == "포함"
|
||||
|
||||
|
||||
def test_옛_일반은_사급으로_읽음():
|
||||
assert "일반" not in labor.MARKS["자재구분"]
|
||||
got = labor.clean(
|
||||
_doc(
|
||||
담은로직=[{"로직": NET, "자재표시": {"3": {"자재구분": "일반", "운반비": "미포함"}}}],
|
||||
자재=[{"코드": WIRE, "자재구분": "일반"}],
|
||||
)
|
||||
)
|
||||
assert got["담은로직"][0]["자재표시"] == {"3": {"운반비": "미포함"}} # 저장은 채우지 않음
|
||||
assert "자재구분" not in got["자재"][0]
|
||||
assert labor.mark_of(got["자재"][0], "자재구분") == "사급"
|
||||
assert labor.mark_of({"자재구분": "일반"}, "자재구분") == "사급"
|
||||
|
||||
|
||||
def test_화면_기본값_한_벌_운반비_꺼짐():
|
||||
api = _src("M02_MasterTemplete_Labor_Api.ts")
|
||||
for key, v in labor.MARK_DEFAULT.items():
|
||||
assert f'{key}: "{v}",' in api.split("MAT_MARK_DEFAULT")[1].split("};")[0]
|
||||
marks = _src("M02_MasterTemplete_Labor_MatMarks.ts")
|
||||
assert "value[key] ?? MAT_MARK_DEFAULT[key]" in marks
|
||||
assert 'picks.운반비.disabled = sep === "별도계상"' in marks
|
||||
assert "haulOff(value.별도계상 ?? MAT_MARK_DEFAULT.별도계상)" in marks
|
||||
assert '일반: "Mark_General"' not in marks
|
||||
|
||||
Reference in New Issue
Block a user