"""746-2 지킴 — 불러오기 고르기 창 후보 블록 줄 비교 · 요소 후보 화면(요구 585). 서버 없이 소스로 잡음: 고름 대기 칸이 줄 비교 표를 붙임 · 못옮김 창 · 안 이은 줄 창이 요소 후보 단추를 붙임 · 안 이은 줄 창의 기초 후보 칸에 요소 후보(`키`)가 섞여 들어가지 않음 · 서버 응답 칸 이름 · 부품 상자만 · 700 줄. """ import re from pathlib import Path M02 = Path(__file__).resolve().parents[2] / "M02_MasterTemplete" def _src(name: str) -> str: return (M02 / f"M02_MasterTemplete_Hopyo_{name}.ts").read_text(encoding="utf-8") def test_고름_대기_칸이_줄_비교_표를_붙임(): sk = _src("WizardSk") assert "compareView(x.후보)" in sk and "cmp?.show(pick.select.value)" in sk assert "compareBrief(c.줄비교)" in sk # 선택 칸 글에 같음 · 품다름 수 def test_못옮김_창_안_이은_줄_창이_요소_후보_단추를_붙임(): assert "elemChoices(x.후보" in _src("Lost") left = _src("Left") assert "elemChoices(row.후보.filter(isElem)" in left assert ( "row.후보.filter((c): c is SangeunCand => !isElem(c))" in left ) # 기초 후보 칸에는 요소 후보 안 듦 def test_서버_응답_칸_이름_그대로(): api = _src("Api") for name in ( "줄비교?: SangeunCompare | null", "엑셀: number | null", "기초: number | null", "못옮김: SangeunLost[]", ): assert name in api assert 'CompareLook = "같음" | "품다름" | "엑셀만" | "기초만"' in api def test_부품_상자만_날_요소_없음_700줄_안(): src = _src("Compare") assert not re.search(r'createElement\("(button|input)"|