Files
Aislo/resources/tester/test_136_3_remove_button.py
T
eomsangdonandClaude Opus 5.5 4bb72b5987 fix(M02): [재적용] 가져온이 새로 적음 · M02 미리보기 이름표 [삭제] 작은 단추 틀(142-2 · 136-3 뒤처리)
- reapply(who) · 라우터가 세션 가져온이를 넘김
- M02_SO_Style.css 미리보기 상자 이름표 단추 = B05 작은 단추 틀과 같은 꼴
- 시험: test_item_copy_complete 재적용 가져온이 · test_136_3 M02 규칙

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015sDZSjFvoiDjdGpgj3muc3
2026-10-09 15:11:32 +09:00

52 lines
2.0 KiB
Python

"""136-3 상자 이름표 [빼기] → [삭제] · 「구조물 조합」 [선택]과 같은 작은 단추 틀 ·
흐림은 이름표 글에만.
공용 명세 폼(`design_structure_form.ts`)을 그 자리에서 돌린 값
(`helper_54_10_soil_tiers.cjs` 의 `remove`) + CSS 규칙(`B05_Profile_UI_Style_Structures.css`).
"""
import json
import subprocess
from pathlib import Path
import pytest
HERE = Path(__file__).parent
ROOT = HERE.parents[1]
CSS = (ROOT / "B05_Profile" / "B05_Profile_UI_Style_Structures.css").read_text(encoding="utf-8")
def _rule(selector: str) -> str:
"""선택자부터 그 규칙 끝(`}`)까지."""
at = CSS.index(selector)
return CSS[at : CSS.index("}", at)]
@pytest.mark.skipif(not (ROOT / "config" / "node_modules").is_dir(), reason="의존성 미설치")
def test_이름표_단추_글은_삭제():
done = subprocess.run( # noqa: S603 — 고정 실행 파일
["node", str(HERE / "helper_54_10_soil_tiers.cjs")],
capture_output=True,
text=True,
encoding="utf-8",
)
assert done.returncode == 0, done.stderr
remove = json.loads(done.stdout)["remove"]
assert {"id": "chute_add", "text": "삭제", "title": "도수로/돌붙임 상자 삭제"} in remove
assert all(b["text"] == "삭제" for b in remove)
def test_이름표_단추는_작은_단추_틀_흐림은_글에만():
small = _rule(".b05-structure__group > legend > button")
assert ".b05-structure__group-body button:not(.b05-structure__step)" in CSS
assert "height: var(--b05-control-h)" in small and "padding-block: 0" in small
legend = _rule(".b05-structure__group > legend {")
assert "opacity" not in legend and "currentColor 80%" in legend
def test_M02_미리보기_이름표_단추도_작은_단추_틀():
css = (ROOT / "M02_MasterTemplete" / "StructOptions" / "M02_SO_Style.css").read_text("utf-8")
at = css.index(".m02-sod__block .b05-structure__group > legend > button")
rule = css[at : css.index("}", at)]
assert "height: 26px" in rule and "padding-block: 0" in rule