- 354-1 자기 판 · 머리줄(f79a33ef3) · 367-2 접음 높이 0 · 367-6 범례 비킴을 손으로 되돌림(이력 그대로)
- 판 끌기 = 종단 · 유토 · 표 세 영역 같은 비율 · 놓을 때 유토 · 표 높이 확정
- 유토 손잡이 = 판 위 경계 밖 · 표 손잡이와 ±44 px 나란히 · 접기 = 숨김 · 표 판 = 열린 유토 위 쌓임
- 남김 = 유토 · 배수 [창 분할](유토는 판 좌상단 = 펼친 때만) · 367-1 늘 전체 맞춤 · 367-5 · 354-3 · 325-2
- 시험 test_354_1 다시 씀(세 영역 비례 · 손잡이 자리) · test_367_6 다시 씀(손잡이 = 판 밖 · 나란히) · 224_1b · 224_1c · 230_2 · 367_5 맞춤
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Se7ytqbohmBQnfYpwYFnYf
67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""224-1b(PLAN 325-2) 유토곡선 판 「붙어 있음」 판정 · 방향키.
|
||
|
||
- 높이 나눔 · 끌기는 「열림 && 종단 뿌리 안」만 자리를 줌 — 새 창으로 뗀 유토 판은 메인 자리 0 ·
|
||
임시 축소 인라인 높이도 안 씀(뗀 창 높이가 굳지 않게).
|
||
- 뗀 유토 판(`is-popout`)은 메인 보이는 구간 세로 범위(viewRange)를 안 씀 — 노선 전체 세로.
|
||
- 방향키 ←→ 판정은 마지막 누름이 종단 뿌리 · 뗀 유토 · 뗀 배수 판 안이면 종단도 몫.
|
||
|
||
`helper_224_1b_masshaul_docked.cjs` 가 진짜 TS 를 가짜 DOM 위에서 돌림.
|
||
"""
|
||
|
||
import json
|
||
import os
|
||
import subprocess
|
||
from pathlib import Path
|
||
|
||
import pytest
|
||
|
||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||
B05 = Path(HERE).parents[1] / "B05_Profile"
|
||
|
||
|
||
@pytest.fixture(scope="module")
|
||
def r():
|
||
proc = subprocess.run(
|
||
["node", os.path.join(HERE, "helper_224_1b_masshaul_docked.cjs")],
|
||
capture_output=True,
|
||
text=True,
|
||
encoding="utf-8",
|
||
timeout=60,
|
||
)
|
||
assert proc.returncode == 0, proc.stderr
|
||
return json.loads(proc.stdout)
|
||
|
||
|
||
def test_붙은_유토는_자리를_차지(r):
|
||
"""본문 400 − 알약 40 = 360 · 유토 300 은 예산 247 넘어 247 로 줄고 그래프 100."""
|
||
assert r["docked"] == {"chartHeight": 100, "inline": "247px"}
|
||
|
||
|
||
def test_뗀_유토는_자리_0_인라인_없음(r):
|
||
assert r["popped"] == {"chartHeight": 347, "inline": ""}
|
||
|
||
|
||
def test_방향키_판정(r):
|
||
assert r["arrows"] == {
|
||
"profile": True,
|
||
"mass": True,
|
||
"drainage": True,
|
||
"card": False,
|
||
"none": False,
|
||
}
|
||
|
||
|
||
def test_끌기도_같은_판정():
|
||
drag = (B05 / "B05_Profile_UI_Profile_Drag.ts").read_text(encoding="utf-8")
|
||
assert "massHaul.overlay.hidden" in drag # 판정 함수 한 곳에만
|
||
assert drag.count("massHaul.overlay.hidden") == 1
|
||
assert drag.count("massDocked()") == 3
|
||
assert "root.contains(massHaul.overlay)" in drag
|
||
|
||
|
||
def test_뗀_유토는_노선_전체_세로():
|
||
mass = (B05 / "B05_Profile_UI_Profile_MassHaul.ts").read_text(encoding="utf-8")
|
||
# 367-1 붙음 · 뗌 모두 노선 전체 세로
|
||
assert "viewRange: undefined," in mass
|