from __future__ import annotations

from apps.alumni.tracking.orcid import _parse_work


def test_parse_work_extracts_core_fields():
    group = {
        "work-summary": [
            {
                "put-code": 1234,
                "title": {"title": {"value": "A paper about maize"}},
                "type": "journal-article",
                "external-ids": {
                    "external-id": [
                        {"external-id-type": "doi", "external-id-value": "10.1/x"},
                    ]
                },
                "publication-date": {"year": {"value": "2023"}},
            }
        ]
    }
    parsed = _parse_work(group)
    assert parsed is not None
    assert parsed.put_code == "1234"
    assert parsed.title == "A paper about maize"
    assert parsed.doi == "10.1/x"
    assert parsed.year == 2023


def test_parse_work_missing_put_code_returns_none():
    assert _parse_work({"work-summary": [{"title": {"title": {"value": "x"}}}]}) is None


def test_parse_work_empty_group_returns_none():
    assert _parse_work({"work-summary": []}) is None
