"""Tests for scripts/check_test_toml_paths.py (Phase 8, Task 8.1)."""
import subprocess
import sys
from pathlib import Path


def test_audit_runs_without_error() -> None:
 """The audit script runs and exits cleanly."""
 result = subprocess.run(
  [sys.executable, "scripts/check_test_toml_paths.py"],
  capture_output=True, text=True, cwd=str(Path(__file__).resolve().parent.parent)
 )
 assert result.returncode in (0, 1), f"Unexpected exit code: {result.returncode}"


def test_audit_flags_hardcoded_workspace_path(tmp_path) -> None:
 """A test file with Path('tests/artifacts/...') is flagged."""
 bad_file = tmp_path / "test_bad.py"
 bad_file.write_text('workspace = Path("tests/artifacts/live_gui_workspace")\n', encoding="utf-8")
 # Run a copy of the audit logic on tmp_path
 import re
 pattern = re.compile(r'Path\(["\']tests/artifacts/')
 content = bad_file.read_text(encoding="utf-8")
 assert pattern.search(content), "Pattern should match the hardcoded path"


def test_audit_flags_project_root_path(tmp_path) -> None:
 """A test file with Path('C:/projects/...') is flagged."""
 bad_file = tmp_path / "test_bad.py"
 bad_file.write_text('base_dir = Path("C:/projects/test")\n', encoding="utf-8")
 import re
 pattern = re.compile(r'Path\(["\']C:[/\\]+projects')
 content = bad_file.read_text(encoding="utf-8")
 assert pattern.search(content), "Pattern should match the project root path"


def test_audit_passes_clean_file(tmp_path) -> None:
 """A test file with no hardcoded paths passes the audit patterns."""
 good_file = tmp_path / "test_good.py"
 good_file.write_text("workspace = live_gui_workspace\n", encoding="utf-8")
 import re
 patterns = [
  re.compile(r'Path\(["\']tests/artifacts/'),
  re.compile(r'Path\(["\']C:[/\\]+projects'),
 ]
 content = good_file.read_text(encoding="utf-8")
 for p in patterns:
  assert not p.search(content), f"Pattern {p} should not match clean file"
