77 lines
2.8 KiB
Python
77 lines
2.8 KiB
Python
from pathlib import Path
|
|
|
|
|
|
HTML = Path("app/static/index.html").read_text(encoding="utf-8")
|
|
|
|
|
|
def test_frontend_sends_human_verified_legal_context():
|
|
for field_id in (
|
|
"legal-work-type",
|
|
"legal-access-evidence",
|
|
"legal-protected-reviewed",
|
|
"legal-rights-verified",
|
|
):
|
|
assert f'id="{field_id}"' in HTML
|
|
assert "legal_context:" in HTML
|
|
|
|
|
|
def test_frontend_renders_llm_legal_judgment_and_safety_fields():
|
|
assert 'id="legal-risk"' in HTML
|
|
assert "function renderLegalRisk" in HTML
|
|
for field in (
|
|
"llm_verdict",
|
|
"llm_confidence",
|
|
"llm_matched_precedent_ids",
|
|
"supporting_reasons",
|
|
"counter_reasons",
|
|
"missing_factors",
|
|
"judgment_summary",
|
|
"disclaimer",
|
|
):
|
|
assert field in HTML
|
|
assert "escapeHtml(item)" in HTML
|
|
assert "법률상 침해 확정이 아닙니다" in HTML
|
|
assert "판례에 비추어 저작권 침해 의심" in HTML
|
|
assert "GPT 판례 비교" not in HTML
|
|
assert "GPT 판정" not in HTML
|
|
|
|
|
|
def test_frontend_shows_precedent_corpus_is_loaded():
|
|
"""판례 적재 여부가 화면에 드러나야 한다.
|
|
|
|
엔진은 적재본 전체를 로드하고 판정마다 상위 몇 건을 인용하는데, 화면에
|
|
그 사실이 전혀 없어서 "판례를 쓰고 있는가"를 사용자가 알 수 없었다.
|
|
"""
|
|
# 헬스 배지와 푸터에 적재 수가 나온다
|
|
assert 'id="precedent-count"' in HTML
|
|
assert "data.precedent_count" in HTML
|
|
# 판단 카드에 '인용 N건 / 적재 M건'
|
|
assert "precedentCountLabel" in HTML
|
|
assert "인용 ${selectedIds.length}건 / 적재 ${precedentCount}건" in HTML
|
|
|
|
|
|
def test_frontend_distinguishes_no_match_from_no_corpus():
|
|
"""매칭 실패와 판례 미적재는 다른 상황이므로 문구가 갈려야 한다.
|
|
|
|
앞은 이 건에 맞는 판례가 없는 것이고, 뒤는 판단 자체가 성립하지 않는다
|
|
(엔진이 insufficient_precedent_data 를 낸다).
|
|
"""
|
|
assert "판례가 적재되지 않아 판단 근거를 제시할 수 없습니다." in HTML
|
|
assert "저작물 유형과 입력 내용에 맞는 판례가 없습니다." in HTML
|
|
# 미적재는 헬스 배지에서도 경고색으로 구분된다
|
|
assert "badge warn" in HTML
|
|
assert "header .badge.warn" in HTML
|
|
|
|
|
|
def test_frontend_has_searchable_precedent_tab_and_citation_cross_reference():
|
|
assert 'data-tab="precedents"' in HTML
|
|
assert 'id="tab-precedents"' in HTML
|
|
assert 'id="precedent-query"' in HTML
|
|
assert 'id="precedent-grade-filter"' in HTML
|
|
assert 'id="precedent-type-filter"' in HTML
|
|
assert 'id="precedent-tbody"' in HTML
|
|
assert 'fetch(`v1/precedents?${params}`)' in HTML
|
|
assert "이번 탐지 인용" in HTML
|
|
assert "lastCitedPrecedentIds" in HTML
|
|
assert "openPrecedentTab" in HTML
|