"""748-0 지킴 — SK 둘째 기초 세부 품 = M01 원문(머리 수량 안 곱함) · 고침 꼴 · 빼기 기억 · 되살림 · 수량 처음값. (서버 짝 = `test_744_1_sk_detail_undo.py`)""" from __future__ import annotations import json import subprocess from pathlib import Path import pytest HERE = Path(__file__).resolve().parent def test_세부_원문_품_고침_빼기_되살림_처음값(): proc = subprocess.run( # noqa: S603 — 고정 실행 파일 ["node", str(HERE / "helper_748_0_sk_undo.cjs")], capture_output=True, text=True, encoding="utf-8", timeout=60, ) assert proc.returncode == 0, proc.stderr out = json.loads(proc.stdout) assert float(out["shownQty"]) == pytest.approx(0.871) # 곱하지 않은 M01 원문 assert out["lineQty"] == pytest.approx(0.871) assert out["lineAmount"] == pytest.approx(871) # 상자 몫은 그대로 assert out["t"] == 1 assert out["cover"]["labor:LB000101#0"]["qty"] == pytest.approx(0.9) # 머리 수량 안 나눔 assert out["coverShown"] == pytest.approx(0.9) # 다시 그려도 같음 assert out["manQty"] == 5 and out["manBack"] == 2 # [되돌림] = 넣을 때 수량 drop = out["afterDrop"] assert drop["adds"] == 1 and drop["gone"][0]["차례"] == 0 assert drop["pick"] == {"add:#0": "MT1"} # 뒤 더한줄 열쇠 당김 assert out["goneRows"][0]["cid"] == "gone:0" back = out["afterBack"] assert back["adds"] == ["LB000002", "GF000316"] and back["gone"] is None assert back["pick"] == {"add:#1": "MT1"} # 되살림 = 밂 assert out["baseGone"] == {"adds": 1, "name": "둘째 기초", "pick": {}} assert out["baseBack"] == ["LB000002", "GF000316"]