# -*- coding: utf-8 -*- """508-2 ② B05 추천 노선 창 [재계산] — 저장본 없음(409) 안내 줄 옆 · 칸(제약 · 비중) 바꾼 뒤만 보임. 505-1 · 509-5 규칙 그대로 — 접근 = 저장본만 · 사용자가 누른 셈만 그 자리. ./venv/Scripts/python.exe -m pytest resources/tester/test_508_2_recommend_rerun.py -q """ import re from pathlib import Path ROOT = Path(__file__).resolve().parents[2] REC = ROOT / "B05_Profile" / "B05_Profile_UI_RouteEdit_Recommend.ts" def test_보임_규칙() -> None: ts = REC.read_text(encoding="utf-8") assert "rerun.hidden = !(missing || dirty);" in ts assert "if (missing) stateEl.after(rerun);" in ts # 안내 줄(상태 줄) 옆 assert "else profileToggle.after(rerun);" in ts # 칸 바꿈 = 종단 반영 오른쪽(지금처럼) run = ts.split("async function run(recompute = false)")[1].split("pills.forEach")[0] assert "missing = false;" in run.split("try {")[0] # 새 셈마다 지움 assert "missing = message.includes(NOT_PREPARED_HEAD);" in run assert 'rerun.addEventListener("click", () => void run(true));' in ts def test_안내_글_머리_서버와_같음() -> None: ts = REC.read_text(encoding="utf-8") head = re.search(r'const NOT_PREPARED_HEAD = "([^"]+)";', ts).group(1) py = (ROOT / "B05_Profile" / "B05_Profile_Router_RouteInitial.py").read_text(encoding="utf-8") message = re.search(r'^NOT_PREPARED = "([^"]+)"', py, re.M).group(1) assert message.startswith(head)