o2o-plagiarism-ai/tests/test_frontend_legal_risk.py

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