# -*- coding: utf-8 -*- """계획노선 편집 창 — **측점 반폭 선 길이**(계획서 22-1) 회귀검증. 파란 선 = 우측 패널 「횡단 반폭(m)」 적용값 양쪽. 적용한 적이 없으면 서버 기본값. 선 길이는 서버가 덮은 반폭(= 횡단 미리보기 원지반 선 범위)을 그대로 쓴다. Node 헬퍼(`helper_b05_routeedit_cross_width.cjs`)가 TS 를 트랜스파일해 돌린다. """ import json import os import subprocess import pytest HERE = os.path.dirname(os.path.abspath(__file__)) @pytest.fixture(scope="module") def results(): proc = subprocess.run( ["node", os.path.join(HERE, "helper_b05_routeedit_cross_width.cjs")], capture_output=True, text=True, timeout=60, ) assert proc.returncode == 0, proc.stderr return json.loads(proc.stdout) def test_측점을_고르기_전에는_선이_없다(results): assert results["before"] is None def test_적용한_적_없으면_서버_기본값_양쪽(results): assert results["empty"]["asked"] is None assert results["empty"]["watched"] == {"chainageM": 100, "leftM": 20, "rightM": 20} def test_적용값이_있으면_그_값_양쪽(results): assert results["applied15"]["asked"] == 15 assert results["applied15"]["watched"] == {"chainageM": 100, "leftM": 15, "rightM": 15} def test_노선이_여럿이면_최신_노선_값_다른_프로젝트는_무시(results): assert results["latestRoute"]["asked"] == 8.5 assert results["latestRoute"]["watched"]["leftM"] == 8.5 def test_망가진_값은_기본값으로(results): assert results["badValue"]["asked"] is None assert results["badValue"]["watched"]["rightM"] == 20