"""
test_git_evidence_runtime_noise.py — task-2480 회귀 테스트 (회장 명시 9건).

`utils.git_evidence_filter.is_runtime_path` 가
runtime noise (heartbeat / logs / memory/runtime / memory/state /
memory/reports / memory/events/*.done) 변경을
"PASS" (True) 로 분류하고,
실제 코드 변경 (server / scripts / .github/workflows) 은
"FAIL" (False) 로 분류하는지 검증한다.

PASS 의미: is_runtime_path(path) == True  (verifier 에서 제외 대상)
FAIL 의미: is_runtime_path(path) == False (verifier 가 dirty 로 판단)
"""

import os
import sys

sys.path.insert(
    0,
    os.environ.get(
        "WORKSPACE_ROOT",
        "/home/jay/workspace/.worktrees/task-2480-dev3",
    ),
)

from utils.git_evidence_filter import is_runtime_path  # type: ignore[import-not-found]  # noqa: E402


# ── PASS: runtime noise 는 verifier 에서 제외 ─────────────────────────────


def test_heartbeat_dirty_passes():
    assert is_runtime_path("memory/heartbeats/task-1.heartbeat") is True


def test_logs_dirty_passes():
    assert is_runtime_path("logs/done-watcher.log") is True


def test_memory_runtime_dirty_passes():
    assert is_runtime_path("memory/runtime/foo.json") is True


def test_memory_state_dirty_passes():
    assert is_runtime_path("memory/state/bar.json") is True


def test_memory_reports_dirty_passes():
    assert is_runtime_path("memory/reports/task-2480.md") is True


def test_memory_events_done_dirty_passes():
    assert is_runtime_path("memory/events/task-2480.done") is True


# ── FAIL: 실제 코드 변경은 verifier 가 dirty 로 판단 (true positive 보존) ──


def test_server_dirty_fails():
    assert is_runtime_path("server/main.py") is False


def test_scripts_dirty_fails():
    assert is_runtime_path("scripts/finish-task.sh") is False


def test_workflows_dirty_fails():
    assert is_runtime_path(".github/workflows/ci.yml") is False
