- VIEW_HELP(세부 페이지 열쇠 → B01 가이드 절) · 셸 페이지 자리에 data-help-topic - 터치 모드 이름 · 자동 · 켬 · 끔 단추 nowrap — 메뉴가 넓어져 한 줄 - 지킴 시험 test_550_1 — [?] 절 · B01 링크 · 장면 그림이 파일과 맞음 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
"""550-1 · B01 대시보드 가이드 — 세부 페이지 [?] 절 · 가이드 글 사이 링크 · 장면 그림이 실제 파일과 맞음."""
|
|
|
|
import json
|
|
import re
|
|
from pathlib import Path
|
|
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|
GUIDE = ROOT / "A05_EduDetail" / "guide"
|
|
VIEWS = ROOT / "B01_Dashboard" / "B01_Dashboard_UI_Views.ts"
|
|
|
|
|
|
def test_view_help_topics_have_files():
|
|
block = VIEWS.read_text(encoding="utf-8").split("VIEW_HELP")[1].split("};")[0]
|
|
topics = re.findall(r':\s*"([^"]+)"', block)
|
|
assert len(topics) >= 10
|
|
for topic in topics:
|
|
assert (GUIDE / "B01" / f"{topic}.md").is_file(), topic
|
|
|
|
|
|
def test_guide_links_to_b01_resolve():
|
|
for md in GUIDE.glob("*/*.md"):
|
|
for page, key in re.findall(r"\]\((B01)/([^)#]+)\)", md.read_text(encoding="utf-8")):
|
|
assert (GUIDE / page / f"{key}.md").is_file(), f"{md.name} → {page}/{key}"
|
|
|
|
|
|
def test_b01_images_match_scenes():
|
|
names = {
|
|
s["name"] for s in json.loads((GUIDE / "B01" / "_scenes.json").read_text(encoding="utf-8"))
|
|
}
|
|
used = set()
|
|
for md in (GUIDE / "B01").glob("*.md"):
|
|
used |= set(re.findall(r"\]\((B01_[\w]+)\.webp\)", md.read_text(encoding="utf-8")))
|
|
assert used <= names, used - names
|