"""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