Files
Aislo/resources/tester/test_345_5_plan_full_overlay.py
T

71 lines
3.2 KiB
Python

"""345-5 사용자 의견(요구 233) — 종단 보기 평면 = 가운데 전체 영역 · 아래 종단 판 = 뜬 판 ·
노선 편집 안 「원지반선 · 계획 종단선」 띠 없음 · 아래 종단 판 종단 그래프는 그대로.
꼴은 글로 봄(화면 확인은 브레인).
./venv/Scripts/python.exe -m pytest resources/tester/test_345_5_plan_full_overlay.py -q
"""
from __future__ import annotations
import re
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
def _read(rel: str) -> str:
return (ROOT / rel).read_text(encoding="utf-8")
def _block(css: str, selector: str) -> str:
found = re.search(rf"^{re.escape(selector)} \{{([^}}]*)\}}", css, re.M)
assert found, selector
return found.group(1)
def test_평면은_가운데_전체_영역():
page = _read("A00_Common/design/design_page.css")
main = _block(page, ".design-page__main")
assert "position: relative;" in main and "height: 100%;" in main
assert "flex: 1 1 auto;" in _block(page, ".design-page__center")
# 종단 보기에서 판을 흐름에 세우는 규칙 없음 — 가운데가 위아래 끝까지
flow = re.findall(r"^(\.design-page__main[^{\n]*\.b05-route-profile) \{", page, re.M)
assert flow == [
'.design-page__main[data-view="cross"] > .design-page__profile > .b05-route-profile'
]
route = _read("B05_Profile/B05_Profile_UI_Style_RouteEdit.css")
assert "flex: 1 1 auto;" in _block(route, ".b05-routeedit")
assert "flex: 1 1 auto;" in _block(route, ".b05-routeedit__canvas-wrap")
# 캔버스 크기 = 칸 크기(ResizeObserver) · 평면은 가운데 칸에 붙음
editor = _read("B05_Profile/B05_Profile_UI_RouteEdit.ts")
assert "new ResizeObserver(() => resize())" in editor
assert (
'sizeWatch.observe(overlay.querySelector<HTMLElement>(".b05-routeedit__canvas-wrap")!)'
in editor
)
view = _read("A00_Common/design/design_view_profile.ts")
assert "center.append(mainContent);" in view
assert "mountRouteEditor(mainContent, host, activeProjectId, rebuildAfterReplan," in view
def test_종단_판은_평면_위_뜬_판():
style = _read("B05_Profile/B05_Profile_UI_Style.css")
panel = _block(style, ".b05-route-profile")
for line in ("position: absolute;", "z-index: 3;", "bottom: 0;", "left: 0;", "right: 0;"):
assert line in panel
# 끌어 높이 · 접기 · 새 창 떼기 그대로
assert "height: var(--b05-profile-height, 60dvh);" in panel
assert ".b05-route-profile.is-collapsed > .ui-resizer" in style
page = _read("A00_Common/design/design_page.css")
assert "position: relative;" in _block(page, ".b05-route-profile.is-popout")
def test_띠_없음_종단_그래프_있음():
chrome = _read("B05_Profile/B05_Profile_UI_RouteEdit_Chrome.ts")
assert "data-strip" not in chrome
assert not (ROOT / "B05_Profile/B05_Profile_UI_RouteEdit_ProfileStrip.ts").exists()
# 아래 종단 판(종단 그래프 · 표 · 유토곡선)은 그대로 세움
view = _read("A00_Common/design/design_view_profile.ts")
assert "const profilePanel = createRouteProfilePanel(" in view
assert (ROOT / "B05_Profile/B05_Profile_UI_Profile_Panel.ts").exists()