feat(B05 평면): 366-2 도구줄 차례 [?] | ↶ ↷ | 3D | 회전 · 1m 등고선 · 절/성토선 · 거리 재기 | 측점 스냅 · 분석 지형 · 구분선 넷 · [맞춤] 지움(처음 열 때 맞춤 그대로) · 회전 단추 도구줄로
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
This commit is contained in:
@@ -125,16 +125,14 @@ def test_판은_덮이기만_따라_안_옮김() -> None:
|
||||
assert ".b05-route-profile.is-collapsed {\n height: 0;" in style
|
||||
|
||||
|
||||
def test_처음_열기와_맞춤_단추_같은_셈() -> None:
|
||||
def test_처음_열기_맞춤_그대로_맞춤_단추_없음() -> None:
|
||||
"""366-2 — [맞춤] 단추는 지움 · 처음 열 때 등고 영역 맞춤(fitView)은 그대로."""
|
||||
view = (B05 / "B05_Profile_UI_RouteEdit_View.ts").read_text(encoding="utf-8")
|
||||
assert "return { view: fitView(meta, view, nodes, contours), rotationRad: 0 };" in view
|
||||
assert "unionArea([route, ...(contours?.features ?? [])])" in view
|
||||
chrome = (B05 / "B05_Profile_UI_RouteEdit_Chrome.ts").read_text(encoding="utf-8")
|
||||
assert 'data-act="fit"' in chrome and ">맞춤</button>" in chrome
|
||||
assert 'data-act="fit"' not in chrome and ">맞춤</button>" not in chrome
|
||||
editor = (B05 / "B05_Profile_UI_RouteEdit.ts").read_text(encoding="utf-8")
|
||||
assert "openingView(projectId, meta, view, planned, contours?.layer ?? null)" in editor
|
||||
at = editor.index("""overlay.querySelector('[data-act="fit"]')!""")
|
||||
handler = editor[at : at + 260]
|
||||
assert "view = fitView(meta, view, planned, contours?.layer ?? null);" in handler
|
||||
assert "rotation.set(0);" in handler
|
||||
assert 'data-act="fit"' not in editor and "fitView" not in editor
|
||||
assert len(editor.splitlines()) <= 700
|
||||
|
||||
@@ -208,11 +208,34 @@ def test_노선_추천_다듬기_23_3():
|
||||
return open(os.path.join(page, name), encoding="utf-8").read()
|
||||
|
||||
chrome = read("B05_Profile_UI_RouteEdit_Chrome.ts")
|
||||
# 345-4 — [노선 추천]은 좌측 칸 · 머리 구분선은 [3D](tools) 뒤 · 되돌리기 앞 둘 그대로
|
||||
tools = chrome.index('data-slot="tools"')
|
||||
divider = chrome.index("b05-route__view-separator", tools) # 352-1 — 3D 도구줄 구분선 그대로
|
||||
assert tools < divider < chrome.index('data-act="contour-minor"')
|
||||
assert chrome.count("b05-route__view-separator") == 2
|
||||
# 366-2 — [?] | ↶ ↷ | 3D | ⟲ ⟳ · 1m 등고선 · 절/성토선 · 거리 재기 | 측점 스냅 · 분석 지형(맨 오른쪽)
|
||||
bar = chrome[
|
||||
chrome.index("b05-routeedit__tools") : chrome.index('<div class="b05-routeedit__hint">')
|
||||
]
|
||||
order = [
|
||||
'data-act="hint-toggle"',
|
||||
"|",
|
||||
'data-act="undo"',
|
||||
'data-act="redo"',
|
||||
"|",
|
||||
'data-slot="tools"',
|
||||
"|",
|
||||
'data-act="rotate-ccw"',
|
||||
'data-act="rotate-cw"',
|
||||
'data-act="contour-minor"',
|
||||
'data-act="footprint"',
|
||||
'data-act="measure"',
|
||||
"|",
|
||||
'data-act="station-snap"',
|
||||
'class="b05-routeedit__terrain"',
|
||||
]
|
||||
at = 0
|
||||
for mark in order:
|
||||
key = "b05-route__view-separator" if mark == "|" else mark
|
||||
at = bar.index(key, at) + 1
|
||||
assert bar.count("b05-route__view-separator") == 4
|
||||
assert chrome.count("b05-route__view-separator") == 4
|
||||
assert "b05-routeedit__spin" not in chrome # 회전 = 도구줄(추천 모달 CSS 는 남음)
|
||||
shared = read("B05_Profile_UI_RouteEdit_Recommend_Map.ts")
|
||||
for name in ("bindRouteEditNavigation", "createMapRotation", "fitCanvas", "metricToScreen"):
|
||||
assert f"{name}(" in shared
|
||||
|
||||
Reference in New Issue
Block a user