from pathlib import Path
from tempfile import TemporaryDirectory

from app.jobs.enrich_brochure_json_from_pdfs import _match_pdf_path


def test_match_pdf_path_uses_known_sibling_alias():
    with TemporaryDirectory() as tmp:
        pdf_dir = Path(tmp) / "pdfs"
        pdf_dir.mkdir()
        expected = pdf_dir / "MerrillPolarWhite_0226.pdf"
        expected.write_bytes(b"%PDF-1.4")

        payload = {
            "source_document": {"collection_code": "MS"},
            "collection": {
                "display_name": "Merrill Slate",
                "line_name": "Merrill",
                "canonical_code": "merrill-slate",
                "color_label": "Slate",
            },
        }

        matched = _match_pdf_path(payload, pdf_folder=str(pdf_dir), json_path="MerrillSlate_site.json")

        assert matched == expected


def test_match_pdf_path_uses_unique_fuzzy_overlap():
    with TemporaryDirectory() as tmp:
        pdf_dir = Path(tmp) / "pdfs"
        pdf_dir.mkdir()
        expected = pdf_dir / "FabuwoodMetroFrost_0326.pdf"
        expected.write_bytes(b"%PDF-1.4")
        (pdf_dir / "OtherCollection.pdf").write_bytes(b"%PDF-1.4")

        payload = {
            "source_document": {"collection_code": "QMF"},
            "collection": {
                "display_name": "Quest Metro Frost",
                "line_name": "Quest",
                "canonical_code": "quest-metro-frost",
                "color_label": "Metro Frost",
            },
        }

        matched = _match_pdf_path(payload, pdf_folder=str(pdf_dir), json_path="QuestMetroFrost_site.json")

        assert matched == expected
