"""Tests para extract_obsidian_embeds."""

from extract_obsidian_embeds import extract_obsidian_embeds


def test_solo_embeds_ignora_wikilinks():
    # Golden path: mezcla de [[Nota normal]] y ![[imagen.jpg]] -> solo el embed.
    body = "Texto con [[Nota normal]] y un embed ![[imagen.jpg]]."
    assert extract_obsidian_embeds(body) == ["imagen.jpg"]


def test_varios_embeds_orden_y_dedup():
    # Edge: varios embeds preservan orden y deduplican.
    body = "![[a.jpg]] luego ![[b.pdf]] luego ![[a.jpg]] y ![[c.png]]"
    assert extract_obsidian_embeds(body) == ["a.jpg", "b.pdf", "c.png"]


def test_quita_alias_y_ancla():
    # Edge: alias (|) y heading/ancla (#) se descartan del target.
    body = "![[imagen.jpg|300]] y ![[nota#Seccion]]"
    assert extract_obsidian_embeds(body) == ["imagen.jpg", "nota"]


def test_nombre_con_espacios_y_parentesis():
    # Edge: nombre de archivo real con espacios y parentesis se preserva.
    body = "Mira ![[dni enmanuel (2).jpg]] adjunto."
    assert extract_obsidian_embeds(body) == ["dni enmanuel (2).jpg"]


def test_sin_embeds_solo_wikilinks():
    assert extract_obsidian_embeds("solo [[wikilink]] y [[otro|alias]]") == []


def test_body_vacio():
    assert extract_obsidian_embeds("") == []
