57 lines
2.7 KiB
Python
57 lines
2.7 KiB
Python
"""PLAN 636-2 — 「추천노선」 메뉴 · 선 그리기 공용 · 예정노선 가이드 선(요구 546).
|
|
|
|
- 공용 `map_route_preview` = 메뉴(compass · 「끔」 · data-act) + 노랑 · 검은 테 선 — B05 · 예정노선이 같이 씀.
|
|
- 도구 표 `recommend` 줄 = 두 페이지 · 호버 「추천노선」.
|
|
- 예정노선 = 「가이드 선(지점 잇기)」 하나 · 20 m · ±14 % 고정 · 급경사 문턱 = 범위 둘째 경계 · 저장 · 서버 없음.
|
|
- B05 = 저장본 넷 그대로 · 가이드 항목 없음.
|
|
|
|
./venv/Scripts/python.exe -m pytest resources/tester/test_636_2_guide_screen.py -q
|
|
"""
|
|
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
read = lambda *parts: ROOT.joinpath(*parts).read_text(encoding="utf-8") # noqa: E731
|
|
|
|
|
|
def test_공용_메뉴_그리기() -> None:
|
|
src = read("A00_Common", "map", "map_route_preview.ts")
|
|
assert 'icon: "compass"' in src and 'offLabel: "끔"' in src
|
|
assert 'dataset.act = "recommend"' in src and "--draw-map-sketch" in src
|
|
for name in (
|
|
"B05_Profile/B05_Profile_UI_RouteEdit_RecPreview.ts",
|
|
"D03_PlanAnalysis/D03_PlanAnalysis_UI_Guide.ts",
|
|
):
|
|
page = read(name)
|
|
assert "createRoutePreviewMenu({" in page and "paintRoutePreview(" in page, name
|
|
assert "createPickMenu" not in page, name
|
|
|
|
|
|
def test_도구_표_두_페이지() -> None:
|
|
src = read("A00_Common", "map", "map_toolbar.ts")
|
|
row = src[src.index('key: "recommend"') :]
|
|
row = row[: row.index("}")]
|
|
assert 'title: "추천노선"' in row and "pages: BOTH" in row
|
|
assert "recommend: events.recommend" in read("D03_PlanAnalysis", "D03_PlanAnalysis_UI_Map.ts")
|
|
|
|
|
|
def test_예정노선_가이드_고정값_보기만() -> None:
|
|
src = read("D03_PlanAnalysis", "D03_PlanAnalysis_UI_Guide.ts")
|
|
assert "GUIDE_STEP_M = 20" in src and "GUIDE_MAX_GRADE = 0.14" in src
|
|
assert 'label: "가이드 선(지점 잇기)"' in src
|
|
assert "guideRoute(" in src and "guideTerrainFromGrid(" in src and "readSlopeBands()" in src
|
|
assert "count >= 2" in src # 지점 둘 이상일 때만
|
|
for banned in ("fetch(", "writeState", "sessionStorage", "constraint"):
|
|
assert banned not in src, banned
|
|
page = read("D03_PlanAnalysis", "D03_PlanAnalysis_UI_Page.ts")
|
|
assert (
|
|
"recommend: guide.root" in page and "guide.layer" in page and "guide: guide.state" in page
|
|
)
|
|
assert len(page.splitlines()) <= 700
|
|
|
|
|
|
def test_B05_저장본_넷_그대로() -> None:
|
|
src = read("B05_Profile", "B05_Profile_UI_RouteEdit_RecPreview.ts")
|
|
assert '"gradeline",\n "earthwork",\n "gentle",\n "weighted",' in src.replace("\r\n", "\n")
|
|
assert "가이드 선(지점 잇기)" not in src and "guideRoute" not in src
|