import runpy from pathlib import Path import pytest from serato_doctor.web import STATIC_FILES, analyze_paths def test_web_analysis_uses_production_health_pipeline(tmp_path): generator = runpy.run_path( str(Path(__file__).parents[1] / "samples/small-library/generate.py") ) sample = generator["build_sample"](tmp_path / "sample") result = analyze_paths( sample / "Serato" / "_Serato_", sample / "Music" ) assert result["score"] == 77.8 assert result["disk_tracks"] == 10 assert result["missing_references"] == 2 assert result["static_crates"] == 5 assert result["smart_crates"] == 2 def test_web_analysis_rejects_missing_folders(tmp_path): with pytest.raises(ValueError, match="Serato folder does not exist"): analyze_paths(tmp_path / "missing", tmp_path) def test_web_static_assets_are_declared_and_packaged(): asset_root = Path(__file__).parents[1] / "serato_doctor" / "webui" assert set(STATIC_FILES) == {"/", "/app.css", "/app.js"} assert all((asset_root / filename).is_file() for filename, _ in STATIC_FILES.values())